单片机之呼吸灯(LED).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机之呼吸灯(LED)

原理:用定时器模拟PWM,改变其占空比,用以控制LED的亮度。呼吸灯主要是控制好亮度显示的时间。顺便复习一下中断和定时/计数器的知识。?一、先了解LED的连接情况:??VCC接上1K的排阻,再连接LED,当单片机I/O口为0时,LED点亮,I/O口为1时,LED熄灭。?二、有关中断和定时/计数器:(1)中断??????????? 第一个,是中断的理解图。??如图,从左向右,可以很清楚的看出中断所需的条件。?A、IP寄存器为优先级的选择(一般默认就OK了,不用管它)。B、IE寄存器为中断允许控制:?????????EX0(IE.0),外部中断0允许位;??????????? ET0(IE.1),定时/计数器T0中断允许位;???????????? EX1(IE.2),外部中断0允许位;??????????? ET1(IE.3),定时/计数器T1中断允许位;?????????? ?ES(IE.4),串行口中断允许位;?????EA (IE.7), CPU中断允许(总允许)位。(只要涉及中断,EA必须为1,即CPU开总中断)?C、中断请求标志(TCON和SCON)??????主要说说TCON的中断标志,TCON寄存器:????IT0(TCON.0),外部中断0触发方式控制位。????????????????? ?当IT0=0时,为电平触发方式。?????????????????? 当IT0=1时,为边沿触发方式(下降沿有效)。????????? ?IE0(TCON.1),外部中断0中断请求标志位。????????? ?IT1(TCON.2),外部中断1触发方式控制位。????????? ?IE1(TCON.3),外部中断1中断请求标志位。??????????TF0(TCON.5),定时/计数器T0溢出中断请求标志位。????????? TF1(TCON.7),定时/计数器T1溢出中断请求标志位。?中断响应条件?????1、中断源有中断请求;?????2、此中断源的中断允许位为1;?????3、CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。?如:EA=1;//开总中断?????? EX0=1;//开外部中断0??????TCON=0x01;//即IT0=0,此为电平触发方式?最后,要写一个中断函数,如下:??????????????????????????????????????????????????void timer0() interrupt?n using m??????????????????????????????????????????????????????????{????????????????????????????????????????????????????????????????????此处写中断后要执行的程序???????????????????????????????????????????????????????????}????其中n 对应中断的编号,以80C51 单片机为例,编号从0~4,分别对应外中断0、定时器0 中断、外中断1、定时器1 中断和串行口中断。使用using?m 指定,其中m的值是0~3,对应使用四组工作寄存器。例如可以这样来写:???? void timer0() interrupt 1 using 2???? {…}????即表示在该中断程序中使用第2 组工作寄存器。说明:using最好不用,CPU会自动分配的。?????????(2)定时/计数器(重要说说定时器)????????????定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。????????????TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;????????????TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。????????加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。?????? 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。说明:如果振荡频率为12MHZ,那么一个机器周期为(1/12)* 12 = 1us ,如果计数值为1000,则定时时间为1000 * 1us = 1ms 。?

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档