第5章MCS-51定时_第1页
第5章MCS-51定时_第2页
第5章MCS-51定时_第3页
第5章MCS-51定时_第4页
第5章MCS-51定时_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章MCS51定时定时/计数器计数器 串行口及中断系统串行口及中断系统 5.1MCS51定时定时/计数器计数器 定时对物理过程进行采样测量,虽然可通过延时程序实现定时,但会降低CPU的工作效率。计数是根据外部随机事件进行计数。单片机内部都设置可编程的定时/计数器,可通过指令来确定或改变其工作方式。编程确定:定时还是计数?预置定时或计数初值当定时时间到或计数计满时,要不要发中断请求如何启动定时或计数器工作定时/计数器结构与工作原理2个16位定时/计数器: 中的初值。可预置完成计数”的方式以加“位计数器组成,由11100111000T,TLTHTL TH18TLTHTTLTHTTc特殊功能寄

2、存器: TMOD控制定时/计数器的工作方式。 TCON控制定时/计数器的启动运行并记录T0,T1的溢出标志。工作原理:1)定时器时基输入信号来自内部振荡信号,每一个机器周期内,定时器的计数器 加1,定时器可看作是对机器周期进行计数的计数器,一个机器周期是振荡频率的1/12(12分频),故定时器以振荡频率的1/12的速率计数。1100,TLTHTLTH例:晶振12MHz,一个机器周期为1s,最大的定时时间为216*165536s,当定时器计数到FFFFH,再计一个时,产生溢出,产生内部中断,可请求CPU进行处理。2)计数器(对外部引脚T0,T1上的脉冲信号进行计数)。当T0或T1引脚上有负跳变时

3、,计数器TH0,TL0(或TH1,TL1)就加1,即一个机器周期采样到信号电平为“1”,后一个机器周期采样到信号电平为0,则计数器加1。TcyTcy机器周期为保证电平在改变之前至少被采样一次,要求信号的电平至少须保持一个完整的机器周期。这样,检测到一个负跳变至少需要两个机器周期(24个振荡周期),则外部信号的跳变的最大速率为振荡频率的1/24。 设晶振12MHz,12MHz/241/2MHz500KHz,外部信号的频率不能超过500KHz。 定时器(对内部机器周期计数)或计数器(对外部引脚上的信号计数)的工作时,不占用CPU的时间,产生溢出才可能中断CPU的当前操作,工作效率高。方式寄存器TM

4、OD(通过编程来确定工作方式)GATE M1 M0 GATE M1 M0TMOD89HTC /TC/工作方式1T工作方式0T GATE门控位(后面再介绍);M1M0工作方式选择位(4种); 计数/定时方式选择位( 0定时, 1计数)。TC /C TTC /控制寄存器TCON TF1 TR1 TF0 TR0 IE1IT1 IE0 IT0TCON88H在中断系统中介绍有关,与外部中断INT1INT0TRx:定时/计数器“x”运行控制位, xxxxTRTRT/1T/0计数器,启动定时计数器,停止定时TFx:定时/计数器“x”溢出标志位,当Tx产生溢出时,由硬件置“1”,可向CPU发中断申请,CPU响

