最新51单片机中断程序大全.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《最新51单片机中断程序大全.doc》由会员分享,可在线阅读,更多相关《最新51单片机中断程序大全.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料51单片机中断程序大全./实例42:用定时器T0查询方式P2口8位控制LED闪烁#include / 包含51单片机寄存器定义的头文件/*函数功能:主函数*/void main(void) / EA=1; /开总中断/ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式1TH0=(65536-46083)/256; /定时器T0的高8位赋初值TL0=(65536-46083)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0TF0=0;P2=0xff; while(1)/无限循环等待查询 while(TF0=0) ; TF0=0; P2=P
2、2; TH0=(65536-46083)/256; /定时器T0的高8位赋初值 TL0=(65536-46083)%256; /定时器T0的高8位赋初值 /实例43:用定时器T1查询方式控制单片机发出1KHz音频#include / 包含51单片机寄存器定义的头文件sbit sound=P37; /将sound位定义为P3.7引脚/*函数功能:主函数*/void main(void) / EA=1; /开总中断/ET0=1; /定时器T0中断允许 TMOD=0x10; /使用定时器T1的模式1TH1=(65536-921)/256; /定时器T1的高8位赋初值TL1=(65536-921)%2
3、56; /定时器T1的高8位赋初值TR1=1; /启动定时器T1TF1=0;while(1)/无限循环等待查询 while(TF1=0) ; TF1=0;sound=sound; /将P3.7引脚输出电平取反 TH1=(65536-921)/256; /定时器T0的高8位赋初值 TL1=(65536-921)%256; /定时器T0的高8位赋初值 /实例44:将计数器T0计数的结果送P1口8位LED显示#include / 包含51单片机寄存器定义的头文件sbit S=P34; /将S位定义为P3.4引脚/*函数功能:主函数*/void main(void) / EA=1; /开总中断/ET0
4、=1; /定时器T0中断允许 TMOD=0x02; /使用定时器T0的模式2TH0=256-156; /定时器T0的高8位赋初值TL0=256-156; /定时器T0的高8位赋初值TR0=1; /启动定时器T0while(1)/无限循环等待查询 while(TF0=0) /如果未计满就等待 if(S=0) /按键S按下接地,电平为0 P1=TL0; /计数器TL0加1后送P1口显示 TF0=0; /计数器溢出后,将TF0清0 /实例45:用定时器T0的中断控制1位LED闪烁#include / 包含51单片机寄存器定义的头文件sbit D1=P20; /将D1位定义为P2.0引脚/*函数功能:
5、主函数*/void main(void) EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式2TH0=(65536-46083)/256; /定时器T0的高8位赋初值TL0=(65536-46083)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0while(1)/无限循环等待中断 ; /*函数功能:定时器T0的中断服务程序*/void Time0(void) interrupt 1 using 0 /“interrupt”声明函数为中断服务函数 /其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器 D1=D1;
6、/按位取反操作,将P2.0引脚输出电平取反 TH0=(65536-46083)/256; /定时器T0的高8位重新赋初值TL0=(65536-46083)%256; /定时器T0的高8位重新赋初值 /实例46:用定时器T0的中断实现长时间定时#include / 包含51单片机寄存器定义的头文件sbit D1=P20; /将D1位定义为P2.0引脚unsigned char Countor; /设置全局变量,储存定时器T0中断次数/*函数功能:主函数*/void main(void) EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式2TH0
7、=(65536-46083)/256; /定时器T0的高8位赋初值TL0=(65536-46083)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0Countor=0; /从0开始累计中断次数while(1)/无限循环等待中断 ; /*函数功能:定时器T0的中断服务程序*/void Time0(void) interrupt 1 using 0 /“interrupt”声明函数为中断服务函数 /其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器 Countor+; /中断次数自加1if(Countor=20) /若累计满20次,即计时满1s D1=D1; /按位取反
8、操作,将P2.0引脚输出电平取反Countor=0; /将Countor清0,重新从0开始计数 TH0=(65536-46083)/256; /定时器T0的高8位重新赋初值TL0=(65536-46083)%256; /定时器T0的高8位重新赋初值 /实例47:用定时器T1中断控制两个LED以不同周期闪烁#include / 包含51单片机寄存器定义的头文件sbit D1=P20; /将D1位定义为P2.0引脚sbit D2=P21; /将D2位定义为P2.1引脚unsigned char Countor1; /设置全局变量,储存定时器T1中断次数unsigned char Countor2;
9、 /设置全局变量,储存定时器T1中断次数/*函数功能:主函数*/void main(void) EA=1; /开总中断ET1=1; /定时器T1中断允许 TMOD=0x10; /使用定时器T1的模式1TH1=(65536-46083)/256; /定时器T1的高8位赋初值TL1=(65536-46083)%256; /定时器T1的高8位赋初值TR1=1; /启动定时器T1Countor1=0; /从0开始累计中断次数Countor2=0; /从0开始累计中断次数 while(1)/无限循环等待中断 ; /*函数功能:定时器T1的中断服务程序*/void Time1(void) interrup
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 51 单片机 中断 程序 大全
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内