单片机第五章(159MB).PPT

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第五章(159MB)

T0工作在方式1,TH0固定取值为0xFE(即TH0=254),TL0则从0x00至0xFF(0至255)反复循环取值,这样可生成的频率范围计算如下。 (1) 延时计数寄存器取值范围为254×256+0~254×256+255(即65 024~65 279)。 (2) 延时值为65 536~65 024与65 536~65 279(即512~257)。 (3) 输出频率为1000 000/(512×2)~1000 000/(257×2)Hz(即976~1945Hz)。 正是因为主程序中的while循环控制FRQ变量由0x00持续递增,由于FRQ类型为uchar,因此会在0x00~0xFF范围内反复循环取值,而T0中断程序内的TL0则持续获取这个变化的FRQ值,这使T0中断的触发频率也会递增,于是形成了频率在976~1945Hz之间平滑递增的声音效果,实现的报警声音非常逼真。 读者可修改程序中while循环内delays函数参数值及TH0初值,查看不同的效果。 源程序代码如下。 /************************************************ 实时报警系统 ************************************************/ #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit sounder=P3^7; uchar FRQ=0x00; /**************延时子程序*********************/ void delayms(uint ms) { uchar i; while(ms--) for(i=0;i120;i++); } /***************主程序************************/ void main() { P2=0x00; TMOD=0x11; TH0=0x00; TL0=0xFF; IT0=1; IE=0x8B; IP=0x01; TR0=0; TR1=0; while(1) { FRQ++;delayms(1); } } /*************外部中断0程序*******************/ void EX0_INT() interrupt 0 { TR0=!TR0; TR1=!TR1; if(P2==0x00) P2=0xe0; else P2=0x00; } /***************定时器T0程序*******************/ void T0_INT() interrupt 1 { TH0=0xFE; TL0=FRQ; sounder=~sounder; } /***************定时器T1程序*******************/ void T1_INT() interrupt 3 { TH1=45000/256; TL1=45000%256; P2=_crol_(P2,1); } 小 结 本章通过引入实现数码管显示数值加1或减1的任务,介绍了51系列单片机中断系统的结构,以及与中断系统有关的特殊功能寄存器,并提出了训练任务供读者进行拓展训练。 第5章 单片机中断应用 5.1 中断的概念 5.2 中断控制 5.3 单片机中断处理过程 5.4 中断系统C51语言编程要点 本章内容: 【任务导入】 数码管加减数的实现:用C51编程,使外部中断每发生一次,在共阴极数码管上显示一个数字,且每中断一次显示的数值加1或减1(根据按下的是“加1键”还是“减1键”而定)。 要求:按键有消除抖动功能。 【任务分析】 本任务的要求是:每发生一次中断,数码管数值加1或减1。加1和减1是两种不同的任务,在软件里面体现为两个程序。那么什么时候数码管数值加1,什么时候又减1呢?在进行设计之前,需要补充下面有关51单片机中断系统的知识。 5.1 中断的概念 所谓中断,是指CPU执行正常程序时,系统中出现特殊请求码,CPU需要暂时中止当前的程序,转去处理更紧急的任务程序,处理完毕后,CPU再返回原程序被中止的地方继续执行原程序的过程。 日常生活中也常发生“中断”现象。比如某人正在看书,有电话铃响,

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档