- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章定时与中断系统
§4.3中断系统 引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。 随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点: 4.3.2 MCS-51中断系统的结构 80C51的中断系统有5个中断源(8052有 6个),2个优先级,可实现二级中断嵌套 。 一、中断源 二、中断请求标志 1、TCON的中断标志 2、SCON的中断标志 三、中断的开放和禁止 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。 80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示: 80C51单片机的中断优先级有三条原则: 4.3.4 中断处理过程 中断响应条件: 中断源发出中断请求; 此中断源的中断允许位为1; CPU开中断(即EA=1)。 以上三条同时满足时,CPU才有可能响应中断。 中断编程: §4.1定时器/计数器 实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法: 4.1.1 定时/计数器的结构和工作原理 二、定时器的初值X 定时方式:计数初值X = 2^n –定时时间/机器周期。 其中n=13、16、8、8分别对应方式0、1、2 、3。 1、求T1的方式控制字TMOD: 2、计算计数初值Count : 3、开中断 EA=1; ET0=1; 4 、启动定时/计数器 TR0=1; 初始化程序: TMOD=0X01; TH0 =0XD8; TL0 =0XF0; EA=1; ET1=1; TR1=1; 定时器的应用举例 一、采用中断方式 #include reg51.h void main( ) { TMOD=0x10; TH1= (65536-125)/256; TL1= (65536-125)%256; ET1=1; EA=1; TR1=1; while(1); } 系统电路图 二、采用查询方式 void main( ) { TMOD=0x10; TH1= (65536-125)/256; TL1= (65536-125)%256; TR1=1; While(1) { While(TF1) { P10=~P10; TR1=0; TH1= (65536-125)/256; TL1= (65536-125)%256; TF1=0; TR1=1; } } } 例3:设单片机晶振频率f=12MHZ,在P1.0端接一个发光二极管,利用定时T0工作在方式0,使LED亮1s、灭1s,闪烁。(中断 /查询) /*中断方式*/ #includereg51.h sbit P1_0=P1^0; unsigned char num=0;//全局变量 void main( ) { TMOD=0x00; TH0=(8192-5000)%32; TL0=(8192-5000) /32; ET0=1; EA=1; TR0=1; While(1) { if (num==200) { num=0; P1_0=~P1_0; } } } 1、利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。试设计程序。 2、采用晶振12MHz,在P1.0引脚上输出周期为2.5S,占空比为20%的脉冲信号。 3、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期)。
文档评论(0)