1、单片机及其控制技术单片机及其控制技术单片机及其控制技术单片机及其控制技术项目一项目一 认识单片机认识单片机任务任务1-1 初识单片机初识单片机任务要点:本任务主要是使初学者了解、认识单片机,理解单片机的概念,了解单片机的用途、特点及其发展趋势。1.1.1单片机基本概念单片机基本概念单片机也许大家都听说过,单片机到底是什么?它是用来做什么的呢?项目一项目一 认识单片机认识单片机1.1.2 点亮一个点亮一个LED灯灯为了更好的认识单片机,理解单片机的功能,我们通过实例来进一步认识单片机。用单片机来点亮一个LED灯,如图所示:在P1.0端口上接一个发光二极管LED,任务就是要让发光二极管LED点亮。
2、这里要解决的问题主要有以下几个:(1)发光二极管LED如何发光;(2)单片机如何控制LED发光;(3)单片机工作需要哪些基本条件;(4)单片机控制LED发光的程序如何编写。1.LED如何发光如何发光项目一项目一 认识单片机认识单片机2.单片机如何控制单片机如何控制LED发光发光3.单片机工作基本条件单片机工作基本条件4.编写编写LED发光的程序发光的程序ORG0000HLJMPMAINORG0030HMAIN:CLRP1.0JMPMAINEND项目一项目一 认识单片机认识单片机1.1.3 单片机的应用领域单片机的应用领域(1)日常生活及家电领域)日常生活及家电领域 (2)办公自动化领域)办公自
3、动化领域 (3)商业营销领域)商业营销领域 (4)工业自动化)工业自动化 (5)智能仪器仪表)智能仪器仪表 (6)集成智能传感器的测控系统)集成智能传感器的测控系统(7)汽车电子与航空航天电子系统)汽车电子与航空航天电子系统1.1.4 单片机的分类单片机的分类1.1.5 单片机的特点单片机的特点1.1.6 单片机的发展趋势单片机的发展趋势1.1.7 现阶段主流单片机简介现阶段主流单片机简介结构简单、体积小结构简单、体积小 性能价格比高性能价格比高 可靠性高、耗能小可靠性高、耗能小 应用范围广泛。应用范围广泛。项目一项目一 认识单片机认识单片机8位主流单片机的种类很多,如下所示。(1)Intel
4、MCS-51兼容单片机有很多,是属于早期的8位单片机系列。(2)MicrochipPIC16C5X/6X/7X/8X系列、PIC17C、PIC18C系列。(3)Freescale68HC908;68S08系列。(4)AtmelAVR系列:(5)义隆EM78系列。Microchip的8位PIC系列拥有较大的市场份额,采用类RISC设计,在家用电器、工业控制上应用广泛。FreescaleC前身为Motorola半导体)的68系列单片机具有高可靠性,广泛用于汽车电子领域。16位主流单片机的种类如下所示。(1)IntelMCS-96系列,如80C196。(2)TIMSP4:30系列。(3)Microc
5、hipPIC24C系列。(4)MaximMAXQ系列(5)凌阳SPMC75系列。(6)FreescaleMC68S12系列。32位主流单片机的种类如下示。(1)STSTM32(Cortex-M3)。(2)AtmelAT32UC3B系列(AVR32)。(3)NXPLPC2000系列(ARM7内核)。(4)LuminaryMicro(TI收购)的SteUaris(群星)系列(armCo版内核)。项目一项目一 认识单片机认识单片机任务任务1-2解析单片机的内部结构解析单片机的内部结构任务要点:掌握单片机各个引脚的功能,掌握常用型号单片机的内部存储器的结构和地址分配。1.2.1 89C51单片机的外部
6、引脚及最小系统单片机的外部引脚及最小系统单片机的组成单片机的组成项目一项目一 认识单片机认识单片机最小应用系统的概念 在实际应用中,由于需求情况不同,单片机应用系统的外围电路及控制要求不同。单片机最小应用系统是指能使单片机独立工作运行的尽可能少的电路连接。89C51单片机内部已经有4kB的Flash ROM及128B的RAM,因此只需外接时钟电路、复位电路及电源即可工作,称为单片机最小应用系统,如图所示。项目一项目一 认识单片机认识单片机(2)时钟电路(3)复位电路项目一项目一 认识单片机认识单片机1.2.2 89C51单片机的存储器结构单片机的存储器结构1.程序存储器程序存储器ROM89C5
7、1程序存储器特殊功能存储单元项目一项目一 认识单片机认识单片机2.数据存储器数据存储器RAM2.1内部RAM低128单元项目一项目一 认识单片机认识单片机工作寄存器区工作寄存器区 RS0、RS1决定使用的是哪个寄存器决定使用的是哪个寄存器 MOV A,RO MOV A,00H位寻址区位寻址区 CLR 00H MOV 00H,#00H 或或 ANL 00H,#00H用户用户RAM区区项目一项目一 认识单片机认识单片机2.2内部RAM高I28单元(专用寄存器区)项目一项目一 认识单片机认识单片机MCS-51中共有中共有22个专用寄存器个专用寄存器21个可寻址个可寻址1、程序计数器、程序计数器PC
8、PC中的数据位将要执行的指令的地址中的数据位将要执行的指令的地址2、累加器、累加器ACC 8位寄存器位寄存器 E0H3、B寄存器寄存器 主要用于乘除法运算主要用于乘除法运算项目一项目一 认识单片机认识单片机4、程序状态字(PSW)5、数据指针(DPTR)DPH高8位DPL低8位项目一项目一 认识单片机认识单片机任务任务1-3 数制转换数制转换任务要点:掌握单片机中数的表示和各数制之间的转换。1.3.1常用数制常用数制1、数字与码制基础、数字与码制基础十进制十进制二进制二进制八进制八进制十六进制十六进制不同进制间的转换不同进制间的转换1.3.2不同进制数之间的相互转换不同进制数之间的相互转换1.
9、3.3逻辑运算逻辑运算与、或、非、同或、异或与、或、非、同或、异或项目一项目一 认识单片机认识单片机任务任务1-4单片机的开发工具单片机的开发工具1.4.1Keil软件的使用软件的使用KeilVision2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持PLM,汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。Keil单片机模拟调试软件安装完成以后,计算机桌面上将产生一个标注有“KeilVision2”的图标,双击这个图标就可以进入Keil单片机模拟调
10、试软件的集成开发环境,出现如图所示的屏幕,进入图所示的编辑界面。项目一项目一 认识单片机认识单片机STC_ISP_V488STC_ISP_V488单片机下载软件的使用单片机下载软件的使用1、这里使用STC-ISP-V4.88免安装版,双击可执行文件,如图所示。2、启动后,首次设置时只需注意芯片的选择,在左上角下拉框中选择单片机型号,一般的台式机大多只有一个串口,所以COM栏就选择COM1,如果使用别的串口那就选择相应的串口号,其他全部使用默认,其他参数可以使用默认状态,无须改动。总体设置如图所示。项目一项目一 认识单片机认识单片机1.4.2Proteus 的基本操作的基本操作1、认识、认识Pr
11、oteusProteus是英国LabcenterElectronics公司开发的EDA软件。它运行于Windows操作系统上,能够实现原理图设计、电路仿真到PCB设计的一站式作业,真正实现了电路仿真软件、PCB设计软件和虚拟模型仿真软件的三合一。2、进入Proteus ISIS双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“所有程序”“Proteus 7 Professional”“ISIS 7 Professional”,进入Proteus ISIS工作环境,如图1-4-22所示:项目一项目一 认识单片机认识单片机3、工作界面Proteus ISIS的工作
12、界面是一种标准的Windows界面,包括:屏幕上方的标题栏、菜单栏、标准工具栏,屏幕左侧的绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口,屏幕下方的状态栏,屏幕中间的图形编辑窗口,如图所示:单片机及其控制技术单片机及其控制技术单片机及其控制技术单片机及其控制技术项目二项目二 LED及数码管控制及数码管控制任务任务2-1闪烁灯的控制闪烁灯的控制项目二项目二 LED及数码管控制及数码管控制 MOV A,Rn ;RnA,n=07 MOV A,Ri ;(Ri)A,i=0、1 MOV A,direct ;(direct)A MOV A,#data ;dataA
13、一、一、数据传送类指令数据传送类指令 内内RAMRAM数据传送指令数据传送指令 以以累加器累加器A A为目的字节的传送指令为目的字节的传送指令(4 4条条)项目二项目二 LED及数码管控制及数码管控制例:例:项目二项目二 LED及数码管控制及数码管控制 MOV Rn,A ;ARn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data;dataRn,n=07 以以工作寄存器工作寄存器RnRn为目的字节为目的字节 的传送指令的传送指令(3 3条条)项目二项目二 LED及数码管控制及数码管控制以直接地址为目的字节的传送指令(5条)MOV direct,A ;
14、A(direct)MOV direct,Rn;Rn(direct),n=07 MOV direct,Ri;(Ri)(direct),i=0、1 MOV direct1,direct2;(direct2)(direct1)MOV direct,#data;data(direct)项目二项目二 LED及数码管控制及数码管控制以寄存器间址为目的字节的传送指令(3条)MOV Ri,A ;A(Ri),i=0、1 MOV Ri,direct ;(direct)(Ri),i=0、1 MOV Ri,#data ;data(Ri),i=0、1项目二项目二 LED及数码管控制及数码管控制例例项目二项目二 LED及
15、数码管控制及数码管控制试编程把30h和40h单元内容进行交换。MOVA,30H;(30h)AMOV30H,40H;(40h)30hMOV40H,A;A40hRAMXY累加器A30H40H返回项目二项目二 LED及数码管控制及数码管控制16位数据传送指令MOV DPTR,#data16 MOV DPTR,#data16 ;data16DPTR;data16DPTR【例例】MOV DPTR,#1234H MOV DPTR,#1234H ;DPTR=1234H;DPTR=1234H该指令也可以用两条该指令也可以用两条8 8位数据传送指令实现:位数据传送指令实现:MOV DPH,#12H MOV DP
16、H,#12H ;DPH=12H;DPH=12HMOV DPL,#34H MOV DPL,#34H ;DPL=34H,DPTR=1234H;DPL=34H,DPTR=1234H项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制 MOVX A,Ri ;(Ri)A,i=0、1 MOVX A,DPTR ;(DPTR)A MOVX Ri,A ;A(Ri),i=0、1 MOVX DATR,A ;A(DATR)外外RAMRAM传送指令传送指令(4 4条条)项目二项目二 LED及数码管控制及数码管控制2.2减减1 1非非0 0转移指令转移指令(2 2条)条)DJNZ DJ
17、NZ directdirect,rel,rel;PC+3PC,(direct)-1direct;PC+3PC,(direct)-1direct 若若(direct)=0,(direct)=0,则程序顺序执行则程序顺序执行 若若(direct)(direct)0,0,则则PC+relPC,PC+relPC,转移转移 DJNZ DJNZ RnRn,rel,rel;PC+2PC,Rn-1Rn,;PC+2PC,Rn-1Rn,若若Rn=0,Rn=0,则程序顺序执行则程序顺序执行 若若RnRn 0,0,则则PC+relPC,PC+relPC,转移转移项目二项目二 LED及数码管控制及数码管控制四、任务实施
18、四、任务实施1、硬件设计项目二项目二 LED及数码管控制及数码管控制2、软件设计项目二项目二 LED及数码管控制及数码管控制任务任务2-2模拟开关灯的控制模拟开关灯的控制项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制2、软件设计项目二项目二 LED及数码管控制及数码管控制任务任务2-3流水灯的控制(一)流水灯的控制(一)项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制2、软件设计项目二项目二 LED及数码管控制及数码管控制任务任务2-4流水灯的控制(二)流水灯的控制(二
19、)项目二项目二 LED及数码管控制及数码管控制四、任务实施四、任务实施1、硬件设计项目二项目二 LED及数码管控制及数码管控制2、软件设计项目二项目二 LED及数码管控制及数码管控制任务任务2-5数码管静态显示控制数码管静态显示控制项目二项目二 LED及数码管控制及数码管控制1、LED显示和接口项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制2、软件设计:参考程序如下:项目二项目二 LED及数码管控制及数码管控制任务2-6数码管动态显示控制项目二项目二 LED及数码管控制及数码管控制四、任务实施四、任务实施1、硬件设计如图所示。项目二项目二 LED及数码
20、管控制及数码管控制2、软件设计根据图中连接,假设8255A的无关地址位为1(也可为0),则8255A的A口地址为FFFCH,B口地址为FFFDH,控制口地址为FFFFH,由于A、B口均为输出,因此控制字为80H。参考程序如下:项目二项目二 LED及数码管控制及数码管控制项目二项目二 LED及数码管控制及数码管控制单片机及其控制技术单片机及其控制技术单片机及其控制技术单片机及其控制技术项目三项目三 按键控制按键控制任务任务3-1 独立按键控制独立按键控制项目三项目三 按键控制按键控制2、按键去抖动项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制四、任务实施:四、任务实施:项目三项目三
21、 按键控制按键控制项目三项目三 按键控制按键控制3、软件设计项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制任务任务3-2 多路开关状态指示多路开关状态指示项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制任务任务3-3 矩阵键盘的控制矩阵键盘的控制项目三项目三 按键控制按键控制3.3.2按键识别行线通过电阻接+5V电源,无按键动作时,行线处于高电平。当有键按下时,行线电平状态将由与此行线相连的列线电平决定,列线电平如被指令输出为低,则行线电平为低,反之亦然。由于矩阵键盘中行、列线为多键共用,各按键彼此将发生相互
22、影响,所以必须将行。列线信号配合起来并作适当处理才能确定按下键的位置。(1)扫描法(2)线反转法项目三项目三 按键控制按键控制3.3.3矩阵键盘的工作方式项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制项目三项目三 按键控制按键控制单片机及其控制技术单片机及其控制技术单片机及其控制技术单片机及其控制技术项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用CPUCPU暂时暂时中止其正在中止其正在执执行的程序,行的程序,转转去去执执行行请请求中断的求中断的那个外那个外设设或事件的服或事件的服务务程序,等程序,等处处理完理完毕毕后再返回后再返回执执行行原来中止的程序原
23、来中止的程序,叫做中断。叫做中断。为什么要设置中断?为什么要设置中断?提高提高CPUCPU工作效率工作效率 具有实时处理功能具有实时处理功能 具有故障处理功能具有故障处理功能 实现分时操作实现分时操作一一.中断概述中断概述 什么叫中断?什么叫中断?INT0INT0:外部中断外部中断0 0,中断请求信号由,中断请求信号由P3.2P3.2输入。输入。INT1INT1:外部中断外部中断1 1,中断请求信号由,中断请求信号由P3.3P3.3输入。输入。T0T0:定时定时/计数器计数器0 0溢出中断溢出中断,对外部脉冲计数由,对外部脉冲计数由P3.4P3.4输入。输入。T1T1:定时定时/计数器计数器1
24、 1溢出中断溢出中断,对外部脉冲计数由,对外部脉冲计数由P3.5P3.5输入。输入。串行中断串行中断:包括包括串行接收中断串行接收中断RIRI和和串行发送中断串行发送中断TITI。二二.中断源和中断控制寄存器中断源和中断控制寄存器 中断源中断源 中断源是指能发出中断请求,引起中断的中断源是指能发出中断请求,引起中断的装置或事件。装置或事件。80C5180C51单片机的中断源共有单片机的中断源共有5 5个,其中个,其中2 2个为个为外部中断源,外部中断源,3 3个为内部中断源:个为内部中断源:项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 中断请求:定时和外中断控制寄存
25、器中断请求:定时和外中断控制寄存器TCONTCON;串行控制寄存器串行控制寄存器SCONSCON;中断允许控制寄存器中断允许控制寄存器IEIE;中断优先级控制寄存器中断优先级控制寄存器IPIP。中断控制寄存器中断控制寄存器 80C5180C51单片机中涉及中断控制的有单片机中涉及中断控制的有3 3个方面个方面4 4个个特殊功能寄存器特殊功能寄存器:项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用INT0INT0、INT1INT1、T0T0、T1T1中断请求标志放在中断请求标志放在TCONTCON中中串行中断请求标志放在串行中断请求标志放在SCONSCON中。中。中断请求
26、控制寄存器中断请求控制寄存器(88H)(88H)TCONTCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称TF1TF1TF0TF0IE1IE1IT1IT1IE0IE0IT0IT0位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H功能功能 T1T1 中断中断标志标志T0T0中断中断标志标志 中断中断标志标志 触发触发方式方式 中断中断标志标志触发触发方式方式TCONTCON的结构、位名称、位地址和功能如下:的结构、位名称、位地址和功能如下:项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器
27、的应用 TCONTCON位功能位功能:TF1 TF1 T1T1溢出中断请求标志溢出中断请求标志 T1T1计数溢出后,计数溢出后,TF1=1TF1=1 TF0TF0 T0T0溢出中断请求标志溢出中断请求标志 T0T0计数溢出后,计数溢出后,TF0=1TF0=1 IE1IE1 外中断中断请求标志外中断中断请求标志 当当P3.3P3.3引脚信号有效时,引脚信号有效时,IE1=1IE1=1 IE0IE0 外中断中断请求标志外中断中断请求标志 当当P3.2P3.2引脚信号有效时,引脚信号有效时,IE0=1IE0=1 IT1IT1 外中断触发方式控制位外中断触发方式控制位 IT1=1IT1=1,边沿触发方
28、式;,边沿触发方式;IT1=0IT1=0,电平触发方式。,电平触发方式。IT0IT0 外中断触发方式控制位外中断触发方式控制位 其意义和功能与其意义和功能与IT1IT1相似。相似。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用串行控制寄存器串行控制寄存器SCON(98H)SCON(98H)TCONTCOND7D7 D6D6 D5D5D4D4 D3D3 D2D2D1D1D0D0位名称位名称 TITIRIRI位地址位地址 99H99H98H98H功能功能 串行发送串行发送中断标志中断标志串行接收串行接收中断标志中断标志 TITI 串行口发送中断请求标志串行口发送中断请求标
29、志 RIRI 串行口接收中断请求标志串行口接收中断请求标志项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 80C5180C51对中断源的开放或关闭由中断允许控制对中断源的开放或关闭由中断允许控制寄存器寄存器IEIE控制。控制。IE在特殊功能寄存器中,字节在特殊功能寄存器中,字节地址地址A8H,位地址分别是,位地址分别是A8HAFH。IE控制控制CPU对中断源总的开放或禁止以及每个中断源是对中断源总的开放或禁止以及每个中断源是否允许中断。否允许中断。中断允许控制寄存器中断允许控制寄存器IEIE(A8H)A8H)IEIE的结构、位名称和位地址如下:的结构、位名称和位地址如
30、下:IEIED7D7D6D6 D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称EAEA ESESET1ET1EX1EX1ET0ET0EX0EX0位地址位地址AFHAFH ACHACHABHABHAAHAAHA9HA9HA8HA8H中断源中断源CPUCPU 串行口串行口T1T1T0T0项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 EAEA CPU CPU中断允许控制位中断允许控制位 EA=1EA=1,CPUCPU开中;开中;EA=0EA=0,CPUCPU关中,且屏蔽所有关中,且屏蔽所有5 5个中断源。个中断源。EX0EX0 外中断外中断INT0INT0中断
31、允许控制位中断允许控制位 EX0=1EX0=1,INT0INT0开中;开中;EX0=0EX0=0,INT0INT0关中。关中。EX1EX1 外中断外中断INT1INT1中断允许控制位中断允许控制位 EX1=1EX1=1,INT1INT1开中;开中;EX1=0EX1=0,INT1INT1关中。关中。ET0ET0 定时定时/计数器计数器T0T0中断允许控制位中断允许控制位 ET0=1ET0=1,T0T0开中;开中;ET0=0ET0=0,T0T0关中。关中。ET1ET1 定时定时/计数器计数器T1T1中断允许控制位中断允许控制位 ET1=1ET1=1,T1T1开中;开中;ET1=0ET1=0,T1T
32、1关中。关中。ESES 串行口中断串行口中断(包括串发、串收包括串发、串收)允许控制位允许控制位 ES=1ES=1,串行口开中;,串行口开中;ES=0ES=0,串行口关中。,串行口关中。说明说明:80C51 80C51对中断实行两级控制,总控制位是对中断实行两级控制,总控制位是EAEA,每一,每一中断源还有各自的控制位。首先要中断源还有各自的控制位。首先要EA=1EA=1,其次还要自,其次还要自身的控制位置身的控制位置“1 1”。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用项目四项目四 中断系统与定时器中断系统与定时器/计数计数器的应用器的应用(3)中断优先寄存器中
33、断优先寄存器IP(B8H)IP在特殊功能寄存器中,字节地址为在特殊功能寄存器中,字节地址为B8H,位地,位地址分别是址分别是B8HBFH,IP用来锁存各中断源优先级的用来锁存各中断源优先级的控制位,其格式如图所示。控制位,其格式如图所示。三三.中断处理过程中断处理过程 中断处理过程大致可分为四步:中断处理过程大致可分为四步:中断请求、中断响应、中断服务、中断返回中断请求、中断响应、中断服务、中断返回 中断请求中断请求 中断源发出中断请求信号,相应的中断请求标志位中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存在中断允许控制寄存器器IEIE中中)置置“1 1”。中断响应中断响应
34、CPUCPU查询(检测)到某中断标志为查询(检测)到某中断标志为“1 1”,在满足中断响应条件下,响应,在满足中断响应条件下,响应中断。中断。中断响应条件中断响应条件:该中断已经该中断已经“开中开中”;CPUCPU此时没有响应同级或更高级的中断;此时没有响应同级或更高级的中断;当前正处于所执行指令的最后一个机器周期;当前正处于所执行指令的最后一个机器周期;正在执行的指令不是正在执行的指令不是RETIRETI或者是访向或者是访向IEIE、IPIP的指令,的指令,否则必须再另外执行一条指令后才能响应。否则必须再另外执行一条指令后才能响应。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用
35、计数器的应用 中断响应操作中断响应操作 CPUCPU响应中断后响应中断后,进行下列操作:进行下列操作:保护断点地址;保护断点地址;撤除该中断源的中断请求标志;撤除该中断源的中断请求标志;关闭同级中断;关闭同级中断;将相应中断的入口地址送入将相应中断的入口地址送入PCPC;80C5180C51五个中断入口地址五个中断入口地址:INT0INT0:0003H0003H;T0T0:000BH000BH;INT1INT1:0013H0013H T1 T1:001BH001BH;串行口:;串行口:0023H0023H 执行中断服务程序执行中断服务程序 中断服务程序应包含以下几部分:中断服务程序应包含以下几
36、部分:保护现场保护现场 执行中断服务程序主体,完成相应操作执行中断服务程序主体,完成相应操作 恢复现场恢复现场 中断返回中断返回 在中断服务程序最后,必须安排一条中断返回指令在中断服务程序最后,必须安排一条中断返回指令RETIRETI,当,当CPUCPU执行执行RETIRETI指令后,自动完成下列操作:指令后,自动完成下列操作:恢复断点地址。恢复断点地址。开放同级中断,以便允许同级中断源请求中断。开放同级中断,以便允许同级中断源请求中断。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 四四.中断响应等待时间中断响应等待时间 若排除若排除CPUCPU正在响应同级或更高级
37、的中断情况,中断响应等待时正在响应同级或更高级的中断情况,中断响应等待时间为间为:3 38 8个机器周期个机器周期五五.中断请求的撤除中断请求的撤除 中断源发出中断请求,相应中断请求标志置中断源发出中断请求,相应中断请求标志置“1 1”。CPUCPU响响应中断后,必须清除中断请求应中断后,必须清除中断请求“1 1”标志。否则中断响应返回后,标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。将再次进入该中断,引起死循环出错。对定时对定时/计数器计数器T0T0、T1T1中断,外中断边沿触发方式,中断,外中断边沿触发方式,CPUCPU响响应中断时就用硬件自动清除了相应的中断请求标志。应中断
38、时就用硬件自动清除了相应的中断请求标志。对外中断电平触发方式,需要采取软硬结合的方法消除后对外中断电平触发方式,需要采取软硬结合的方法消除后果。果。对串行口中断,用户应在串行中断服务程序中用软件清除对串行口中断,用户应在串行中断服务程序中用软件清除TITI或或RIRI。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用六六.中断优先控制和中断嵌套中断优先控制和中断嵌套 中断优先控制中断优先控制 80C5180C51中断优先控制首先根据中断优先级,此外还规定了同中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。一中断优先级之间的中断优先权。其从高到
39、低的顺序其从高到低的顺序为:为:INT0INT0、INT1INT1、T0T0、T1T1、串行口。、串行口。中断优先级是可编程的中断优先级是可编程的,而,而中断优先权是固定的中断优先权是固定的,不能设,不能设置,仅用于同级中断源同时请求中断时的优先次序。置,仅用于同级中断源同时请求中断时的优先次序。80C5180C51中断优先控制的基本原则:中断优先控制的基本原则:高优先级中断可以中断正在响应的低优先级中断,反之则高优先级中断可以中断正在响应的低优先级中断,反之则不能。不能。同优先级中断不能互相中断。同优先级中断不能互相中断。同一中断优先级中,若有多个中断源同时请求中断,同一中断优先级中,若有多
40、个中断源同时请求中断,CPUCPU将先响应优先权高的中断,后响应优先权低的中断。将先响应优先权高的中断,后响应优先权低的中断。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 中断嵌套中断嵌套 当当CPUCPU正在执行某个中断服务程序时,如果发生更高一正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,级的中断源请求中断,CPUCPU可以可以“中断中断”正在执行的低优先级正在执行的低优先级中断中断,转而响应更高一级的中断,这就是中断嵌套。转而响应更高一级的中断,这就是中断嵌套。中断嵌套只能
41、高优先级中断嵌套只能高优先级“中断中断”低优先级,低优先级不低优先级,低优先级不能能“中断中断”高优先级,同一优先级也不能相互高优先级,同一优先级也不能相互“中断中断”。中断嵌套结构类似与中断嵌套结构类似与调用子程序嵌套,调用子程序嵌套,不同不同的是的是:子程序嵌套是在程序子程序嵌套是在程序中事先按排好的;中断中事先按排好的;中断嵌套是随机发生的。嵌套是随机发生的。子程序嵌套无次序限子程序嵌套无次序限制,中断嵌套只允许高制,中断嵌套只允许高优先级优先级“中断中断”低优先低优先级。级。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用七七.中断系统的应用中断系统的应用 中断
42、初始化中断初始化 设置堆栈指针设置堆栈指针SPSP 定义中断优先级定义中断优先级 定义外中断触发方式定义外中断触发方式 开放中断开放中断 安排好等待中断或中断发生前主程序应完成的操作内容。安排好等待中断或中断发生前主程序应完成的操作内容。中断服务主程序中断服务主程序 中断服务子程序内容要求:中断服务子程序内容要求:在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。根据需要保护现场。根据需要保护现场。中断源请求中断服务要求的操作。中断源请求中断服务要求的操作。恢复现场。与保护现场相对应,注意先进后出、后进先出操
43、作原则。恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。中断返回,最后一条指令必须是中断返回,最后一条指令必须是RETIRETI。项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用【例例】出租车计价器计程方法是车轮每运转一出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(圈产生一个负脉冲,从外中断(P3.2P3.2)引脚)引脚输入,行驶里程为轮胎周长输入,行驶里程为轮胎周长运转圈数,设运转圈数,设轮胎周长为轮胎周长为2m2m,试实时计算出租车行驶里程,试实时计算出租车行驶里程(单位米),数据存(单位米),数据存32H32H、31H31H、30H30
44、H。中断系统应用举例中断系统应用举例解:编程如下:解:编程如下:ORGORG 0000H 0000H;复位地址复位地址 LJMPLJMP STAT STAT;转初始化转初始化 ORGORG 0003H 0003H;中断入口地址中断入口地址 LJMPLJMP INT INT;转中断服务程序转中断服务程序项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 ORG 0100HORG 0100H;初始化程序首地址初始化程序首地址STAT:MOV SP,#60HSTAT:MOV SP,#60H;置堆栈指针置堆栈指针 SETB ITOSETB ITO;置边沿触发方式置边沿触发方式 M
45、OV IP,#01HMOV IP,#01H;置高优先级置高优先级 MOV IE,#81HMOV IE,#81H;开中开中 MOV 30H,#0MOV 30H,#0;里程计数器清里程计数器清0 0 MOV 31H,#0 MOV 31H,#0;MOV 32H,#0 MOV 32H,#0;LJMP MAIN LJMP MAIN;转主程序转主程序,并等待中断并等待中断 ORG 0200HORG 0200H;中断服务子程序首地址中断服务子程序首地址INT:PUSH AccINT:PUSH Acc;保护现场保护现场 PUSH PSWPUSH PSW;MOV A,30H MOV A,30H;读低读低8 8位
46、计数器位计数器 ADD A,#2ADD A,#2;低低8 8位计数器加位计数器加2m2m MOV 30H,A MOV 30H,A;回存回存 CLR ACLR A;ADDC A,31H ADDC A,31H;中中8 8位计数器加进位位计数器加进位 MOV 31H,AMOV 31H,A;回存回存 CLR ACLR A;ADDC A,32H ADDC A,32H;高高8 8位计数器加进位位计数器加进位 MOV 32H,AMOV 32H,A;回存回存 POP PSWPOP PSW;恢复现场恢复现场 POP Acc POP Acc;RETI RETI;中断返回中断返回项目四项目四 中断系统与定时器中断系
47、统与定时器/计数器的应用计数器的应用【例例】现有现有5 5个外中断源个外中断源EX1EX1、EX20EX20、EX21EX21、EX22EX22和和EX23EX23,高电平时表示请求中断,要求执行相应中断,高电平时表示请求中断,要求执行相应中断服务程序,试编制程序。服务程序,试编制程序。解:解:ORGORG0000H0000H;复位地址复位地址LJMPLJMP MAINMAIN;转主程序转主程序ORGORG0003H0003H;中断入口地址中断入口地址LJMPLJMP PINT0PINT0;转中断服务程序转中断服务程序ORGORG0013H0013H;中断入口地址中断入口地址LJMPLJMP
48、PINT1PINT1;转中断服务程序转中断服务程序项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 ORGORG0100H0100H ;主程序首地址主程序首地址MAIN:MOVMAIN:MOVSP,#60HSP,#60H;置堆栈指针置堆栈指针 ORLORLTCON,#05HTCON,#05H;置置INT0INT0、INT1INT1为边沿触发方式为边沿触发方式 SETBSETBPX0 PX0 ;置为高优先级置为高优先级 MOVMOVIE,#0FFHIE,#0FFH;全部开中全部开中 ;主程序内容主程序内容 ORG 1000HORG 1000H;中断服务程序首地址中断服务程
49、序首地址 PINT0:PUSHPINT0:PUSHAccAcc;中断中断,保护现场保护现场 LCALL WORK1LCALL WORK1;调用调用EX1EX1服务子程序服务子程序 POPPOPAccAcc;恢复现场恢复现场 RETIRETI;中断返回中断返回 ORGORG 2000H 2000H ;中断服务程序首地址中断服务程序首地址PINT1:CLRPINT1:CLR EA EA ;CPU;CPU禁中禁中 PUSHPUSH Acc Acc ;中断保护现场中断保护现场 PUSHPUSH DPH DPH ;PUSH PUSH DPL DPL ;SETB SETB EA EA ;CPU;CPU开中
50、开中项目四项目四 中断系统与定时器中断系统与定时器/计数器的应用计数器的应用 JB P1.0,JB P1.0,LWK20LWK20;P1.0=1,EX20;P1.0=1,EX20请求中断请求中断 JB P1.1,JB P1.1,LWK21LWK21;P1.1=1,EX21;P1.1=1,EX21请求中断请求中断 JB P1.2,JB P1.2,LWK22LWK22;P1.2=1,EX22;P1.2=1,EX22请求中断请求中断 LCALL WORK23 LCALL WORK23 ;P1.3=1,;P1.3=1,调用调用EX23EX23服务子服务子LRET:LRET:CLR CLR EA EA;