【51单片机】中断系统、定时器计数器工作原理及应用 |
您所在的位置:网站首页 › 定时器计数器工作方式零为 › 【51单片机】中断系统、定时器计数器工作原理及应用 |
目录
一、中断系统(一)中断结构(二)中断寄存器1、中断优先级寄存器IP2、串行口控制寄存器SCON
(三)外部中断应用1、单一外中断2、两个外中断3、中断嵌套
二、定时器/计数器工作原理(一)定时器/计数器结构(二)定时器计数器初值(三)定时/计数器应用1、定时器T0中断2、计数器T0中断
三、中断服务程序优化四、总结
一、中断系统
(一)中断结构
AT89S51系列单片机提供了5个中断请求源,它们分别是:外部中断0请求、定时器/计数器0中断请求、外部中断1请求、定时器/计数器1中断请求、串行口中断请求。下图为AT89S51的中断系统结构: 中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现两级中断嵌套。 所谓两级中断嵌套,就是AT89S51正在执行低优先级中断的服务所谓两级中断嵌套,就是AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级嵌套如下图所示: 各中断源在同一优先级条件下,外部中断0中断优先权最高,串行口的优先权最低。 各中断源开放或屏蔽,是由片内中断允许寄存器IE控制。IE字节地址为A8H,可进行位寻址。IE寄存器格式如图: 要求将外部中断0设置为电平触发。程序启动时,P2口上的8只LED全亮。每按一次按钮开关K1,使引脚接地,产生一个低电平触发的外中断请求,在中断服务程序中,让低4位的LED与高4位的LED交替闪烁5次。然后从中断返回,控制8只LED再次全亮。 #include void Delay(unsigned int xms) //@11.0592MHz { unsigned char i, j; while(xms--) { i = 2; j = 199; do { while (--j); } while (--i); } } void main() { EA=1; //总中断允许 EX0=1; //允许外部中断0中断 IT0=1; //设置外部中断为下降沿触发方式 while(1) { P2=0x00; } } void Int0_Routine() interrupt 0 { unsigned char i; EX0=0; //禁止外部中断0中断 for(i=0;i=3) { Mode=0;//循环切换 } } switch (Mode)//亮灯模式选择 { case 0: {P2=0xfe;} break; case 1: {P2=0xf0;Delay(300);P2=0X0F;Delay(300);} break; case 2: {P2=0XAA;Delay(300);P2=0x55;Delay(300);} break; default: break; } } } 通过此次学习了解了中断和定时/计数器的工作机制,学会了合理设置中断优先级和定时器的工作参数。 以上为学习成果,还有不足之处,请多多见谅。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |