《机械系统微机控制优秀课件》由会员分享,可在线阅读,更多相关《机械系统微机控制优秀课件(60页珍藏版)》请在金锄头文库上搜索。
1、机械系统微机控制EmailEmail:9/3/2024 12:50 AM机械系统微机控制优秀课件7 7 中断系统中断系统7.1 中断的概念7.2 中断技术的优点7.3 中断系统的功能7.4 中断源类型7.5 MCS-51的中断系统7.6 中断处理过程7.7 MCS-51外部中断源的扩展7.8 中断系统的应用机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.1 7.1 中断的概念中断的概念 所谓中断:是指CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU迅速去处理。CPU暂时中断当前的工作,转入处理所发生的事件,处理完毕后,再回来继续执行被中止了的工作,这个过程称为中断。 实
2、现这种功能的部件称为中断系统,产生中断的请求源称为中断源;原来正在运行的程序称为主程序;主程序被断开的位置称为断点。中断服务程序中断服务程序随机产生的随机产生的调用子程序调用子程序保护断点保护断点为外设服务和处理事件为外设服务和处理事件程序中事先安排好的程序中事先安排好的保护断点保护断点为主程序服务为主程序服务表表7-1 中断服务程序与调用子程序的区别中断服务程序与调用子程序的区别机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.2 7.2 中断技术的优点中断技术的优点分时操作分时操作 能解决快速能解决快速CPUCPU和慢速外设之间的矛盾,和慢速外设之间的矛盾,可使可使CPUCPU、
3、外设同时工作。外设同时工作。 实现实时处理实现实时处理 外界变化量可以根据要求,随时向外界变化量可以根据要求,随时向CPU发发出中断请求,要求出中断请求,要求CPU及时处理,及时处理,CPU就可就可以马上响应,加以处理。以马上响应,加以处理。故障处理故障处理 计算机运行过程中,出现无法预料的故障计算机运行过程中,出现无法预料的故障时,能自行处理,而不必停机。时,能自行处理,而不必停机。 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.3 7.3 中断系统的功能中断系统的功能1 1、实现中断及返回、实现中断及返回主主程程序序继继续续执执行行主主程程序序断点断点响应中断请求响应中断请求
4、返回主程序返回主程序中中断断服服务务程程序序2 2、实现优先权排队、实现优先权排队3 3、实现中断嵌套、实现中断嵌套RETIRETI主主程程序序继继续续执执行行主主程程序序断点断点响应低级中断请求响应低级中断请求返回主程序返回主程序高高级级中中断断服服务务程程序序响应低级中断请求响应低级中断请求返回低级中断程序返回低级中断程序RETIRETIRETIRETI图图7-2 7-2 中断流程图中断流程图图图7-3 7-3 中断嵌套流程图中断嵌套流程图机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.4 7.4 中断源类型中断源类型v7.4.1 7.4.1 外部中断类外部中断类 有两个中断源
5、:外部中断有两个中断源:外部中断0 0和外部中断和外部中断1 1,相应,相应的中断请求信号输入端是的中断请求信号输入端是INT0INT0和和INT1INT1,有两种有两种触发方式:电平触发方式和脉冲触发方式。触发方式:电平触发方式和脉冲触发方式。v7.4.2 7.4.2 定时中断类定时中断类 有两个中断源:定时有两个中断源:定时/ /计数器计数器0 0溢出中断和定时溢出中断和定时/ /计数器计数器1 1溢出中断。溢出中断。v7.4.3 7.4.3 串行中断类串行中断类 串行口中断请求标志:每当串行口接收或发送串行口中断请求标志:每当串行口接收或发送一组串行数据完毕时,由硬件使一组串行数据完毕时
6、,由硬件使TITI或或RIRI置位,置位,即产生一个串行口中断请求。即产生一个串行口中断请求。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.5 MCS-517.5 MCS-51的中断系统的中断系统7.5.1 7.5.1 中断请求标志中断请求标志7.5.3 7.5.3 中断优先级控制寄存器中断优先级控制寄存器IPIP7.5.2 7.5.2 中断允许控制寄存器中断允许控制寄存器IEIE机械系统微机控制机械系统微机控制机械系统微机控制优秀课件图7-3 MCS-51单片机的中断系统机械系统微机控制机械系统微机控制机械系统微机控制优秀课件5个中断请求源:(1)INT0:外部中断0请求,由P
7、3.2脚输入。由IT0决定是低电平有效还是负跳变有效。一旦有效,则向CPU申请中断,且建立IE0标志。(2)INT1:外部中断1请求,由P3.3脚输入。由IT1决定是低电平有效还是负跳变有效。一旦有效,则向CPU申请中断,且建立IE1标志。(3)TF0:定时器T0溢出中断请求。当T0产生溢出,TF0置位,请求中断处理。(4)TF1:定时器T1溢出中断请求。当T1产生溢出,TF1置位,请求中断处理。(5)RI或TI:串行中断请求。当接收或发送完一组数据后就置位RI或TI,请求中断。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.5.1 7.5.1 中断请求标志中断请求标志1、定时器控
8、制寄存器TCON的中断标志(88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT08F8F88888A8A8C8C89898B8B8D8D8E8EIE0(IE1):外中断请求标志。IT0(IT1):外中断请求信号方式控制位。当IT0(IT1)=1时:脉冲触发方式(边沿触发方式),负跳变有效。当IT0(IT1)=0时:电平触发方式,低电平有效。TF0(TF1):定时计数溢出标志位。当定时/计数器产生溢出时,由硬件置1;当转向中断服务时,由硬件自动清零。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件2、串行口控
9、制寄存器SCON的中断标志/ / / / / / TI RI/ / / / / / TI RI9F9F98989A9A9C9C99999B9B9D9D9E9ERI:串行口接收中断请求标志位。当单片机接收到一串行数据后,由硬件置1;当CPU转向中断服务程序后,该位必须由软件清零。TI:串行口发送中断请求标志位。当单片机发送完一串行数据后,由硬件置1;当CPU转向中断服务程序后,该位必须由软件清零。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.5.2 7.5.2 中断允许控制寄存器中断允许控制寄存器IEIEEA / / ES ET1 EX1 ET0 EX0EA / / ES ET1
10、EX1 ET0 EX0AFAFA8A8AAAAACACA9A9ABABADADAEAEEA:中断允许总控制位。EA=0,表示CPU禁止所有中断;EA=1时,表示CPU开放中断。EX0(EX1):外部中断允许控制位。EX0(EX1)=0,禁止外中断;EX0(EX1)=1,允许外中断。ET0(ET1):定时/计数器的中断允许控制位。ET0(ET1)=0,禁止定时/计数器中断;ET0(ET1)=1,允许定时/计数器中断。ES:串行中断允许控制位。ES=0,禁止串行中断;ES=1,允许串行中断。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.5.3 7.5.3 中断优先级控制寄存器中断优先
11、级控制寄存器IPIP/ / / PS PT1 PX1 PT0 PX0/ / / PS PT1 PX1 PT0 PX0BFBFB8B8BABABCBCB9B9BBBBBDBDBEBEPX0:外部中断0优先级设定位;PX0:定时器T0中断优先级设定位;PX1:外部中断1优先级设定位;PT1:定时器T1中断优先级设定位;PS:串行中断优先级设定位。 当某一控制位被置0,则该中断源被定义为低优先级;若被置1,则该中断源被定义为高优先级。中断优先级控制寄存器IP的各个控制位,都可以通过编程来置位或清零。 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件中断优先级的控制原则:(1)低优先级中断请求
12、不能打断高优先级的中断服务,但高优先级可打断低优先级的中断服务,实现中断嵌套。(2)一个中断一旦得到响应,与它同级的中断请求不能中断它。(3)同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求先被响应。查询次序为: 外部中断0定时/计数器中断0外部中断1定时/计数器中断1串行中断。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6 7.6 中断处理过程中断处理过程7.6.1 中断响应7.6.2 中断处理7.6.3 中断返回7.6.4 中断请求的撤除7.6.5 中断响应时间机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6.1 中断响应中断响应1、CPU的中断
13、响应条件(1)首先要有中断源发出中断申请;(2)中断总允许位EA=1,即CPU允许所有中断源申请中断;(3)申请中断的中断源的中断允许位为1,即此中断源可以向CPU申请中断。注:当出现下面一种情况时,中断会被阻断:(1)CPU正在执行一个同级或高一级的中断服务程序;(2)当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令还未完成前,任何中断请求都得不到响应;机械系统微机控制机械系统微机控制机械系统微机控制优秀课件(3)正在执行的指令是返回指令或者对专用寄存器IE、IP进行读/写的指令,此时在执行RETI或者读写IE或IP之后,不会马上响应中断请求,至少在执行一条其他指令之后才会响
14、应。 2、中断响应过程 中断源 入口地址 外部中断0 0003H 定时器T0中断 000BH 外部中断1 0013H 定时器T1中断 001BH 串行口中断 0023H机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6.2 中断处理中断处理 中断处理:中断服务程序从入口地址开始执行,直至遇到指令“RETI”为止,称中断处理。 编写中断服务程序需注意以下几点:(1)各入口地址间隔8个字节,需在入口地址单元处存放一条无条件转移指令。(2)若要在执行当前中断程序时禁止更高优先级中断源中断,要先关闭CPU中断,或禁止更高中断源的中断,而在中断返回前再开中断。(3)在保护现场和恢复现场时,为
15、了不使现场数据受到破坏,在保护现场和恢复现场时,CPU不响应新的中断请求。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6.3 中断返回中断返回中断源发中断请求中断源发中断请求中断响应条件中断响应条件是否满足?是否满足?中断是否中断是否受阻?受阻?把把PCPC断点地址压入堆栈断点地址压入堆栈相应中断源的中断入口地址相应中断源的中断入口地址送入送入PCPC转向中断服务程序转向中断服务程序硬硬件件自自动动完完成成关中断关中断保护现场保护现场开中断开中断中断服务中断服务关中断关中断恢复现场恢复现场开中断开中断中断返回中断返回中断地址由中断地址由堆栈弹入堆栈弹入PC中断服务程序中断服务程
16、序机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6.4 中断请求的撤除中断请求的撤除定时器溢出中断,CPU在响应中断后,用硬件清除中断请求标志IF0或IF1。边沿触发的外部中断,CPU在响应中断后,用硬件清除中断请求标志IE0或IE1。串行口中断,CPU在响应中断后,没有硬件清除TI、RI,用户必须用软件来清除。电平触发的外部中断,CPU在响应中断后,由硬件自动清除中断申请标志IE0或IE1,但不能彻底撤除中断请求。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.6.5 中断响应时间中断响应时间 中断响应时间:是从查询中断请求标志位开始转向中断入口地址所需的机器周期数
17、。 外中断响应时间:大于3个机器周期,小于8个机器周期。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件7.7 MCS-517.7 MCS-51外部中断源的扩展外部中断源的扩展1、利用定时器做外中断源法(1)置定时/计数器为工作模式2,且为计数方式,即8位的自动装载方式。(2)定时/计数器的高8位和低8位都预置为0FFH。(3)将定时/计数器的计数输入端(P3.3、P3.4)作为扩展的外部中断请求输入。(4)在相应的中断服务程序入口开始存放为外中断服务的中断服务程序。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-1】将定时器T0设定为方式2代替一个扩充外中断源,TH0
18、和TH1初值为FFH,允许T0中断,CPU开放中断,写出借用定时/计数器0溢出中断为外部中断的初始化程序。解:MOV TMOD,06H ;置T0为工作模式2、 计数方式 MOV TLO,0FFH ;置低8位初始值 MOV THO,0FFH ;置高8位初始值 SETB EA ;开中断 SETB ET0 ;定时器0允许中断 SETB TR0 ;启动计数器 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件2、用查询方式扩展中断源INT0INT0INT1INT180518051P1.3P1.3P1.2P1.2P1.1P1.1P1.0P1.0+5V+5VE14E14E10E10E13E13E12
19、E12E11E11R R5.1K 5.1K 图7-6 多外部中断源的硬件连接机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-2】用图7-6的连接对E11E14中断查询,写出有关的中断服务程序。 E11=1E11=1E12=1E12=1E14=1E14=1返回返回E11E11中断服务子程序中断服务子程序E12E12中断服务子程序中断服务子程序E14E14中断服务子程序中断服务子程序N NY YY YY YN NN N图7-7 软件查询中断源流程图机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 查询流程图如图7-7。查询次序为E11E14。在查到一个高级中断申请后,就转去
20、为这个中断申请服务,服务结束后,就返回继续查询较低级的中断申请,直到查不到其他中断申请时返回,并再等待INT1上出现新的中断申请信号。 ORG 0013HORG 0013H LJMP ITROU LJMP ITROU ITROUITROU:PUSH PSW PUSH PSW PUSH ACC PUSH ACC ANL P1 ANL P1,0FH0FH JNB P1.0 JNB P1.0,N1 N1 ACALL BR0 ACALL BR0 N1 N1:JNB P1.1JNB P1.1,N2N2 ACALL BR1 ACALL BR1 N2 N2:JNB P1.2JNB P1.2,N3N3机械系统
21、微机控制机械系统微机控制机械系统微机控制优秀课件 ACALL BR2 ACALL BR2 N3 N3:JNB P1.3JNB P1.3,N4N4 ACALL BR3 ACALL BR3 N4 N4:POP ACCPOP ACC POP PSW POP PSW RETI RETIBR0BR0: ;E11E11中断服务子程序中断服务子程序 RET RET BR1 BR1: ;E12E12中断服务子程序中断服务子程序 RET RET BR2 BR2: ;E13E13中断服务子程序中断服务子程序 RET RET BR3 BR3: ;E14E14中断服务子程序中断服务子程序 RET RET机械系统微机控
22、制机械系统微机控制机械系统微机控制优秀课件7.8 7.8 中断系统的应用中断系统的应用中断系统中需要人为控制的部分:(1)CPU的开中断和关中断;(2)各中断源中断请求的允许和禁止;(3)各中断源优先级别的设定;(4)外部中断请求的触发方式。中断服务程序的一般格式为: CLR EA CLR EACLR EA CLR EA PUSH ACC POP PSW PUSH ACC POP PSW PUSH PSW POP ACC PUSH PSW POP ACC SETB EA SETB EA SETB EA RETI SETB EA RETI 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件
23、【例7-3】利用定时器T0定时,在P1.0端输出一方波,方波周期为20ms,已知晶振频率为12MHz。主程序如下: ORG 0000H ORG 0000H LJMP 2000H LJMP 2000H T0T0的中断服务程序的中断服务程序 ORG 000BH ORG 000BH AJMP 70H AJMP 70H ORG 70H ORG 70H MOV TL0 MOV TL0,0F0H 0F0H ;重赋初值;重赋初值 MOV TH0 MOV TH0,0D8H0D8H 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 CPL P1.0 CPL P1.0 ;输出取反;输出取反 RETI RE
24、TI ORG 2000H ORG 2000H MOV TMOD MOV TMOD,01H01H;设置;设置T0T0为模式为模式1 1 MOV TL0 MOV TL0,0F0H0F0H;赋初值;赋初值 MOV TH0 MOV TH0,0D8H 0D8H MOV IE MOV IE,82H82H;CPUCPU开中断,开中断,T0T0开中断开中断 SETB TR0 SETB TR0 ;启动;启动T0T0 HERE HERE:SJMP HERE SJMP HERE ;循环等待定时到;循环等待定时到 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-4】用定时器T1定时,在P1.0端输出一
25、方波,周期为2min,已知晶振频率为12MHz。解:(方法1)采用中断方法。设定时器T1采用模式1定时10ms,用69H单元做毫秒计数单元,用79H单元做秒计数单元,用4FH位做1分计时到标志。T1中断服务程序入口地址为001BH。主程序如下:主程序如下: ORG 0000H ORG 0000H LJMP 2000H LJMP 2000H T1T1的中断服务程序的中断服务程序 ORG 001BH ORG 001BH 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 AJMP 100H AJMP 100H ORG 100H ORG 100H MOV TH1 MOV TH1,0D8H0D8
26、H;重赋初值;重赋初值 MOV TL1 MOV TL1,0F0H 0F0H DJNZ 69H DJNZ 69H,TT1 TT1 ;判;判1s1s定时到否?定时到否? MOV 69H MOV 69H,100H100H DJNZ 79H DJNZ 79H,TT1TT1 M0V 79H M0V 79H,60H60H;判;判1min1min定时到否?定时到否? SETB 4FH SETB 4FH TT1 TT1:RETI RETI ;中断返回;中断返回 ORG 2000H ORG 2000H MOV TMOD MOV TMOD,10H10H;设置;设置T1T1为定时模式为定时模式1 1机械系统微机控制
27、机械系统微机控制机械系统微机控制优秀课件 MOV TH1 MOV TH1,0D8H0D8H;赋初值;赋初值 MOV TL1 MOV TL1,0F0H0F0H MOV IE MOV IE,88H 88H ;CPUCPU开中断,开中断,T1T1开中断开中断 SETB TR1 SETB TR1 ;启动;启动T1T1工作工作 MOV 69H MOV 69H,100100;赋毫秒计数初值;赋毫秒计数初值 MOV 79H MOV 79H,60 60 ;赋秒计数初值;赋秒计数初值 CLR 4FH CLR 4FH ;清标志位;清标志位 TT TT:JNB 4FHJNB 4FH,TT TT ;等;等1min1m
28、in时间到时间到 CLR 4FH CLR 4FH ;清标志位;清标志位 CPL P1.0 CPL P1.0 ;输出反相;输出反相 AJMP TT AJMP TT ;反复循环;反复循环 END END机械系统微机控制机械系统微机控制机械系统微机控制优秀课件(方法2)采用软、硬相结合的方法。电路连接如图7-8,使P1.2与T0(P3.4)相连,P1.0仍然用做输出波形,定时器T1做10ms定时,定时器T0设为模式1计数,定时器T1控制P1.2输出方波,T0(P3.4)做计数输入端。 T0的计数初值X应为 X=65536-6000=59536=E890H 主程序如下: ORG 2000HORG 20
29、00H MOV TMOD MOV TMOD,15H 15H ;设置;设置T1T1为模式为模式1 1定时,定时, T0 T0为模式为模式1 1计数计数 MOV TH1 MOV TH1,0D8H 0D8H ;赋;赋T1T1定时定时10ms10ms初值初值 MOV TL1 MOV TL1,0F0H0F0H80518051P3.4P3.4P1.2P1.2P1.0P1.0机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV TH0 MOV TH0,0E8H0E8H;赋;赋T0T0计数计数60006000初值初值 MOV TL0 MOV TL0,90H90H MOV IE MOV IE,8AH
30、8AH;CPUCPU开中断,开中断, T0 T0、T1T1开中断开中断 SETB TR1 SETB TR1 SETB TR0 SETB TR0 LI LI:SJMP LISJMP LI;等;等10ms10ms到到T1T1的中断服务的中断服务 程序程序T1T1的中断服务程序(由的中断服务程序(由001BH001BH转来)转来) ORG 100H ORG 100H MOV TH1 MOV TH1,0D8H 0D8H ;重赋定时初值;重赋定时初值机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV TL1 MOV TL1,0F0H0F0H CPL P1.2 CPL P1.2 RETI R
31、ETIT0T0的中断服务程序(由的中断服务程序(由000BH000BH转来)转来) ORG 200H ORG 200H MOV TH0 MOV TH0,0E8H 0E8H ;重赋计数初值;重赋计数初值 MOV TL0 MOV TL0,90H90H CPL P1.0 CPL P1.0 RETI RETI机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-5】已知某8051单片机采用6MHz晶振,现要求P1.0输出一个5KHz的方波,同时对外部输入的脉冲信号进行计数,每当计满200时,使内部数据存储单元60H内容增1,当增到100时停止计数,并使P1.2输出高电平,定时器T1做串行口的
32、波特率发生器。解:定时器T0为工作模式3,TH0作为8位定时器用,TL0作为8位计数器用,利用T0(P3.4)引脚作为外部脉冲计数输入,用TL0计数,把TL0置初值38H(256-200=38H);用TH0作为8位定时器,由P1.0输出5KHz方波,即每隔100s使P1.0的电平变化一次,定时初值为CEH(256-100/2=206)。(定时100 s )主程序如下:机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV TL0 MOV TL0,38H 38H ;赋计数初值;赋计数初值 MOV TH0 MOV TH0,0CEH0CEH;赋定时初值;赋定时初值 MOV TL1 MOV
33、TL1,BANDBAND;根据波特率要求设;根据波特率要求设 定常数定常数BANDBAND MOV TH1 MOV TH1,BANDBAND MOV TMOD MOV TMOD,27H27H;T1T1为模式为模式2 2定时,定时, T0 T0为模式为模式3 3计数计数 MOV TCON MOV TCON,50H50H;启动;启动T0T0、T1T1工作工作 MOV IE MOV IE,9AH9AH;开放;开放CPUCPU中断,开放中断,开放 串口、串口、T0T0、T1T1中断中断 MOV 60H MOV 60H,00 00 ;60H60H单元清零单元清零 HERE HERE:SJMP HERE
34、SJMP HERE ;循环等待;循环等待TL0TL0计数溢出中断服务程序(由计数溢出中断服务程序(由000BH000BH转来)转来) MOV TLO MOV TLO,38H 38H ;重赋初值;重赋初值机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 INC 60H INC 60H MOV A MOV A,60H60H CJNE A CJNE A,100100,LPLP SETB P1.2 SETB P1.2 CLR ET0 CLR ET0 CLR TR0 CLR TR0 LP LP:RETIRETITH0TH0溢出中断服务程序(由溢出中断服务程序(由001BH001BH转来)转来)
35、MOV TH0 MOV TH0,0CEH 0CEH ;重赋初值;重赋初值 CPL P1.0 CPL P1.0 ;P1.0P1.0输出取反输出取反 RETI RETI机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-7】已知甲乙两台8051单片机所使用的晶振均为11.0592MHz。现要求两机之间进行串行通信,甲机发送,乙机接收。传输波特率定为9600。甲机以78H、77H中的内容为发送数据的起始地址,以76H、75H中的内容为发送数据的末地址。甲机首先发送数据的起始地址和末地址,然后再开始发送数据。乙机以接收到的第12字节作为存放接收数据的起始地址,第34字节作为存放接收数据的末
36、地址,第5字节为起始数据。解:设定时器1按模式1工作,串行口也按模式 1工作。程序如下:甲机发送: ORG 2000HORG 2000H机械系统微机控制机械系统微机控制机械系统微机控制优秀课件TANTAN:MOV TMODMOV TMOD,10H10H;定时器;定时器1 1设置为模式设置为模式1 1 MOV TL1 MOV TL1,0FDH0FDH;定时器;定时器1 1赋初值赋初值 MOV TH1 MOV TH1,0FFH0FFH SETB EA SETB EA ;CPUCPU开中断开中断 SETB ET1 SETB ET1 ;定时器;定时器1 1开中断开中断 CLR ES CLR ES ;串
37、行口关中断;串行口关中断 SETB PT1 SETB PT1 ;定时器;定时器1 1置高中断优先级置高中断优先级 CLR PS CLR PS ;串行口置低中断优先级;串行口置低中断优先级 SETB TR1 SETB TR1 ;启动定时器;启动定时器1 1工作工作 CLR TI CLR TI ;清发送中断标志;清发送中断标志 MOV SCON MOV SCON,40H40H;串行口置工作模式;串行口置工作模式1 1 MOV SBUF MOV SBUF,78H 78H ;输出高位地址;输出高位地址 JNB TI JNB TI, ;等待地址发送;等待地址发送 CLR TI CLR TI ;TITI清
38、清“零零”机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV SBUF MOV SBUF,77H77H;输出低位地址;输出低位地址 JNB TI JNB TI, ;等待地址发送;等待地址发送 CLR TI CLR TI ;TITI清清“零零” MOV SBUF MOV SBUF,76H76H;输出末位地址高位字节;输出末位地址高位字节 JNB TI JNB TI, ;等待地址发送;等待地址发送 CLR TI CLR TI ;TITI清清“零零” MOV SBUF MOV SBUF,75H75H;输出末位地址低位字节;输出末位地址低位字节 SETB ES SETB ES ;串行口开
39、中断;串行口开中断 SJMP SJMP ;等待发送;等待发送 定时器定时器1 1中断服务程序(由中断服务程序(由001BH001BH转来)转来) TIN TIN:CLR TR1 CLR TR1 ;关定时器;关定时器1 1 MOV TL1 MOV TL1,0FDH0FDH;T1T1重置初值重置初值 MOV TH1 MOV TH1,0FFH0FFH机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 SETB TR1 SETB TR1 ;启动;启动T1T1工作工作 RETI RETI ;中断返回;中断返回 串行口中断服务程序(由串行口中断服务程序(由0023H0023H转来)转来)ESSESS
40、:PUSH DPL PUSH DPL ;把;把DPTRDPTR压入堆栈保护压入堆栈保护 PUSH DPH PUSH DPH PUSH ACC PUSH ACC ;把;把A A压入堆栈保护压入堆栈保护 MOV DPH MOV DPH,78H 78H ;发送数据地址;发送数据地址DPTRDPTR MOV DPL MOV DPL,77H77H MOVX A MOVX A,DPTR DPTR ;发送数据;发送数据AA CLR TI CLR TI ;TITI清清“零零” MOV SBUF MOV SBUF,A A ;输出数据;输出数据 MOV A MOV A,DPHDPH机械系统微机控制机械系统微机控制
41、机械系统微机控制优秀课件 CJNE A CJNE A,76H76H,EN1EN1;数据未送完转至;数据未送完转至EN1EN1 MOV A MOV A,DPLDPL CJNE A CJNE A,75H75H,EN1EN1 CLR ES CLR ES ;串行口关中断;串行口关中断 CLR ET1 CLR ET1 ;定时器;定时器1 1关中断关中断 CLR TR1 CLR TR1 ;关定时器;关定时器1 1ESCESC:POP ACC POP ACC ;恢复现场;恢复现场 POP DPH POP DPH POP DPL POP DPL RETI RETIEN1EN1:INC 77H INC 77H
42、;低位地址加;低位地址加1 1 MOV A MOV A,77H77H JNZ EN2 JNZ EN2 ;低位地址非零转移;低位地址非零转移机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 INC 78H INC 78H ;高位地址加;高位地址加1 1EN2EN2:SJMP ESC SJMP ESC ;无条件转移;无条件转移乙机接收:乙机接收: ORG 2000H ORG 2000HREVREV:MOV TMODMOV TMOD,10H 10H ;定时器;定时器1 1设置为模式设置为模式1 1 MOV TL1 MOV TL1,0FDH 0FDH ;定时器;定时器1 1赋初值赋初值 MOV
43、 TH1 MOV TH1,0FFH0FFH SETB EA SETB EA ;CPUCPU开中断开中断 SETB ET1 SETB ET1 ;定时器;定时器1 1开中断开中断 SETB ES SETB ES ;串行口开中断;串行口开中断 SETB PT1 SETB PT1 ;定时器;定时器1 1置最高中断优先级置最高中断优先级 CLR PS CLR PS ;串行口置低中断优先级;串行口置低中断优先级机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 SETB TR1 SETB TR1 ;启动定时器;启动定时器1 1工作工作 MOV SCON MOV SCON,50H50H;串行口置工作模
44、式;串行口置工作模式1 1接收接收 CLR B.0 CLR B.0 ;设置接收地址标志;设置接收地址标志 MOV 70H MOV 70H,78H78H;设置起始地址;设置起始地址 SJMP SJMP ;等待接收;等待接收 定时器定时器1 1中断服务程序(由中断服务程序(由001BH001BH转来)转来)REV1REV1:CLR TR1 CLR TR1 ;关定时器;关定时器1 1 MOV TL1 MOV TL1,0FDH 0FDH ;定时器;定时器1 1重置初值重置初值 MOV TH1 MOV TH1,0FFH 0FFH SETB TR1 SETB TR1 ;启动定时器;启动定时器1 1工作工作
45、 RETI RETI 机械系统微机控制机械系统微机控制机械系统微机控制优秀课件串行口中断服务程序(由串行口中断服务程序(由0023H0023H转来)转来)ESSESS:PUSH DPL PUSH DPL ;DPTRDPTR压栈保护压栈保护 PUSH DPH PUSH DPH PUSH ACC PUSH ACC ;A A压栈保护压栈保护 MOV A MOV A,R0 R0 ;R0R0压栈保护压栈保护 PUSH ACC PUSH ACC JB B.0 JB B.0,DA0 DA0 ;非地址转移;非地址转移 MOV R0 MOV R0,70H70H MOV A MOV A,SBUF SBUF ;接收
46、地址信息;接收地址信息 MOV MOV R0R0,A A DEC 70H DEC 70H ;修改接收地址;修改接收地址 CLR RI CLR RI ;RIRI清清“零零” MOV A MOV A,74H74H机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 CJNE A CJNE A,70H70H,DA2 DA2 ;地址未接收完转移;地址未接收完转移 SETB B.0 SETB B.0 ;设置接收数据标志;设置接收数据标志DA2DA2:POP ACC POP ACC ;将;将A A弹出堆栈送弹出堆栈送R0R0 MOV R0 MOV R0,A A POP ACC POP ACC POP
47、DPH POP DPH ;恢复现场;恢复现场 POP DPL POP DPL RETI RETIDA0DA0:MOV DPHMOV DPH,78H 78H ;接收的起始地址送;接收的起始地址送DPTRDPTR MOV DPL MOV DPL,77H77H MOV A MOV A,SBUF SBUF ;接收数据信息;接收数据信息 MOVX MOVX DPTRDPTR,A A CLR RI CLR RI ;RIRI清清“零零” INC 77H INC 77H ;地址低位加;地址低位加1 1机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV A MOV A,77H 77H ;地址低位非
48、零转移;地址低位非零转移 JNZ DA3 JNZ DA3 INC 78H INC 78H ;地址高位加;地址高位加1 1DA3DA3:MOV AMOV A,76H76H CJNE A CJNE A,78H78H,DA2DA2;数据未接收完转至;数据未接收完转至DA2DA2 MOV A MOV A,75H75H CJNE A CJNE A,77H77H,DA2DA2 CLR ES CLR ES ;串行口关中断;串行口关中断 CLR ET1 CLR ET1 ;定时器;定时器1 1关中断关中断 CLR TR1 CLR TR1 ;关定时器;关定时器1 1 SETB PSW.5 SETB PSW.5 ;
49、设置传送结束标志;设置传送结束标志 AJMP DA2 AJMP DA2 END END机械系统微机控制机械系统微机控制机械系统微机控制优秀课件【例7-8】多机通信软件设计。1)软件协议(1)系统中允许有255台从机,其地址分别为00HFEH。(2)地址FFH是对所有从机都起作用的一条控制命令,命令各从机恢复SM=1状态。(3)主机和从机的联络过程为:主机首先发送地址,被寻址从机向主机回送本机地址,主机在判断地址相符后给被寻址的从机发送控制命令,被寻址的从机根据其命令向主机回送自己的状态,若主机判断状态正常,主机即开始发送或接收数据,发送或接收的第一个字节为数据块长度。若从机状态不正常,主机重联
50、络。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件(4)设主机发送的控制命令代码为: 00H:要求从机接收数据块; 01H:要求从机发送数据块; 其他:非法命令。(5)从机状态字格式为:其中 若ERR=1,从机接收到非法命令; 若TRDY=1,从机发送准备就绪; 若RRDY=1,从机接收准备就绪。ERR 0 0 0 0 0 TRDY RRDYERR 0 0 0 0 0 TRDY RRDYD6D6D7D7D5D5D3D3D4D4D2D2D1D1D0D0机械系统微机控制机械系统微机控制机械系统微机控制优秀课件2)主机查询、从机中断方式的多机通信软件设计(1)主机串行通信子程序。入口参数;
51、(R0)主机发送的数据块首地址; (R1)主机接收的数据块首地址; (R2)被寻址的从机地址; (R3)主机发出的命令; (R4)数据块长度。流程图见图7-9。机械系统微机控制机械系统微机控制机械系统微机控制优秀课件开始开始串行口初始化串行口初始化发送地址发送地址从机应答否?从机应答否?应答地址相符?应答地址相符?CLR TB8发送命令发送命令接收从机状态接收从机状态从机状态正常否?从机状态正常否?命令分类命令分类从机接收准备就绪否?从机接收准备就绪否?从机发送就绪否?从机发送就绪否?向从机发送数据块长度向从机发送数据块长度接收数据块长度接收数据块长度向从机发送数据向从机发送数据接收数据接收数
52、据发送完否?发送完否?数据接收完否?数据接收完否?结束结束发送地址发送地址FFH从机复位从机复位发送地址发送地址FFH从机复位从机复位N NN NN NN NN NN NN NY YY YY YY YY YY YY Y“00”“00”“01”“01”图图7-9 多多机机通通信信主主机机查查询询方方式式程程序序流流程程图图机械系统微机控制机械系统微机控制机械系统微机控制优秀课件程序清单如下:程序清单如下:MSIOMSIO: MOV TMOD MOV TMOD,20H 20H ;初始化;初始化T1T1为定为定 时功能,模式时功能,模式2 2 MOV TL1 MOV TL1,0F3H 0F3H ;送
53、入初值;送入初值 MOV TH1 MOV TH1,0F3H 0F3H SETB TR1 SETB TR1 ;启动定时器;启动定时器T1T1 MOV PCON MOV PCON,80H 80H ;设置;设置SMOD=1SMOD=1 MOV SCON MOV SCON,0D8H 0D8H ;设置串行口模式;设置串行口模式 3 3,允许接收,允许接收, TB8=1 TB8=1MSIO1MSIO1:MOV SBUFMOV SBUF,R2 R2 ;发送从机地址;发送从机地址 JNB TI JNB TI, ;等待发送结束;等待发送结束 CLR TI CLR TI ;发送完,清;发送完,清TITI,为下,为
54、下 一次发送做准备一次发送做准备机械系统微机控制机械系统微机控制机械系统微机控制优秀课件WAIT1WAIT1:JBC RIJBC RI,MSIO2 MSIO2 ;等待从机应答;等待从机应答 SJMP WAIT1 SJMP WAIT1 MSIO2MSIO2:MOV AMOV A,SBUF SBUF ;取出从机应答地址;取出从机应答地址 XRL A XRL A,R2 R2 ;核对地址;核对地址 JZ MSIO4 JZ MSIO4 ;地址相符,则转;地址相符,则转MSIO4MSIO4MSIO3MSIO3:SETB TB8 SETB TB8 ;地址不符,重新联络;地址不符,重新联络 MOV SBUF
55、MOV SBUF,0FFH0FFH;给从机发复位命;给从机发复位命 令(令(TB8=1TB8=1) JNB TI JNB TI,;等待发送结束;等待发送结束 CLR TI CLR TI ;清;清TITI SJMP MSIO1 SJMP MSIO1;转重发地址;转重发地址MSIO4MSIO4:CLR TB8 CLR TB8 ;地址符合,;地址符合,TB8=0TB8=0,准备,准备 发送数据发送数据/ /命令命令机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 MOV SBUF MOV SBUF,R3 R3 ;给从机发送命令;给从机发送命令 JNB TI JNB TI, CLR TI CL
56、R TIWAIT2WAIT2:JBC RIJBC RI,MSIO5 MSIO5 ;等待接收从机应答;等待接收从机应答 SJMP WAIT2 SJMP WAIT2MSIO5MSIO5:MOV AMOV A,SBUF SBUF ;取出应答信息;取出应答信息 JNB ACC.7 JNB ACC.7,MSIO6MSIO6;核对命令接收是否;核对命令接收是否 出错,正确则转出错,正确则转 SJMP MSIO3 SJMP MSIO3 ;从机接收命令出;从机接收命令出 错,转重新联络错,转重新联络MSIO6MSIO6:CJNE R3CJNE R3,00H00H,MSIO7MSIO7;若要求从机;若要求从机
57、发送,则转发送,则转MSIO7MSIO7机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 JNB ACC.0 JNB ACC.0,MSIO3MSIO3;要求从机接收,从;要求从机接收,从 机未准备好,重新联络机未准备好,重新联络 STX STX:MOV SBUFMOV SBUF,R4 R4 ;从机准备好,向从;从机准备好,向从 机发送数据块长度机发送数据块长度WAIT3WAIT3:JBC TIJBC TI,STX1 STX1 ;发送结束,则转;发送结束,则转 SJMP WAIT3 SJMP WAIT3 ;未发送完,等待;未发送完,等待 STX1 STX1:MOV SBUFMOV SBU
58、F,R0 R0 ;向从机发送数据;向从机发送数据 JNB TI JNB TI, CLR TI CLR TI INC R0 INC R0 ;修改地址,指向下;修改地址,指向下 一个地址单元一个地址单元 DJNZ R4 DJNZ R4,STX1 STX1 ;数据未发送完,继;数据未发送完,继 续发送续发送机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 RET RET ;数据发送完毕,返回主程序;数据发送完毕,返回主程序 MSIO7MSIO7:JNB ACC.1JNB ACC.1,MSIO3MSIO3;若从机发送未准备;若从机发送未准备 好,转重新联络好,转重新联络 SRT SRT:JNB
59、 RIJNB RI, ;等待接收从机发来;等待接收从机发来 的数据块长度的数据块长度 CLR RI CLR RI ;清;清TITI位,为下一次位,为下一次 接收做准备接收做准备 MOV A MOV A,SBUF SBUF ;取出收到的数据;取出收到的数据 MOV R4 MOV R4,A A ;数据块长度送计数器;数据块长度送计数器R4R4 MOV MOV R1R1,A A ;数据块长度存入数;数据块长度存入数 据存储区据存储区 INC R1 INC R1 ;修改地址;修改地址机械系统微机控制机械系统微机控制机械系统微机控制优秀课件 SRX1 SRX1:JNB RIJNB RI,;等待接收从机发来;等待接收从机发来 的数据的数据 CLR RI CLR RI MOV MOV R1R1,SBUF SBUF ;接收的数据存入数;接收的数据存入数 据存储区据存储区 INC R1 INC R1 ;修改地址,指向下;修改地址,指向下 一个地址单元一个地址单元 DJNZ R4 DJNZ R4,SRX1 SRX1 ;数据未接收完,继;数据未接收完,继 续接收续接收 RET RET ;数据接收完毕,返;数据接收完毕,返 回主程序回主程序机械系统微机控制机械系统微机控制机械系统微机控制优秀课件The End本节结束本节结束机械系统微机控制优秀课件