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

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

ID:10752577

大小:34.50 KB

页数:11页

时间:2018-07-08

51单片机c语言中断程序定时计数器_第1页
51单片机c语言中断程序定时计数器_第2页
51单片机c语言中断程序定时计数器_第3页
51单片机c语言中断程序定时计数器_第4页
51单片机c语言中断程序定时计数器_第5页
资源描述:

《51单片机c语言中断程序定时计数器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、51单片机C语言中断程序定时/计数器 程序一利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,#include //52单片机头文件#include//包含有左右循环移位子函数的库#defineuintunsignedint   //宏定义#defineucharunsignedchar //宏定义sbitP1_0=P1^0;uchartt;voidmain()     //主函数{TMOD=0x01;//设置定时器0为工作方式1T

2、H0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0while(1);//等待中断产生}51单片机C语言中断程序定时/计数器 程序一利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,#include //52单片机头文件#include//包含有左右循环移位子函数的库#defineuintunsignedint   //

3、宏定义#defineucharunsignedchar //宏定义sbitP1_0=P1^0;uchartt;voidmain()     //主函数{TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0while(1);//等待中断产生}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(

4、65536-50000)%256;tt++;if(tt==20){ tt=0; P1_0=~P1_0;}} 程序二利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。#include //52单片机头文件#include//包含有左右循环移位子函数的库#defineuintunsignedint   //宏定义#defineucharunsignedchar //

5、宏定义sbitP1_0=P1^0;uchartt,a;voidmain()     //主函数{TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0a=0xfe;while(1);//等待中断产生}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++

6、;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//包含有左右循环移位子函数的库#defineuintunsignedint   //宏定义#defineucharunsignedchar //宏定义sb

7、itbeep=P2^3;uchartt;uintfre,flag;voidmain()     //主函数{fre=50000;beep=0;TMOD=0x11;//设置定时器0,定时器1为工作方式1TH0=(65536-fre)/256;TL0=(65536-fre)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断ET1=1;TR1=1;TR0=1;//启动定时器0while(1);//等待中断产

8、生}voidtimer0()interrupt1  //定时器0中断{TR0=0;   //进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失TH0=(65536-fre)/256;TL0=(65536-fre)%256;tt++;if(flag<40)   //以下几个if分别用来选取不同的频率 if(tt==10)  {   tt=0;   fre=50000;   beep=~beep;  }if(flag>=40&&flag<80) {  tt=0;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。