《控制应用 第4章(1)1.ppt》由会员分享,可在线阅读,更多相关《控制应用 第4章(1)1.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章功能单元及操作1v51单片机中集成不少强化控制功能的硬件单元,在控制操作中起重要作用。v普通计算机,需相应外围器件与CPU配合,才能完成如中断、定时、通信、输入输出等基本功能。v单片机把外围器件都集成到一起,可在CPU控制下协调工作。2 4.1 并行并行I/O接口接口 v四个8位并行I/O,称P0、P1、P2和P3口。32根接口线。v每一位(根)内部都有锁存器、驱动器和输入缓冲器。v都可以位操作,给控制应用和编程,极大方便。v各口结构上有异,性质和功能也差别,比较详见表4-1。I/O口 P0口P1口P2口P3口性 质真正双向口准双向口准双向口准双向口功 能I/O口第2功能I/O口I/O口
2、第2功能I/O口第2功能SFR字节地址80H90HA0HB0H位地址范围80H87H90H97HA0HA7HB0HB7H驱动能力8个TTL负载4个TTL负载4个TTL负载4个TTL负载向片外程序存储器和片外数据存储器输出低8位地址和双向传送8位数据80C52用向片外程序存储器和片外数据存储器输出高8位地址第2功能串行口RXD、TXD外部中断INT0、INT1的输入计数器T0、T1输入片外数据存储器读、写命令WR、RD3 4.1.1 P1口 8位准双向口,可字节寻址也可以位寻址,字节地址90H,位地址9097H,低位在前。1.位结构与输入位结构与输入/输出状态输出状态 输出锁存器,使输出状态延续
3、;输入缓冲器BUF1读入引脚数据(电平),BUF2读入输出锁存器出口数据,缓冲器输入阻抗高,读操作时,对外界电平无影响;场效应晶体管T与内部上拉电阻组成输出驱动。位符号P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0位地址97H96H95H94H93H92H91H90H41.位结构与输入位结构与输入/输出状态输出状态 输出锁存器,使输出状态延续;输入缓冲器BUF1读入引脚数据(电平),BUF2读入输出锁存器出口数据,缓冲器输入阻抗高,读操作时,对外界电平无影响;场效应晶体管T与内部555上拉电阻组成输出驱动。5v作输出,若CPU输出1,T截止,引脚被内部电阻上拉为高,但上拉电阻
4、(实际上为一耗尽型场效应晶体管)较大,输出电流很小(约0.25A),要强驱动,须外接上拉电阻。v若CPU输出0,T导通,输出引脚被下拉为低(地)电平,允许数毫安吸入电流,能直接驱动LED等。T导通对地阻抗小,外电路要串电阻限制电流。10101061X110作为输入:作为输入:作输入,CPU要先向该口输出1,使A点升为高,称设置该口线为输入状态单片机复位后,所有32条口线均被置输入状态。之后,若外部输入1,A点仍高,BUF1读入,B点和内部总线也高。若外部为低0,则将A点下拉为低(因上拉电阻较大),BUF1读入,B点和内部总线也为低(0)。72.P1口特点(1)输出锁存,输出时不需任何条件和预操
5、作、预设置;(2)输入缓冲,输入时要求先将该口设置为输入状态,即CPU先向该口输出1;(3)没有高阻悬浮(关断)状态,不是输入态就是输出态。v这种特性的I/O不属于“真正”双向口,称“准”双向口。l若输入操作之前没将A点置高(CPU输出0之后,没再向该口输出1),则外部输入的信号1将被导通的场效应管T下拉为0,读入数值全0。l若外信号很强(如芯片或晶体管的输出),外部高电平1将通过导通的T,产生大的短路电流,使T和外芯片烧毁。l为防调程阶段和程序运行混乱(跑飞)时出此情况,输入口线串接限流电阻。83.P1口的操作(1)(1)字节、位操作字节、位操作字节操作,有数据传送指令和逻辑运算指令:输入:
6、MOV A,P1 ;(A)(P1)MOV direct,P1 ;(direct)(P1)输出:MOV P1,A ;(P1)(A)MOV P1,#data ;(P1)#data MOV P1,direct ;(P1)(direct)逻辑运算:ANL P1,#11101111B ;使P1.4口线输出0,ORL P1,#00000001B ;使P1.0口线输出1,其余不变。9 逻辑运算相当于位操作,C语言普遍用,但位操作指令可强化控制功能、加快执行速度:置位、清零:置位、清零:SETB P1.x ;(P1.x)1,x=0,7 CLR P1.x ;(P1.x)0 输入、输出:输入、输出:MOV C,P
7、1.x ;(CY)(P1.x)MOV P1.x,C ;(P1.x)(CY)10判断转移:JB P1.x,rel ;P1.x1,跳转 JNB P1.x,rel ;P1.x0,跳转 JBC P1.x,rel ;P1.x1,跳转且将P1.x0逻辑运算:ANL C,P1.x ;CY(P1.xCY)ORL C,/P1.x ;CY(P1.xCY)11(2)读引脚和读输出锁存器 从口的位结构来看,CPU读数据有两渠道:一是读引脚,另一是读输出锁存器。CPU执行端口数据传送指令:MOV A,P1 MOV direct,P1 CPU自动发读引脚命令,使三态缓冲器BUF1导通,引脚电平通过BUF1进内部。执行这种
8、指令之前,须先将输出锁存器置1,A点高,否则无法读入,易烧输出驱动管T。121X110有效读引脚13 CPU执行端口逻辑操作指令:(ANL、ORL、XRL)和位操作指令:(MOV、CPL、JBC等)。v属“读修改写”指令vCPU执行时,会自动发读输出锁存器命令,缓冲器BUF2导通,锁存器输出经BUF2进内部。1X110有效14读锁存器而不读端口电平可以避免错误操作。读锁存器而不读端口电平可以避免错误操作。CPU输出10.6V读引脚是0,是错误信息154.P1口的第二功能 v20引脚非总线型的51系列(如AT89C2051、GMS97C2051等),P1.0和P1.1还分别作为片内集成的精密电压
9、比较器的正相和反相输入端。v由于内部接电压比较器输入端,故两口内部不能再接上拉电阻。如果作I/O口用,须外接上拉电阻。加强型(如80C52、AT89C5255、GMS97C52等)P1.0定时器/计数器2的外输入端T2;P1.1定时器/计数器2的外部控制端T2EX。这两位的结构与P3口的位结构相当。AT89S5X,ATS8252等,在线串行编程等功能用P1.3 5。164.1.2 P3口 多功能8位口,可字节寻址也可位寻址,字节地址B0H,位地址B0B7H,低位在前。1位结构与输入/输出状态与P1口位结构区别:(1)P3口内增加一个与非门。l 与非门二输入端:一为锁存器主输出端Q,另一导入第二
10、功能的控制输出。与非门的输出接管T。位符号P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0位地址B7HB6HB5HB4HB3HB2HB1HB0H17P3口的位结构示意图 1101018(2)输出信号从输出锁存器Q端,而不是Q端输出,其后的与非门倒相。(3)读引脚输入通道有两个串联的输入缓冲器,第二功能输入取自第一缓冲器输出,读引脚取自第二缓冲器输出。v第二功能使B点置1时,输出锁存器输出通过与非门直达引脚P3.x,此时与P1口类似,为一准双向I/O。v若执行读/写外部数据存储器的指令MOVX A,DPTR,或MOVX DPTR,A 等,第二输出功能的读/写控制信号RD和WR也送
11、引出脚(P3.6和P3.7)。即第二功能控制使B点清0时,与非门输出恒为1,T导通,A点输出0。第二输出功能口还有串行数据输出口TXD(P3.1)。19v以上分析知,无论第二输入、第二输出功能,还是作普通I/O口的输入功能,都必须向该口位输出1,才能正常工作,不至于损坏,编程要特别注意。v鉴于上述原因,单片机复位后所有的端口位全部自动置1。(2)P3口的功能与特点 多功能口,功能为:(1)普通I/O口,为准双向口。功能与P1口相同,可字节也可位操作,可逐位定义口线为输出或输入口线;读引脚、读输出锁存器也与P1口相同。(2)作为第二功能的输入或输出。20第二输入功能有:第二输入功能有:P3.0R
12、XD,串行数据输入口;P3.2INT0,外部中断0请求输入口;P3.3INT1,外部中断1请求输入口;P3.4T0,定时器/计数器0外部计数脉冲输入口;P3.5T1,定时器/计数器1外部计数脉冲输入口;第二输出功能有:第二输出功能有:qP3.1TXD,串行数据输出口;qP3.6WR,外部数据存储器写控输出,低电平有效;qP3.7RD,外部数据存储器读控输出,低电平有效;同P1口一样,P3口输出也可驱动4个TTL负载。214.1.3 P2口1位结构与工作过程 与P1口位结构区别:(1 1)增增加加一一个个多多路路开关。开关。多路开关有两个输入:一是锁存器Q,另一是地址寄存器(PC或DPTR)高8
13、位的一位输出。多路开关的输出,经反相器(非门)反相接管T。多路开关的切换,由内部控制信号控制。位符号P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0位地址A7HA6HA5HA4HA3HA2HA1HA0H字节地址A0H22P2口的位结构示意图1101(2 2)输出锁存器输出端是)输出锁存器输出端是Q Q,经反相器,经反相器,A A点与点与Q Q端同。端同。23xx0110101v内部控制信号控制多路开关投向锁存器输出(C点),P2口状态与P1口同,为准双向口。v而多路开关投向地址输出侧(B点)时,P2.x引脚输出地址高8位中的一位。A点电平将随地址输出的0、1变,这时P2口输出高
14、8位地址。242.P2口的功能与特点(1)普通I/O口,功能与P1口同,为准双向口。(2)作寻址片外程序存储器和片外数据存储器的高8位地址码输出口。v与P0口输出的低8位地址一起,构成16位地址总线。v地址信号是8位一起自动输出的。254.1.4 P0口 多功能8位口,可字节寻址也可位寻址,字节地址80H,位地址8087H,低位在前。1位结构与工作过程位结构与P1口有明显区别:(1 1)增加一多路开关。)增加一多路开关。多路开关两个输入:一个是输出锁存器反相输出端Q,另一是地址寄存器(PC或DPTR)低8位中的一位经非门反相。多路开关输出接管Td。多路开关切换由内部控制信号控制。位符号P2.7
15、P2.6P2.5P2.4P2.3P2.2P2.1P2.0位地址87H86H85H84H83H82H81H80Hvv(2 2)输出上拉电路与)输出上拉电路与P1P1口不同。口不同。v上拉靠管Tu的导通,Tu受内部控制信号和地址/数据信号相“与”控制。FET管导通电阻很小,可驱动更多负载。v作一般I/O口,无控制信号,Tu关断,作输出必须外接上拉电阻(110k);作输入悬浮态,有很高的输入阻抗。26输出地址低8位信号100X11强上拉101100X强下拉27输出地址低8位信号输出 128输出地址低8位信号输出 029作为数据总线读外部程序存储器作为数据总线读外部程序存储器30P0作普通I/O口X悬
16、空00X强下拉1001 001131P0作普通I/O口读引脚0使能32P0作普通I/O口读端口锁存器使能033P0作普通I/O口输出(相当于无上拉电阻的P1口)342.P0口的功能与特点(1)作普通I/O口用 相当于未接内部上拉电阻的P1口,为准双向口。若接外部上拉电阻,则工作状态、功能和设定方式等与P1口相同。(2)作地址/数据复用总线 此时P0口为真正三态双向口,但只能整体用,不能逐位定义。可驱动8个TTL负载。35 4.2 80C51的中断系统 Interrupt system of 80c51单片机一般都集成自管理的中断系统,有很强的的中断控制能力。具有包括两个外部触发在内的5个(增强
17、型8xx52有6个)中断源,和两级中断优先级,固定的中断矢量地址,两种可选的外中断触发方式。36 80C51中断系统的结构中断系统的结构 IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0RIRIIPIP硬件查询硬件查询高级高级低级低级中断入口中断入口中断源中断源INT0INT0INT1INT1中断入口中断入口中断源中断源1 10 0IEIEPX0PX0PSPSPT1PT1PX1PX1PT0PT01 11 11 11 11 11 11 11 11 11 10 00 00 00 00 0EAEA1 111SCONSCON1 11 1T
18、0T0T1T1RXRXTXTXIT0IT0IT1IT10 00 0TCONTCON374.2.1 中断的概念与其重要性 中断的概念中断的概念 看电视看电视中断处理中断处理中断请求中断请求实际生活实际生活中断返回中断返回电话铃响电话铃响接听电话接听电话看电视看电视主程序主程序计算机计算机事件发生事件发生事件处理事件处理主程序主程序384.2.1 中断的概念与其重要性 v对被控对象的状态或参数,无论是连续波动还是突然变化,都要及时(实时)输入给系统,才能及时有效控制。vCPU(也包括单片机)对外部正发生的事件的感知,可通过以下两种方式:v一是CPU定期循环执行读(即输入)指令,称为查询输入方式,对
19、连续变化的物理量转换为数字量(A/D转换),通过CPU处理。l但绝大多数查询,都是浪费CPU的无效操作。查询多,会耽误CPU主要工作。l减少查询次数虽缓解CPU负担,但不能及时感知。l突发的紧急情况,或定时、计数等,不能耽搁、遗漏、需CPU立即处理。39 中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:v分时操作。分时操作。CPU可以分时为多个可以分时为多个I/O设备服务,设备服务,提高了计算机的利用率;提高了计算机的利用率;v 实时响应。实时响应。CPU能够及时处理应用系统的随机事能够及时处理应用系统的随机事件,系统的实时性大大增强;件,系统的实时性大大增强;v 可靠性高。可靠
20、性高。CPU具有处理设备故障及掉电等突发具有处理设备故障及掉电等突发事件能力,从而使系统可靠性提高。事件能力,从而使系统可靠性提高。40l若能在不需要CPU处理的时段,CPU不查询;而对突发的、计划外发生的事件,又能及时通知CPU,CPU立即反应,放下(暂停)正在进行的工作,转入对应刚刚发生事件的处理子程序,就可以大大减轻CPU负担,且对突发事件也能及时处理,这是中断输入的优点。l所谓中断,指CPU在执行程序过程中,允许发生的外部(或系统内部)事件通过硬件来打断程序的执行,使CPU转头去执行另一事先编好、专用于处理该事件的程序中断服务程序。l待该服务程序执行完,CPU再回到原被打断(中断)的地
21、方,继续执行原来的工作。l上述过程称中断。而为实现中断功能所设置的各种硬件和软件,统称中断系统。41v有中断方式,CPU可省大量查询时间,极大提高CPU效率,和处理突发事件的实时性。对嵌入式控制系统,可能发生多种紧急或计划外情况,故尤为重要。v因此,几乎所有的CPU,都具有中断功能。v单片机系统配置要尽量简单。微机:CPU外设专门的中断管理器(如8259A)。v单片机片内集成功能强大的中断系统(51基本型就有5种中断)。能在复杂紧急的情况同时出现时,应付自如。v 424.2.2 中断源及中断优先级 v中断例:正看书,来人敲门放下(中断原来的工作),并做记号后开门,与来人谈话。之后电话铃响,中断
22、谈话再去接电话(中断嵌套)。完后再与来人接谈(中断返回),来人走后再接看书(再返回)。v把能引起中断的外部或内部事件称为中断(请求)源,中断源就是引起中断的原因或触发中断请求的来源。v80C51单片机5个中断源(80C52有6个),分别是:1.INT0外部中断0请求,低电平或脉冲下降沿有效,由P3.2引脚输入。2.INT1外部中断1请求,低电平或脉冲下降沿有效,由P3.3引脚输入。3.TO片内定时器/计数器0溢出中断请求,对外部计数由P3.4引脚输入。4.T1片内定时器/计数器1溢出中断请求,对外部计数由P3.5引脚输入。5.TX/RX串行中断请求。当串行口完成一帧数据的发送或接收之后,请求中
23、断。6.T280C52片内定时器/计数器2溢出中断请求。43v每个中断源在SFR中,都对应一中断请求标志位。v当某个或某些中断源请求中断,对应标志位被置位(置1)。v但CPU能否获某标志位中断信息,还取决该中断源当时由程序控制,处于允许(称开中断)还是禁止(称关中断或中断屏蔽)中断。:几个中断源同时申请、或CPU正处理某一中断,又有新申请中断,CPU得区分哪个更重要优先处理、或是中断(撂起)正处理的中断服务,转去处理更紧急事件。即CPU须识辨哪个中断源更重要中断优先级。:80C51有两级优先级,可中断嵌套。对任一中断源,都可由指令随时设成高级或恢复为低级。CPU处理低级中断过程中,能响应高级中
24、断,更提高实时控制能力。4480C51中断系统的结构示意图 45中断服务程序46474.2.3 中断的控制和操作 4个特殊功能寄存器起重要作用:(1)定时器控制寄存器TCON(SFR中地址88H);(2)串行口控制寄存器SCON(SFR中地址98H);(3)中断允许寄存器IE;(4)中断优先级寄存器IP;TCON和SCON只有几个位,用于中断控制。通过对这些寄存器中各个控制位,由指令(和硬件自动)置位或清0,实现中断控制和操作。TCON位符号TF1TF0IE1IT1IE0IT088H位地址8FH8EH8DH8CH8BH8AH89H88HSCON位符号RENTIRI98H位地址8FH8EH8DH
25、9CH8BH8AH89H88H481.中断源请求标志 CPU每执行完一条指令,依次查中断(源)请求标志,看是否有请求。CPU响应中断后由硬件自动或由软件清0标志。标志位都位于TCON和SCON中。(1)TCON中的中断标志位 TCON是定时器/计数器T0和T1的控制寄存器,两位(D6和D4)控制T0和T1开闭,剩余6位作中断标志和中断触发方式控制。形式如下:TCON位符号TF1TF0IE1IT1IE0IT088H位地址8FH8EH8DH8CH8BH8AH89H88HTF1定时器/计数器T1的溢出中断(请求)标志位(1请求中断)。TF0定时器/计数器T0的溢出中断(请求)标志位(1请求中断)。I
26、E1外中断1的中断(请求)标志位(1请求中断)。IT1外中断1的中断触发方式控制位(0/1低电平/下降沿触发)。IE0外中断0的中断(请求)标志位(1请求中断)。IT0外中断0的中断触发方式控制位(0/1低电平/下降沿触发)。49(2)SCON中的中断标志位vSCON为串行口控制寄存器,其中最低两位(D1和D0)作为串行口中断标志。形式如下:vRI接收中断(请求)标志位(每接收完一个字节置1,请求中断)。vTI发送中断(请求)标志位(每发送完一个字节置1,请求中断)。4TF1、TF0、IE1和IE0有对应的中断请求时,由硬件置位(置1),CPU响应该中断后,由硬件自动复位(清0)。4R1、TI
27、须由软件指令置1和清0:4ITx(x0、1)为0,定义(低)电平触发方式,为1则下降沿触发。SCON位符号RENTIRI98H位地址8FH8EH8DH9CH8BH8AH89H88H502.中断允许控制 v当有中断源请求时,对应标志位被置1。但CPU硬件能否查到,取决于该中断源由程序控制为允许(开中断)还是禁止(关中断)。v80C51对中断请求源的开放或屏蔽由中断允许寄存器IE控制(位电平输出使能控制门电路开关),IE格式如下:IE位符号EA*ET2ESET1EX1ET0EX0A8H位地址AFHAEHADHACHABHAAHA9HA8HEA 中断允许总控制位。*ET2定时器/计数器2中断允许控制
28、位,增强型8xx52才有。ES 串行口中断允许控制位。ET1定时器/计数器1中断允许控制位。EX1外部中断1中断允许控制位。ET0定时器/计数器0中断允许控制位。EX0外部中断0中断允许控制位。程序控制开与关中断常用位置1和位清0指令,如:SETB EA;CLR EX0等。51v初始化程序中通常要开数个中断,用字节操作指令对IE各个位一次赋值完,如接下的程序段允许外中断1(INT1)、TO和串口中断,则:MOV IE,#96Hv复位后,所有中断均禁止(允许位全为0)。程序的初始化部分根据需要,将某些位赋1。程序执行的过程中,可频繁适时地开、闭中断,是编写控制程序重要事情。IE位符号EA*ET2
29、ESET1EX1ET0EX0A8H位地址AFHAEHADHACHABHAAHA9HA8H10010110523.中断优先级 两级,有两个不能寻址的,由硬件置位的优先级状态触发器,一个指示CPU是否正进行低优先级中断服务,另一指示CPU是否正进行高优先级中断服务。前者为1,屏蔽所有低级中断(请求源),只允许高级;两者皆1,屏蔽所有中断请求。只有执行了RETI指令后,当前优先级的状态触发器才清0。对各中断请求源,优先级别高低可设置,中断优先级寄存器IP格式如下:IP位符号*PT2PSPT1PX1PT0PX0B8H位地址BFHBEHBDHBCHBBHBAHB9HB8H*PT2定时器/计数器T2中断优
30、先级控制位(8xx52才有)。PS 串行口中断优先级控制位。PT1定时器/计数器T1中断优先级控制位。PX1外部中断1中断优先级控制位。PT0定时器/计数器T0中断优先级控制位。PX0外部中断0中断优先级控制位。53 用指令将某控制位置1,对应的中断源就升为高级,清0则降为低级。全部升为高级中断没意义。同时有几个同级中断请求时,响应哪一个取决于内部硬件的查询次序,排列如下:中断源 同级内的中断优先级 外部中断0(INT0)最高 定时器/计数器T0溢出中断 外部中断1(INT1)定时器/计数器T1溢出中断 串行口中断 定时器/计数器T2溢出中断 最低544.外部中断的触发方式 OTCON位大部分
31、作为中断请求标志位,其中两位IT1和IT0(D2和D0位),是外部中断触发方式选择控制位。O据需要,80C51外中断触发方式两种可选:低电平触发方式和脉冲下降沿触发方式。O复位后ITx(x0、1)初值0,默认电平触发方式。指令赋TCON两位IT1和IT0(D2和D0位)1后,变成下降沿触发。555.中断请求的撤除 v退出中断前,须撤消刚服务完的中断源请求标志。否则退出,CPU查标志位仍1,会立即再进该中断,多执行,混乱。v撤除(清0)方式3种:(1)中断响应后,硬件自动对标志位复位v4个:TCON中的TF0、TF1、IE0和IE1,对应于定时器/计数器0和1溢出中断、外中断0和1的下降沿触发中
32、断。v但CPU关中断情况下,有中断源请求,标志位同样置1,并锁存,一旦CPU开中断,则立即响应。不打算响应已过时的请求,开中断前,用指令先清0请求标志。56(2)须指令清除的中断请求标志)须指令清除的中断请求标志v有RI、TI(8xx52还有TF2和EXF2);v串行接收/发送的中断请求(和8xx52的定时器/计数器T2溢出中断请求),中断服务程序中清0;v查询方式工作的串行接收/发送,用指令JBC RI,rel和JBC TI,rel 查询转移和一并清0标志。4.2.4 中断的响应过程和中断矢量地址 1.中断响应的自主操作过程 中断响应的自主操作指中断响应过程中,CPU不依赖指令控制的内部操作
33、行为。了解它有助于中断应用程序的设计。57(1)CPU的中断查询每个机器周期S5P2时段,采样对应中断源。下一机期S6,CPU按序查标志位,下一机期S1,响应最高级。但以下三情况例外:CPU正处理同级或高级中断,不能寻址的优先级状态(生效)触发器已置位;CPU正执行多周期指令未到最后一机器周期,即中断操作在当前指令执行完之后才进行;已执行完RETI或访问IE或IP与中断相关特殊功能寄存器指令时,若接下来的一条指令未执行完,还不能响应中断。58(2)中断响应过程中CPU的自主操作CPU会自动完成以下操作:置位1相应优先级状态触发器,指示响应中断的优先级别,封锁低级和同级中断。对应中断源申请标志清
34、0(但TI、RI不能);断点(即不中断时应执行的下一条指令的首地址)16位地址压堆栈保护(SP先加1,向SP指示的栈顶装入断点地址的低8位;SP再加1,装入地址高8位);该中断源中断入口地址送PC,使程序转到中断入口地址处执行中断服务程序。59(3)中断返回时CPU的自主操作 CPU执行中断返回指令RETI时,产生以下自主操作:相对应优先级状态触发器清0,该中断返回后能再响应同级中断;堆栈弹出两个字节(应是断点地址)送PC(先弹高位地址,栈顶指针SP减1,后弹低位地址,SP再减1),使程序能返回断点处继续执行原任务。602.中断矢量地址v中断目的执行对应事件的处理程序,称中断服务程序。中断服务
35、程序绝不指令调用,只在中断发生且CPU响应后,才由中断系统调用。v中断系统怎样找到中断服务程序首地址?中断服务程序起始(入口)地址须固定。v响应某中断后,硬件会自动产生长调用LCALL指令,对应每一中断源,都安排一固定转移绝对地址中断矢量地址。硬件自动将与该中断源对应的装PC,使程序转向以该地址为入口的中断服务程序。6151系列单片机各中断源对应的中断矢量地址见表4-1。表4-1 中断源与其对应的矢量地址 中 断 源 中断矢量地址外部中断0(INT0)0003H定时器/计数器T0中断 000BH外部中断1(INT1)0013H定时器/计数器T0中断 001BH串行口中断 0023H*定时器/计
36、数器T0中断 002BH “*”者加强型才有同级优先级623.中断响应时间 v从发申请到执行服务程序第一条指令至少需3机器周期。v若申请恰好在CPU执行双周期指令RETI(或访问IE/IP)的第一机器周期,则需执行完接下的指令方能响应。若接下指令是最长的4周期乘/除指令,一共延时5周期,加上述3周期为8周期。v因此,51CPU响应中断的时间38个机器周期之间。一般不考虑,但用片内定时器/计数器精确定时,要微调Tx溢出的初始装填值。634.2.5 外部中断的应用简例举两个外部中断应用简例。例4-1 单片机控制系统意外断电,紧急处理和重要数据的急存。如图4-7,将INT0接至片外比较器输出端,设其
37、为高优先级中断。通常,比较器输出高电平。电源正常1电压跌落电位下降0急存重要数据64例4-2 控制转轴转动圈数,可间接控制位移或升降。如图4-8,传感器为OC门下拉输出的接近开关,转盘上突出金属块旋近时输出低,否则悬空,输入端INT1置下降沿触发方式,来一脉冲中断一次,在服务程序中累加值增1,之后刷新显示。并及时与键盘输入设定的到位置值比较,相等即控制停止电机。主要程序指令为:65 ORG 0013H ;定位紧接指令中断矢量地址 LJMP NUMBE ;长跳转到外中断1中断服务程序 ;主程序初始化部分 SETB IT1 ;置INT1为下降沿触发方式 SETB EX1 ;开INT1中断 SETB
38、 EA ;开总中断 MOV 50H,#00H ;选定的计数RAM字节清0 CYC:MOV A,40H ;将设定值(存在40H中)送A CJNE A,50H,RUN ;还未运行到达设定位置,转下 MOV 50H,#00H ;计数RAM字节重新清0 LCALL STOP ;调停止电机转动子程序RUN:SJMP CYC ;转回循环等待 66 INT1中断一定发生在标号CYC至转回循环SJMP CYC这一无限循环的程序段。;外中断1中断服务程序NUMBE:INC 50H ;计数值加1 ACALL SHOW ;调用显示计数值子程序刷 ;刷新显示(该子程序未写出)RETI 其中50H、40H等RAM字节是
39、编程前规划好,作特定变量数据存储单元,一旦定,不要变,以免混乱。67681.org0000h2.ajmpstart3.start:movdptr,#table;数据表地址送入dptr4.mov30h,#0;30单元作为循环计数器5.lop:mova,30h;30单元除作计数器外,还有变址作用6.movca,a+dptr;查数据表中的值并送入a7.movp1,a;查表结果送和P1口8.lcalldelay100ms;延时100ms9.inc30h;计数器加110.mova,30h;30单元值送入a11.cjnea,#8,lop;未到8次继续查表取值12.ajmpstart;到了则重新循环13.14.delay100ms:movr5,#195;1+(1+2*255)*195+2*195=100.036ms12M15.temp:movr6,#255;1+2*25516.djnzr6,$17.djnzr5,temp18.ret19.20.table:db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh69
限制150内