电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

51单片机C语言中断程序定时计数器

51单片机C语言中断程序定时计数器_第1页
1/11
51单片机C语言中断程序定时计数器_第2页
2/11
51单片机C语言中断程序定时计数器_第3页
3/11
51 单片机C 语言中断程序 定时/计数器 程序一 利用定时/计数器T0 从 P1.0 输出周期为 1s 的方波, 让发光二极管以 1HZ 闪烁, #include //52 单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit P1_0=P1^0; uchar tt; void main() //主函数 { TMOD=0x01;//设置定时器0 为工作方式 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;//开总中断 ET0=1;//开定时器0 中断 TR0=1;//启动定时器0 while(1);//等待中断产生 } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt==20) { tt=0; P1_0=~ P1_0; } } 程序二 利用定时/计数器T1 产生定时时钟, 由P1 口控制8 个发光二极管, 使8 个指示灯依次一个一个闪动, 闪动频率为10 次/秒(8 个灯依次亮一遍为一个周期),循环。 #include //52 单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit P1_0=P1^0; uchar tt,a; void main() //主函数 { TMOD=0x01;//设置定时器0 为工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;//开总中断 ET0=1;//开定时器0 中断 TR0=1;//启动定时器0 a=0xfe; while(1);//等待中断产生 } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt==2) { tt=0; P1=a; a=_crol_(a,1); } } 程序三 同时用两个定时器控制蜂鸣器发声, 定时器 0 控制频率,定时器 1 控制同个 频率持续的时间,间隔 2s 依次输出 1,10,50,100,200,400,800, 1k(hz)的方波 #include //52 单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit beep=P2^3; uchar tt; uint fre,flag; void main() //主函数 { fre=50000; beep=0; TMOD=0x11;//设置定时器0,定时器1 为工作方式1 TH0=(65536-fre)/256; TL0=(65536-fre)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1;//开总中断 ET0=1;//...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

51单片机C语言中断程序定时计数器

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部