51单片机C语言中断程序定时计数器(共11页).doc

上传人:飞****2 文档编号:14101910 上传时间:2022-05-02 格式:DOC 页数:11 大小:19.50KB
返回 下载 相关 举报
51单片机C语言中断程序定时计数器(共11页).doc_第1页
第1页 / 共11页
51单片机C语言中断程序定时计数器(共11页).doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《51单片机C语言中断程序定时计数器(共11页).doc》由会员分享,可在线阅读,更多相关《51单片机C语言中断程序定时计数器(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上51单片机C语言中断程序 定时/计数器程序一利用定时/计数器T0从P1.0输出周期为1s 的方波,让发光二极管以1HZ闪烁,#include /52单片机头文件#include /包含有左右循环移位子函数的库#define uint unsigned int /宏定义#define uchar unsigned char /宏定义sbit P1_0=P10;uchar tt;void main() /主函数TMOD=0x01;/设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/开总中断ET0=1

2、;/开定时器0中断TR0=1;/启动定时器0while(1);/等待中断产生void timer0() interrupt 1TH0=(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 u

3、nsigned char /宏定义sbit P1_0=P10;uchar tt,a;void main() /主函数TMOD=0x01;/设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/启动定时器0a=0xfe;while(1);/等待中断产生void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(tt=2)tt=0;P1=a;a=_crol_(a,1);程序三同时用两个定时

4、器控制蜂鸣器发声,定时器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=P23;uchar tt;uint fre,flag;void main() /主函数fre=50000;beep=0;TMOD=0x11;/设置定时器0,定时器1为工作方式1TH0=(65536-fre)/256;TL0

5、=(65536-fre)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;/开总中断ET0=1;/开定时器0中断ET1=1;TR1=1;TR0=1;/启动定时器0while(1);/等待中断产生void timer0() interrupt 1 /定时器0中断TR0=0; /进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失TH0=(65536-fre)/256;TL0=(65536-fre)%256;tt+;if(flag=40&flag=80&flag=120&flag=160&flag=200&flag=240&flag

6、=280&flag=320&flag360)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 /宏定义#defi

7、ne uchar unsigned char /宏定义sbit dula=P26; /数码管段选锁存端sbit wela=P27; /数码管位选锁存端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为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/启动定时器0dula=1;P0=0x3f; /给段开始送显示0。dula=0;/关闭段选锁存端,防止开始时出现乱码。wela=1;/P0=0xc0; / 打开六个数码管位选wela=0;while(1)if(tt=10) /每进入10次中断即为500ms,执行一次显示变化。 tt=0;num+;if(num=16)num=0;dula=1;P0=tablenum;dula=0;void exter0() interrupt 1 / 定时器0中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