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

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

举报
开通vip

51单片机C语言程序定时-计数器 中断 特别说明 此资料来自百度文库(http://wenku.baidu.com/) 您目前所看到的文档是使用的抱米花百度文库下载器所生成 此文档原地址来自 感谢您的支持 抱米花 http://blog.sina.com.cn/lotusbaob http://wenku.baidu.com/view/3ccefcc758f5f61fb7366621.html?from=rec&pos=3 51515151?片...

51单片机C语言程序定时-计数器 中断
特别说明 此资料来自百度文库(http://wenku.baidu.com/) 您目前所看到的文档是使用的抱米花百度文库下载器所生成 此文档原地址来自 感谢您的支持 抱米花 http://blog.sina.com.cn/lotusbaob http://wenku.baidu.com/view/3ccefcc758f5f61fb7366621.html?from=rec&pos=3 51515151?片机?片机?片机?片机CCCC?言程序定??言程序定??言程序定??言程序定?////??器??器??器??器 中?中?中?中? 程序一 利用定?/??器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;//?定?器0中? ET1=1; TR1=1; TR0=1;//启动定?器0 while(1);//等待中??生 } void timer0() interrupt 1 //定?器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; fre=50000; beep=~beep; } if(flag>=80&&flag<120) { tt=0; fre=10000; beep=~beep; } if(flag>=120&&flag<160) { tt=0; fre=5000; beep=~beep; } if(flag>=160&&flag<200) { tt=0; fre=2500; beep=~beep; } if(flag>=200&&flag<240) { tt=0; fre=1250; beep=~beep; } if(flag>=240&&flag<280) { tt=0; fre=625; beep=~beep; } if(flag>=280&&flag<320) { tt=0; fre=312; beep=~beep; } if(flag>=320&&flag<360) { tt=0; fre=156; beep=~beep; } TR0=1; } void timer1() interrupt 3 //定?器1中?用??生2秒?间定? { TH1=(65536-50000)/256; TL1=(65536-50000)%256; flag++; if(flag==360) { flag=0; fre=50000; } } 程序四 用定?器以间隔500MS在6位??管上依次?示 0、1、2、3....C、D、E、F,重复。 #include //52?片机头文件 #include //包含有左右循?移位子函?的? #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit dula=P2^6; //??管段??存端 sbit wela=P2^7; ////??管位??存端 uchar num,tt; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void main() { num=0; tt=0; TMOD=0x01;//设置定?器0?工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;//?总中? ET0=1;//?定?器0中? TR0=1;//启动定?器0 dula=1; P0=0x3f; //?段?始送?示0。 dula=0;//??段??存端,防止?始?出???。 wela=1;//11101010 P0=0xc0; // 打?六个??管位? wela=0; while(1) { if(tt==10) //每?入10次中?即?500ms,?行一次?示变化。 { tt=0; num++; if(num==16) num=0; dula=1; P0=table[num]; dula=0; } } } void exter0() interrupt 1 // 定?器0中? { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; }
本文档为【51单片机C语言程序定时-计数器 中断】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_920200
暂无简介~
格式:pdf
大小:691KB
软件:PDF阅读器
页数:8
分类:互联网
上传时间:2011-08-18
浏览量:53