标题:
单片机的中断系统基础知识
[打印本页]
作者:
zhangli0126
时间:
2021-6-3 18:35
标题:
单片机的中断系统基础知识
中断基础知识
中断:停下来正在做的事,去做别的事。CPU终止正在执行的程序,转而去做中断信号发生的程序,执行完此处程序,回到原位置。
中断源:MCS-51单片机共有五个位置可以产生中断信号:外部中断INT0和INT1,定时器/计数器T0和T1,串行中断。
中断优先级:当有多个中断源向CPU发生信号时,处理中断需要优先级的设置。外部中断INT0优先级最高,串行中断优先级最低。需要设置IP寄存器。
中断源寄存器:TCON和SCON。TCON主要包含了外部中断触发方式和外部中断请求标志。当IT0、IT1为0,则是电平触发方式(低电平有效);为1时,负跳变触发方式。IE0、IE1在中断发出请求后,置为1.中断完成后,自动清零。
中断允许寄存器:IE,IE寄存器包含了总开关、外部中断、串行口中断、定时器中断等内容。
中断优先级控制寄存器:IP。对应位置为1的话,高优先级;为0,低优先级。
-----之前实现跑马灯都需要设定一个延时函数,现在有了定时器、中断,不需要设定延时函数
用定时器T0的中断方式实现跑马灯控制
#include<reg52.h>
sbit D1=P2^0;
void main()
{
char A;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
TR0=1;
A=0xfe;
D1=A;
while(1);
}
void Time(void) interrupt 1 using 0
{
char A;
A=A<<1;
if (A !=0xff)
{
A=A|1;
}
else
A=0xfe;
D1=A;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
}
复制代码
作者:
yyx666
时间:
2021-6-3 21:46
非常有收获,请多发这样的技术帖子
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1