中断与定时器计数的C51.docVIP

  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文档。上传文档
查看更多
中断与定时器计数的C51

1.MCS-51单片机的中断系统由哪几个特殊功能寄存器组成? MCS-51单片机的中断系统是由TCON、IE、IP组成的。 2.MCS-51单片机中与定时器/计数器有关的特殊功能寄存器有哪几个?它们的功能各是什么? 和定时器/计数器有关的寄存器分别为TMOD、TCON、TH、TL TMOD寄存器是定时器/计数器工作方式设置寄存器 TCON寄存器是定时器/计数器控制寄存器 TH、TL是初值寄存器 3.试编写一段对中断系统初始化程序,允许外部中断0、外部中断1、定时器/计数器T0溢出中断、串行口中断,且使定时器/计数器T0溢出中断为高优先级中断。 IE 0X87; IP 0X02; 4.MCS-51单片机若要把外部中断源扩充为6个,可采用哪些方法?如何确定它们的优先级? 可以采用两种方法。 (1)利用外部中断和查询相结合的方法扩展外部中断如果系统外中断请求源,可以按照们的轻重缓急进行排队,把其中最高级别的中断源直接连接到单片机外中断0输入引脚,其余的外部中断请求可用利用逻辑器件通过与或者或的办法连接到单片机外中断1引脚,同时还连接到输入/输出端口(如P0或P1)的若干引脚,用来查询判断具体是哪一个中断请求源发生的中断事件。 ,利用单片机扩展5个外部中断源,中断的优先次序为0~4,其中0接到外部中断0上,1~4通过与门接到外部中断1上;单片机的P1.4~P1.7接4个发光二极管用来作输出指示;当有1~4其中一个外部中断发生时,相应的发光二极管~点亮;当0外部中断发生时,4个发光二极管全亮。代码如下: #include sbit P1_0 P1^0; //定义位变量 sbit P1_1 P1^1; sbit P1_2 P1^2; sbit P1_3 P1^3; sbit P1_4 P1^4; sbit P1_5 P1^5; sbit P1_6 P1^6; sbit P1_7 P1^7; void main P1 0xFF; //熄灭LED IT0 IT1 1; //外中断0触发方式EA 1; EX0 1; EX1 1; //中断for ; ; //延时等待中断发生 void INT0_ISR interrupt 0 //外中断0中断服务函数 P1 0x0F; //P1口高位置0点亮4个LED void INT1_ISR interrupt 2 //外中断1中断服务函数 if P1_0 0 P1 0xef; //如果为中断1,点亮D1 else if P1_1 0 P1 0xdf; else if P1_2 0 P1 0xbf; else if P1_3 0 P1 0x7f; //如果为中断4,点亮D4 (2)利用优先编码器扩展外部中断可以采用优先级解码芯片如74LS148,把多个中断源信号作为一个中断。如图所示,在有8个中断源的情况下,经74LS148优先译码后,只占3个I/O引脚,即用3根引脚可分辨8个中断源,从而节省了I/O口资源。程序代码如下: #include unsigned char status; /定义一变量用来读取P0口状态 void main EA 1; EX0 1; IT0 1; for ; ; ; void INT0_ISR interrupt 0//外中断0中断服务函数 status P00x07; //读取P0口低三位状态不同的值对应不同的中断源 switch status case 0: P1 0xfe; break; //处理中断源0 case 1: P1 0xfd; break; case 2: P1 0xfb; break; case 3: P1 0xf7; break; case 4: P1 0xef; break; case 5: P1 0xdf; break; case 6: P1 0xbf; break; case 7: P1 0x7f; break; //处理中断源7 5.在MCS-51单片机系统中,已知振荡频率是12MHz,用定时器/计数器T0实现从P1.1产生周期是2s的方波,试编程。 要输出周期为s的方波,应产生s的周期性定时,定时到则对P1.1取反可实现用定时/计数器T0产生周期性为10ms的定时,然后用一变量对10ms计数次。系统时钟为12MH,定时/计数器T0定时10ms,计数值N为10000,选方式1,方式控制字(01H),则初值X为X 65 536-10 000。 程序代码如下: #include sbit P1_1 P1^1unsigned char i; //定义计数变量void main i 0; //初始化

文档评论(0)

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

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

1亿VIP精品文档

相关文档