5、应中断后被硬件自动清“0”,采用程序查询方式,可由软件清0(硬件不能自动清零)。计数器的长度决定定时,计数器的运行)控制定时器控制字(计数器的动作方式)控制定时器方式字(/TLTH/TCON/TMODxx5.1.3定时定时/计数器的计数器的4种工作方式种工作方式1.方式0(M1M000)方式0为13位的计数器 位的位的5TL181TH计数方式定时方式中的控制位为10TMOD/TC 当计数器溢出时,(从全1变为全0时),中断标志位TF1置1,并使计数器清0,若CPU中断开放,则向CPU发中断请求,若要继续按方式0工作下去,则应按要求给13位计数器重新赋予计数初值 运行控制逻辑:的输入端是外部中断

6、中的门控位是的启停位计数器中定时是1INT1TMODGATE1/TCONTR1) 1(1INTGATETRCONTROL当GATE0CONTROLTR1,运行控制反取决于TR1。当GATE1,CONTROLTR1 ,运行控制受TR1和 两个条件 的控制。当TR11且 也为1时,才启动定时器。1INT1INT1INT应用:测量 脚上正脉冲的宽度。1INT8031启动定时器停止定时器内部的机器周期首先置定时方式,GATETR11,由 引脚的输入状态来控制定时器的启/停。正脉冲的宽度计数值一个机器周期的时间1INT 计数范围:213,最大定时时间Tmax2131s(12MHz晶振)=16384s。定

7、时时间的计算:定时时间T(213X)(一个机器周期)(213X) (定时器是加中“1”运算的,从定时器的初值X到定时器的溢出,总共计的数为(213X)。oscf12例:设主频12MHz,用定时器T1定时,使P1.0输出周期为2ms的方波。 2msP1.08031周期为2ms,即每1ms改变一次电平,定时时间为1ms,(213X)1s=1000,X8192100071921C18H 1C18H0001 1100 0001 1000,TH1E0H,TL118H(TL1的高3位不用)程序:中断方式ORG0000HLJMPSTARTORG001BHLJMPBRT1ORG0030HSTART:MOVSP

8、,#60HMOV TMOD,#00H;T1方式0MOVTH1,#0E0HMOVTL1,#18HSETBEASETBET1SETBTR1SJMP$BRT1:MOVTH1,#0E0H;重置初值MOVTL1,#18HCPLP1.0;输出取反RETI查询方式:ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60HMOVTMOD,#00HMOVTH1,#0E0HMOVTL1,#18HMOVIE,#00H;禁止中断SETBTR1Loop:JBCTF1,Loop1;查询,占用CPU时间SJMPLoop;自动清TH1Loop1:MOVTH1,#0E0HMOVTL1,#18HCPLP

9、1.0SJMPLoop2.方式1(M1M001)差别在于计数器位数TLx8位16位计数器。定时时间(216X)12/fosc。3.方式2(M1M010),自动装载初值的8位计数器(初值常数自动装,解决反复置初值的问题) 三态门中断TL1TF1TH1重新装置定时时间(28X)12/fosc。 特点:TL1,TH1中的常数一样,TH1作常数缓冲器。当TL1计满溢出时,置溢出标志TF1,同时还自动将TH1中的常数送至TL1,使TL1继续从初值开始计数,省掉了用户软件重装初值常数的步骤,可以产生比较精确的定时。4.方式3(M1M011) ),(位定时器附加的比较少用,增加了一个TL1TH1TL0TH0

10、8应用举例:( 前面的例子) X=216-1000=64536=FC18H (2)定时器方式1的应用,只需把方式0的应用中的常数改为 即可HTLMovFCHTHMov18#, 10#, 1(3)作计数器用每生产100个工件,发出一包装命令,包装成一箱,并记录其箱数。RL为光敏电阻,光照时,阻值小,有工件时,挡光阻值大,三极管输出高电平 ORG0000H LJMPSTART ORG000BH LJMPCOUNT ORG0030HSTART: MOVSP,#60H MOVP1,#00H(或CLRP1.0) MOVR5,#00H; MOV R4,#00H;箱计数值清0 MOVTMOD,#06H MO

11、VTH0,#9CH MOVTL0,#9CH SETBEA SETBET0 SETBTR0 SJMP$COUNT:MOVA,R4 ADDA,#01H MOVR4,A MOVA, R5 ADDC A,#00H MOVR5,A;箱计数值加1 SETBP1.0DLY: MOVR3,#64H NOP DJNZR3,DLY CLRP1.0 RETI计数值为100位后才响应中断,并发包装命令(4)门控位GATE的应用 为高时,T1开始计数计数结束读T11INTMOVTMOD,#90HMOVTH1,#00HMOVTL1,#00HJBP3.3,$;等待变低,不一定同步位SETBTR1;允许下计数JNBP3.3,

12、$;等变高后,开始计数JBP3.3,$;计数过程,等变低后,停止计数CLRTR1此时,TH1,TL1中的内容为正脉冲宽度(s) 举例:实现时钟中断举例:实现时钟中断1)计数初值的计算:按方式1定时器工作,最大定时约131ms(6 MHz),一秒不够,可把定时器的定时时间定为125ms,计数溢出8次,(1258=1000ms)即得到时钟计时的最小单位秒。 设计数初值为X,则(216X)* 2s=125000s。X=30360BDCH。1us50000(12 MHz,定时时间50 ms,计数溢出20次)。1 us 50000X3CB0H。2)中断方式进行溢出次数的累计,计满8次即得到秒计时。3)秒

13、到分,分到时的计时是通过程序实现的。4)显示缓冲区,及时钟显示。79H7AH7BH7CH7DH7EHLED5LED4LED3LED2LED1LED0显示缓冲区存放时、分、秒的单字节BCD码 时 分 秒ORG0000HLJMPMAINORG000BHAJMPP1T0;T0中断向量地址ORG0100HMAIN:MOVSP,#60HMOVR0,#79H;指向显示缓冲区首址MOVR7,#06HML1: MOVR0,#00HINCR0DJNZR7,ML1MOV TMOD,#01H;定时器0,方式1MOVTL0,#0DCH (#0B0H)MOVTH0,#0BH (#3CH)SETBTR0;定时开始SETB

14、EA;CPU开中放SETBET0;T0开中断MOV30H,#08H;置循环次数ML0:LCALLDISPLAY;调用显示程序SJMPML00显示缓冲区清P1T0:PUSHPSWPUSHACCSETBPSW.3;选1组寄存器MOVTL0,#0DCH (#0B0H)MOVTH0,#0BH (#3CH)MOVA,30H;循环次数减1DECAMOV30H,AJNZRETO;不满8次,转RET0;返回MOV30H,#08;满8次,开始计时;操作,重置循环次数MOVR0,#7AH;指向秒显示缓冲单元;地址LCALLDAAD1;秒加1出口时,R0;还是指7AHMOVA,R2;加1后的秒值在R2中XRLA,#

15、60HJNZRETORETO秒,不到转判是否到 60LCALLCLRO ;到60秒,秒显示缓冲区清;0,R0指向7AHMOVR0,#7CH;指向分显示缓冲区单元地址LCALLDAAD1;分加1MOVA,R2XRLA,#60HJNZRETOLCALLCLRO;到60分,分显示缓冲区单元清;0,R0指向7CHMOVR0,#7EH;指向时显示缓冲区单元地址LCALLDAAD1;时加1MOVA, R2XRLA,#24H;判是否到24小时JNZRETO;不到转RETOLCALLCLRO;到24小时显示缓冲区单元清RETO: POPACCPOPPSWRETIDAAD1:MOVA,R0;加1子程序,秒十位数

16、送ADECR0RETO分不到转判是否到60SWAPAORLA, R0;变成压缩的BCD码ADDA,#01HDAA;调整MOVR2,A;(R2,)存放压缩的BCD;码数ANLA,#0FH;屏蔽高位MOVR0,A;秒个位(79H)INCR0MOVA, R2ANLA, # 0F0HSWAPAMOVR0,A;秒十位(7AH)RETCLR0: CLRAMOVR0,ADECR0MOVR0,ARET加1子程序:04(7AH),03(79H)(A)=04H(R0)=79H(A)=40H(A)=43H(A)=44H调整(A)=44H(R2)=44H(79H)=04H(7A)=04H5.2MCS51串行口串行口串

17、行通信是指数据一位一位地按顺序传递的通信方式,只需一根传输线,特别适合远距离通信(相对于并行数据传递,有多少数据位就需多少根数据线,距离短但速度快),但传输速度较低。正确的进行串行通信双方要有约定: (a)数据传输的速率波特率(每秒钟内能发送和接收的二进制位数)。一般为9600,4800,2400,1200。 (b)数据的格式帧格式(下面要介绍)串行通信的方式:地线数据线发送端接收端只能接收或发送的称为单工(a)单工地线发 送 与接收发 送 与接收(b)双工可同时发送与接收,MCS51的串行口具有全双工的能力数据线地线发 送 与接收发 送 与接收( c ) 半 双工不能同时发送或接收 近程通信

18、:一般采用数字信号直接传送,不改变原数据代码的波形和频率基带传送。RS232接口RS232接口计算机计算机同室的计算机通信距离不超过30米RS232C电平标准: 0315V 1-3-15V8031的电平是TTL电平,它们之间要进行转换才能通信! 远程通信:1.使用专用的通信电缆(电话线) 2.双绞线(不调制)电话线计算机计算机 由于电话线频带较窄,303000Hz,直接用数字信号传递就会产生畸变,导致通信失败。因此要利用调制手段,将数字信号变成某种能在电话线上传输而不受影响的波形信号(正弦波),这种称为频带传送方式。1 0 1 0调制器1 0 1 0解调器电话线计算机计算机MODEMMODEM

19、 将待传送的数字信号调制成不同频率(信号频率在音频范围之内)的载波信号,代表数字信号的两种电平,在接收方用解调器检测出此模拟信号,转换成数字信号,便于另一台计算机接收。5.2.1串行通信的两种基本方式串行通信的两种基本方式1.异步传送方式(字符的发送是随机的,因此,对接收方来说,有一个如何判断有字符发送过来,何时是一个新的字符的开始的问题,故对传送的字符必须规定一定的格式)。 位时间t奇偶校验位MSBD7D6D1D0起始位 停止位(1,1.5,2位)LSB一帧数据异步通信字符格式发 送 接 收两 端 分 别使 用 自 己的 时 钟 ,不 共 用 同一个时钟起始位:为逻辑0,平常时为1,负跳变,

20、说明新的字符开始了。数据位:58位,最低位先来,高位在后。奇偶位:奇偶校验时,根据协议置1或清0(也可以不要)。停止位:为逻辑1,表示一帧数据的结束。波特率1/t,t为位时间。正确的传输必须帧格式一致,波特率同样(可由帧格式的图来说明)。优点:线路简单方便。缺点:传递速率低(一位一位传递,还要插入起始位等)。 例:设一帧数据为10位,则1200波特率意味表示每秒可传递120个字符数据。2.同步传递方式 在数据块开始用12个同步字符来指示,一旦检测到同步字,下面就是按顺序传送的数据块。数据无起始位等附加位,传送速度高,但硬件上要插入同步字或相应的检测手段,对硬件要求高。具体传送方式略。5.2.2

21、MCS51串行口结构串行口结构1.数据缓冲器SBUF串行通信就是对SBUF进行操作。SBUF对应两个缓冲器 共用一个地址,往SBUF中写数据,就是发送数据,读SBUF就是接收数据,不会冲突(双缓冲)。接收缓冲器发送缓冲器2.串行口控制寄存器SCONSCON(98H)SM0 SM1SM2RENTB8RB8TI RISM0,SM1:方式选择位,4种工作方式(下面介绍)SM2:多机通信控制位,在方式2和方式3下进行的,在多机通信时介绍。方式0时:SM20;方式1时:如SM21,则只有收到有效的停止位时,才置位RI。REN:允许接收位:由软件置1允许接收,由软件清0,禁止接收。 3.特殊功能寄存器PC

22、ON(电源控制寄存器)波特率选择位:SMODPCON(计算波特率时有用),波特率不变波特率加倍0SMOD, 1SMOD TB8:在方式2和方式3时,为要发送的第9位数据,需要时由软件置位或清0。在多机通信时,用TB8表示主机发送的是地址帧或数据帧。TB80数据帧,TB81地址帧。 RB8:在方式2和方式3时,是接收到的第9位数据(可能是奇偶校验位或者是地址/数据标志位)。 TI:发送中断标志位:在方式0时,发送完第8位数据,该位由硬件置位,在其它方式时,开始发送停止位时,置位,任何方式中须由软件复位TI。 RI:接收中断标志位:在方式0时,接收完第8位数据,该位由硬件置位。在其它方式接收到停止

23、位的中间位置时,置位,任何方式须由软件复位RI。5.2.3串行口工作方式1.方式0(SM0 SM100),移位寄存器方式,以扩展I/O口。 数据端RXD,同步脉冲端TXD。 数据帧格式MSBLSBD0 D1D2 D3 D4 D5 D6 D7 发送:当数据写入SBUF时,8位数据即以fosc/12的波特率从RXD引脚输出(从低位到高位)发送完后,置中断标志TI。 RXD TXD803174LS164D7 D0串入并出移位寄存器 MOVA,#55H MOVSBUF,A HERE:JBCTI,NEXTSJMPHERENEXT: 例:扩展I/O口 接收:当REN1,以fosc/12的波特率将RXD引脚

24、上的数据,接收完后,置中断标志RI。 RXD TXD803174LS165 D7 D0并入串出移位寄存器2.方式1(SM0 SM101),数据帧格式:10位波特率2SMOD/32(T1的溢出率),SMOD为波特率加倍因子。MSBLSBD0D1D2D3D4D5D6D7停止位起始位定时器T1的溢出率 秒的溢出次数定时器溢出周期T11改变TH1,TL1中的初值就改变了溢出的数波特率改变,溢出周期 ,12/fosc为一个机器周期初始值)koscf2(12k为T1的位数。方式0:k13,方式1:k16,方式2:k8。波特率波特率2SMOD fosc/32 12 (2k-初值初值),通常选方式2做波特率发

25、生器,做波特率发生器,自动装入初值,避免用程序反复装入,引起定时误差。自动装入初值,避免用程序反复装入,引起定时误差。波特率波特率2SMOD fosc/32 12 (256-TH1)。 发送数据:数据写入SBUF,就发送一帧数据为10位,从TXD脚输出(起始位,停止位自动生成),发送完后,置中断标志位TI。 (时序分析略) 接收数据:REN=1是接收的先决条件,以所选波特率的16倍速率采样RXD引脚,当采样到负跳变时,就开始接收一帧的其余数据,靠起始位来同步,接收一位要采样3次(包括起始位,停止位),取2次是相同的值作为接收的位值,以保证可靠。 RXDTXDGNDRXDTXDGND起始位若:(

26、1)RI=0 (2)接收的停止位为1,或SM2=0时,停止位进入RB8 上述两个条件满足,则接收到的8位数据进入SBUF,并置中断标志RI,否则的话,接收的数据将丢失,不能再恢复。 道理: (1)RI0,即上一帧数据接收完后,发生的中断请求已被响应(中断标志RI要人工清0),SBUF中的上一帧数据已被取走,SBUF空。(即接收完成后,RI位置,不要忘了清0,否则下一帧数据收不到)。 (2)接收的停止位不为1,同步肯定不对,接收的数据肯定错,故放弃数据!举例:方式1的应用例6-7 把内部RAM 40H5FH单元中的ASCII码,在最高位D7加上奇偶校验位后由甲机发送到乙机。 波特率为1200,晶

27、振为11.059MHZ。设甲机为串行方式1发送状态,SCON40H,乙机为串行方式1接收状态,SCON50H。用T1(方式2)作波特率发生器,TMOD20H初值:1200= * X=E8H3220)256(*12059.11X甲机编程:MOVTMOD,#20H MOVTL1,#0E8H MOVTH1,#0E8H MOVSCON,#40H;串行方式1 SETBTR1 MOVR0,#40H MOVR1,#20HNEXT: MOVA,R0;取ASCII码 LCALLSOUT;调用发送子程序 INCR0 DJNZR1,NEXT。SOUT: MOVC,P;A中为1的奇偶标志, P=0,;偶数个“1”P=

28、1,奇数个“1” CPLC MOVACC,7,C MOV SBUF,A JNBTI,$ CLRTI RET乙机编程:(把接收到的32个字节存放在6070H中)MOVTMOD,#20HMOVTL1,#0E8HMOVTH1,#0E8HMOVSCON,#50HMOVR0,#60HMOVR1,#20HNEXT: LCALLSINJNCERR;若“1”的个数为偶,则出错。;因为发送过来的都是奇的MOVR0,AINCR0DJNZR1,NEXTERR:;出错处理SIN:JNBRI,$CLRRIMOVA,SBUFMOVC,P;获得了奇偶性ANLA,#7FH;屏蔽奇偶位RET奇偶校验的一般处理:接收到的数据的奇

29、偶标志P0101接收的奇偶位RB801发送的奇偶位TB8013方式2和方式3 数据帧为11位(1个起始位,8个数据位,1位可程控为“1”或“0”的第9位数据(TB8),1位停止位)波特率:方式2:2SMOD/64*fOSC 方式3:同方式1 发送:同方式1。因为是9位UART(异步收发器),第9位数据是TB8,可用作多机通信中的地址或数据的标志位,也可作奇偶校验位。 接收:在接收数据结束以后若(1)RI0 (2)SM20或接收到的第9位数据为1 满足上述条件,第9位数据进入RB8,8位数据装入接收缓冲器,且置中断标志位RI,否则的话,接收的数据将丢失。 注意:方式2,3装入RB8的是第9位数据

30、位,对发送过来的停止位不予处理,方式1装入RB8的是停止位。 方式2和3常用于多机通信。 方式方式0的应用(的应用(LED显示)显示)LED显示器字形代码:D7D6D5D4D3D2D1D0(共阳)dpgfedcba0C0H:110000000F9H:111110010A4H:101001000B0H:10110000 99H:10011001 92H:10010010 82H:100000100F8H:11111000 80H:10000000 90H:10010000静态显示:静态显示就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止,每一位都需要一个8位的输出口控制,占用的I/O

31、口多。动态显示: 多位LED的显示只需两个8位的I/O口,某一时刻,由于字形代码是一样的,要使某一位显示只需使某一位选通即可。例:要显示5286,轮流送出5,2,8,6的字形代码和位码,每送一次码时要延时5ms(因为送码时,指令操作最多不超过十几个s,显示器不可能正常发光,故要延时)。程序在执行40ms左右,要把显示程序重新执行一次(刷新一次),否则熄灭(人眼对大于25Hz左右的闪烁不能分辨),占用CPU时间。 P1.0作串行输出选择信号DISPLY:MOVSCON,#00H;方式0MOVR7,#03H;字节计数MOVR0,#DISBUFSETBP1.0L1:MOVA,R0ADDA,#0DHM

32、OVCA,A+PCMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,L1CLRP1.0RETTABLE:DB0CH, 9FH,25H,0DH,99HDB49H,41H,1FH,01H,09HDISBUF EQU 70H70H,71H,72H显示缓冲区,显示程序设计,一般先开辟显示缓冲区,与显示器位相对应,按显示的数先放入显示缓冲区,然后调显示程序即可。3.方式2或方式3的应用主从式结构 才能通信从机之间只有通过主机主机与从机双向通信若SM2=1(表示置多机通信功能位)接收到第9位数据RB8为1后才把前8位数据装入SBUF,置RI,向CPU发出中断请求。接收到第9位数据RB8为0

33、,不产生中断标志,数据将丢弃。 若SM2=0,接收到的第9位数据不论是0还是1都产生中断,置RI,接收的数据装入SBUF中。所有从机的工作方式和波特率相同,地址不同!主机首先要发送一帧地址信息。停止位D0 D1D2D3 D4 D5D6 D7ADDR/DATA起始位位数据表示地址8数据帧地址帧帧标志位数据地址01/第9位数据为1 即TB8=1 所有的从机SM2位置1,处于只接收地址帧的状态(由方式2或方式3的特点决定)接收到的RB81,地址数据SBUF,中断请求。各从机响应中断,接收到地址帧后,将接收到的地址与本机的地址相比较。地址不相符合的从机,仍保持SM2=1,对随后主机发过来的数据帧不予理

34、采,SM2=1,数据帧的第9位=0,从机接收RB80,不产生中断,数据丢弃。 地址相符合的从机,清SM2=0,以接收主机随后发来的所有信息。(SM20,不论第9位是0或1,都产生中断)当与某个从机结束通信时,要使该从机恢复到SM21的状态,通过数据命令来实现。 5.3.MCS-51单片机中断系统单片机中断系统 中断(概念)计算机在工作过程因系统内部,外部某种原因而发生了随机事件,计算机停止当前正在运行的程序,转向相应的处理程序为其服务,处理完毕后,再返回去执行被中止的原来程序。 一般计算机系统的中断源会有多个,管理这些中断的逻辑中断系统 采用中断的优点: (1)分时操作解决快速CPU与慢速外设

35、之间的矛盾。 (2)实时处理(故障处理) 实时控制现场的随机信号,在任一时刻均可向CPU发出中断请求,要求CPU给予服务。 例:CPU启动定时器,就可继续执行主程序,同时定时器也在工作,当定时溢出时,向CUP发中断请求,CPU响应中断,去执行定时器服务程序,中断服务结束后,又返回主程序继续执行,提高效率。 5.3.1. 中断的一般功能中断的一般功能 中断的屏蔽与开放:关中断,开中断。CPU只有在开中断的情况下,才能响应中断源的中断请求。 RETI响 应中断主程序断点继续执行程序序响应高级中断中断嵌套中断处理:保护断点(自动) 把程序转向中断服务程序转向中断服务程序的首地址,在首地址处,再安排一

36、条跳转指令,转向中断服务程序 中断返回中断源的识别: 中断服务程序的首址 0003H( ) 000BH(T0) 0013H( ) 001BH(T1) 0023H(RI/TI)0INT1INT中断标志的查询(占用CPU时间) 中断优先(解决多个源同时中断问题):多个中断源同时提出中断请求,计算机先为优先级高的中断源提供服务,服务结束后,再为次高级的中断源服务(系统预先规定了优先级,编程也可以改变优先级) 中断嵌套:在执行中断服务程序的过程中,又有优先级高的中断请求,就停止当前的中断程序去为新的中断请求服务,服务完后再返回原来的中断服务程序。 5.3.2. 中断请求源中断请求源5个中断:2个外部中

37、断 , 。3个内部中断T0,T1,RI/TI。 0INT1INT1.定时/计数器控制寄存器TCON(中断标志锁存在其中)TCONTF1 TF0IE1IT1IE0IT0 TFX:定时/计数器TX溢出中断标志,当定时/计数器产生溢出时,由硬件自动置1,当CPU响应其中断点,该标志被硬件自动清0(查询时,也可软件清0) IEX:外部中断 请求标志 当CPU检测到该信号有效触发时,由硬件置1,当CPU响应中断后,IEX才由硬件自动清0。 ITX:外部中断触发方式选择位。 ITX=1 边沿触发方式 (下降沿触发,两个机器周期采样到边沿负跳变)。 ITX=0 电平触发方式(低电平有效)INTX 注意:采用

38、电平触发,CPU响应中断后,在中断服务程序执行完之前,外部中断请求必须请除(即为高电平),否则将再一次产生中断。2.串行口控制寄存器SCONSCON TIRI TI:串行口发送中断标志,当发送完一帧串行数据后,由硬件置1,CPU响应中断,转向中断服务程序时,硬件不能自动清TI,要用软件清0。 RI:串行口接收中断标志,当接收完一帧串行数据后,由硬件置1,须软件清0。 注意:串行口中断TI/RI共用一个中断源,到底是谁引起的?,应在中断服务程序中先测试TI或RI的标志,根据测试结果后程序转向相应的“接收结束”或“发送结束”的处理程序中去。5.3.3. 中断控制中断控制 (涉及到对中断源的允许还是禁止,各中断的优先级设置) 1.中断允许寄存器IEIE EA ES ET1EX1ET0 EX0 EA:中断总允许位 EA=1中断总允许(CPU开中断) ,EA=0禁止所有中断。 ES:串行中断允许位 ES=1开串口中断,ES=0禁止串口中断。 ETX:定时/计数器TX溢出中断允许位 ETX=1开定时计数中断, ETX=0禁止定时/计数中断。 EXX:外部中断 允许位 EXX=1开外部中断,EXX=0禁止外部中断INTX2.中断优先级寄存器定义了高,低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论