预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共113页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章中断系统和定时/计数器5.1中断系统中断原因: 一个人不可能同时完成两项任务。 (2)单片机中的中断2.中断技术的应用3.中断系统图4-1中断系统的结构框图5.1.2中断源——中断的申请方5.1.3中断控制——中断的控制“工具”1.中断允许寄存器IE由位操作指令或数据传送指令实现。 例:同时打开外部中断0和串行口中断,可设置为:2.中断优先级寄存器IP举例 表4-2中断入口地址及自然优先级3.定时/计数器及外部中断控制寄存器TCON形式形式例1解:法1:CLRIT1 SETBPX1 SETBEX1 SETBEA4.串口控制寄存器SCON5.1.4中断响应2.中断响应过程☆4.1.5中断嵌套图4-5二级中断嵌套的执行过程软件构成:主程序+中断服务程序 程序编制的关键点: 要对题目要求进行精确分析,明确哪些环节应该安排在主程序中,哪些环节应该安排在中断服务程序中,再分别编制主程序和中断服务程序。 1.中断系统的程序编制(2)选择中断服务程序的入口地址。 (3)编制中断服务程序。2.中断应用举例——三相交流电的故障检测电路(1)检测原理②故障情况下(假设A相掉电)(2)软件设计 ORG0000H LJMPMAIN ;跳至主程序 ORG0013H ;的中断入口地址 LJMPTEST ;转至中断服务程序 ORG0100H MAIN:MOVP1,#15H;P1.0、P1.2、P1.4作输入;P1.1、P1.3、P1.5输出0 SETBEX1 ;开中断 CLRIT1;为低电平触发 SETBEA ;CPU开中断 SJMP$ ;等待中断 TEST: JNBP1.0,LB ;A相正常,转测B相 SETBP1.1 ;A相掉电,点亮LEDA LB: JNBP1.2,LC ;B相正常,转测C相 SETBP1.3 ;B相掉电,点亮LEDB LC: JNBP1.4,LL ;C相正常,返回 SETBP1.5 ;C相掉电,点亮LEDC LL:RETI END5.2.2课题与实训7中断控制流水灯四.硬件电路 硬件结构如图,12引脚的按键点动表示有中断请求发出。五.参考程序 ORG0000H LJMPSTART ORG0003H LJMPINT0 ORG0100H START:MOVSP,#60H MOVIE,#81H;开INT0中断 SETBIT0;INT0下降沿触发 L1:MOVA,#0FFH;设初值 MOVR0,#8;设定左移八次 CLRC;将CY清0 L2:RLCA;带进位位循环左移一位 MOVP1,A;送P1口,P1.0灯亮 ACALLDELAY;延时0.2秒 DJNZR0,L2;判断是否左移8次 MOVR0,#7;移动7次 L3:RRCA;带进位位循环右移 MOVP1,A;送P1口 ACALLDELAY DJNZR0,L3;是否右移7次? AJMPL1;重新开始 DELAY:MOVR5,#4;延时0.2秒 D1:MOVR6,#200 D2:MOVR7,#123 NOP DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RET INT0:PUSHPSW;保护PSW,ACC值 PUSHACC MOVA,#00H;使8个LED全亮 MOVR2,#6;闪烁3次(全亮全灭各3次) L4:MOVP1,A;A值送出 LCALLDELAY;延时0.2秒 CPLA;A值取反 DJNZR2,L4;闪烁3次? POPACC;恢复保护的A值 POPPSW;恢复保护的PSW值 RETI;返回主程序 END 总结:中断服务程序与子程序对比 2.提高 编写一个由两个中断(外部中断0、外部中断1)控制的流水灯程序。 要求: 主程序不变,中断0可使P1.0~P1.3的LED闪烁5次,中断1可使P1.4~P1.7的LED闪烁5次,设定中断1的优先级比中断0高。5.3定时/计数器5.3.1定时/计数器的结构(2)定时 单片机内部的计数器用作定时器时,是对标准的时钟进行了计数,每来一个时钟脉冲,计数器加1,只要保证计数脉冲的间隔相等,则计数值就代表了时间的流逝。单片机内部的标准时钟脉冲是如何获得的呢?单片机内部的16位定时/计数器由高8位和低8位两个寄存器组成: T0由TH0和TL0组成, T1由TH1和TL1组成, 定时/计数器的计数值就存放在这里面。定时/计数器T1的结构与T0相同。再以水钟为例,当水不断落下,下面容器中的水不断变多,最终总有一滴水使得容器完全充满。这时如果再有一滴水落下,就会发生“溢出”。与此类似,16位定时/计数器计满65536个脉冲时,也会发生溢出。 定时/计数器溢出后标志位TF0(或TF1)由0变1,由此能够引发定时中断(在中断定时方式下),这就像定时的时间一到,闹钟就会响一样。 如果采用12MHz的晶振,对应的