




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第3章章 MCS-51单片机的内部资源及应用单片机的内部资源及应用主要内容:主要内容:MCS-51单片机内部各器件的具体结构、组成原理、单片机内部各器件的具体结构、组成原理、工作方式的设置及典型应用,为读者后续学习单片工作方式的设置及典型应用,为读者后续学习单片机应用系统设计、充分利用单片机内部资源解决工机应用系统设计、充分利用单片机内部资源解决工程实际问题奠定基础。程实际问题奠定基础。重重 点:点:单片机内部各器件工作方式的设置及灵活应用。单片机内部各器件工作方式的设置及灵活应用。难难 点:点:中断系统和定时器中断系统和定时器/计数器的应用。计数器的应用。 2第第3章章 MCS-51单片
2、机的内部资源及应用单片机的内部资源及应用3.1 MCS-51单片机的并行单片机的并行I/O口口3.2 MCS-51单片机的中断系统单片机的中断系统 3.3 MCS-51单片机的定时器单片机的定时器/计数器计数器3.4 MCS-51 MCS-51 单片机的串行通信单片机的串行通信33.1 MCS-51单片机的并行单片机的并行I/O口口3.1.1 MCS-513.1.1 MCS-51内部并行内部并行I/OI/O口口 8051有有4个个8位并行位并行I/O口,分别命名为口,分别命名为P0, P1, P2和和P3口。口。1P0口口 P0口为双向三态输入口为双向三态输入/输出口,输出口, P0口既可作为
3、地址口既可作为地址/数据总线口,数据总线口,又可作为通用又可作为通用I/O口,可驱动口,可驱动8个个TTL输入。在访问外部存储器时,输入。在访问外部存储器时,P0口作地址口作地址/数据总线存储器时。数据总线存储器时。P0口作地址口作地址/数据总线复用口,数据总线复用口,是一个真正的双向口,并分时送是一个真正的双向口,并分时送出地址的低出地址的低8位和送出(或接收)位和送出(或接收)相应存储单元的数据。相应存储单元的数据。作通用作通用I/O口时,口时,P0口只是一个准双向口只是一个准双向口,需要在外部引脚处外接上拉口,需要在外部引脚处外接上拉电阻。电阻。 P0口的位结构如右图所口的位结构如右图所
4、示。示。42 2P2P2口口 P2口常用做口常用做外部存储器的高外部存储器的高8位地位地址址口。当不用做地址口时,口。当不用做地址口时,P2口也可口也可作为通用作为通用I/O口,这时它也是一个准双口,这时它也是一个准双向向I/O口。口。不必外接上拉电阻不必外接上拉电阻就可以驱就可以驱动任何动任何MOS驱动电路,且只能驱动驱动电路,且只能驱动4个个TTL输入。输入。P2口的位结构如右图所示。口的位结构如右图所示。3 3P1P1口口 P1口常用做通用口常用做通用I/O口,它也是口,它也是一个标准的准双向一个标准的准双向I/O口,口,不必外接上不必外接上拉电阻拉电阻就可以驱动任何就可以驱动任何MOS
5、驱动电路,驱动电路,且只能驱动且只能驱动4个个TTL输入。输入。P1口的位结口的位结构如右图所示。构如右图所示。54 4P3P3口口 P3口是一个双功能口,第口是一个双功能口,第一功能与一功能与P1口一样可用做通用口一样可用做通用I/O口,也是一个准双向口,也是一个准双向I/O口,口,不必外接上拉电阻,不必外接上拉电阻,能驱动能驱动4个个TTL输入。另外还具有输入。另外还具有第二功能第二功能。P3口工作在第二功能时各管脚定口工作在第二功能时各管脚定义如下表所示。义如下表所示。 P3口的位结构图口的位结构图如右图所示。如右图所示。 63.1.2 MCS-513.1.2 MCS-51内部并行内部并
6、行I/OI/O口的应用口的应用 MCS-51I/OMCS-51I/O端口的操作方式:端口的操作方式:(1 1)输出数据方式:)输出数据方式:CPU通过一条数据传送指令就可以把输通过一条数据传送指令就可以把输出数据写入出数据写入P0P3的端口锁存器,然后通过输出驱动器送的端口锁存器,然后通过输出驱动器送到端口引脚线。例如,下面的指令均可在到端口引脚线。例如,下面的指令均可在P0口输出数据。口输出数据。 MOV P0, AP0 = a; ANL P0, #data ORL P0, A(2 2)读端口数据方式:)读端口数据方式: CPU读入的这个数据并非端口引脚线读入的这个数据并非端口引脚线上的数据
7、。读端口数据可以直接读端口。例如,下面的指上的数据。读端口数据可以直接读端口。例如,下面的指令均可以从令均可以从P1口输入数据。口输入数据。 MOV A, P1a = P1; MOV 20H, P1 MOV R0, P1 MOV R0, P17(3 3)读端口引脚方式:)读端口引脚方式:读端口引脚方式可以从端口引脚上读入信读端口引脚方式可以从端口引脚上读入信息。在这种方式下,息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁首先必须使欲读端口引脚所对应的锁存器置存器置1,然后才能读端口引脚。因此,用户在读引脚时必须先,然后才能读端口引脚。因此,用户在读引脚时必须先置位锁存器后读,连续使用
8、两条指令。例如,下面的程序可以置位锁存器后读,连续使用两条指令。例如,下面的程序可以读读P1引脚上的低引脚上的低4位信号。位信号。 MOV P1, #0FH ; 置位置位P1引脚的低引脚的低4位锁存器位锁存器 MOV A, P1 ; 读读P1引脚上的低引脚上的低4位信号送累加器位信号送累加器A8 在在I/O口直接用做输入口直接用做输入/输出时,输出时,CPU既可以把它们看做数据口,也可以既可以把它们看做数据口,也可以看做状态口,这是由用户决定的。看做状态口,这是由用户决定的。 例题例题11要求将两个要求将两个BCD拨码开关的数字和,在拨码开关的数字和,在LED数码管上显示出来。数码管上显示出来
9、。(用(用CD4511驱动驱动LED)(开关闭合为)(开关闭合为1,断开为,断开为0) 解:解:CD4511是是BCD锁存锁存段码译码段码译码共阴共阴LED驱动集成电路,其引脚如右图驱动集成电路,其引脚如右图所示,各引脚功能如下:所示,各引脚功能如下: VCC:接正电源;接正电源; Vss:接地;接地; A, B, C, D:BCD码输入脚(码输入脚(A为最低位,为最低位,D为最高位);为最高位); QaQg:段码输出脚,高电平有效,最大可输出段码输出脚,高电平有效,最大可输出25mA电流;电流; EI:熄灭,接低电平,则熄灭,接低电平,则QaQg全部输出低电平;全部输出低电平; LC:点亮测
10、试,接低电平,则点亮测试,接低电平,则QaQg全部输出高电平;全部输出高电平; LE:锁存允许,接高电平锁存,则输出不会随锁存允许,接高电平锁存,则输出不会随BCD码输入改变。码输入改变。1 1I/OI/O口直接用于输入口直接用于输入/ /输出输出 9硬件电路设计:硬件电路设计:BCD拨码开关为拨码开关为4位,两个位,两个BCD拨码开关分别接拨码开关分别接至至P3口的高四位和低四位(注意:应连接上拉电阻),由口的高四位和低四位(注意:应连接上拉电阻),由P1口口的高四位和低四位通过两片的高四位和低四位通过两片CD4511分别扩展两位分别扩展两位LED。硬件电。硬件电路如右图所示。路如右图所示。
11、 软件设计思想:软件设计思想:读读P3口口引脚,得到输入数据,引脚,得到输入数据,将数据分成将数据分成2个个4位位BCD码,求码,求BCD码和,输出码和,输出到到P1口,通过口,通过CD4511驱驱动动LED显示。显示。10112 2I/OI/O口扩展外部存储器口扩展外部存储器 数据总线数据总线 宽度为宽度为8 8位,由位,由P0P0口提供。口提供。地址总线地址总线宽度为宽度为1616位,低位,低8 8位位A7-A0A7-A0由由P0P0口提供,高口提供,高8 8位位A15-A8A15-A8由由P2P2口提供。口提供。P0P0口数据地址分时复用,所以口数据地址分时复用,所以P0P0口输出的低口
12、输出的低8 8位地址必须用地址锁位地址必须用地址锁存器锁存存器锁存( (一般选用一般选用8D8D锁存器锁存器74LS373)74LS373)。控制总线控制总线: :RD RD 读控制读控制WR WR 写控制写控制PSEN PSEN 片外片外ROMROM选通选通ALE ALE 地址锁存控制地址锁存控制EA EA 片外片外ROMROM选择选择12 片外ROM或EEPROM的扩展(地址范围0000HFFFFH)13 片外RAM的扩展(地址范围0000H7FFFH)143.2 MCS-51单片机的中断系统单片机的中断系统 计算机通过外部设备(也称为外设、输入计算机通过外部设备(也称为外设、输入/输出设
13、备或输出设备或I/O设备)设备)与外界联系。计算机与外设之间不是直接相连的,而是通过不同的接口与外界联系。计算机与外设之间不是直接相连的,而是通过不同的接口电路来达到彼此间的信息传送的目的。电路来达到彼此间的信息传送的目的。计算机与外设之间交换信息的方式:计算机与外设之间交换信息的方式: (1)无条件传送方式:)无条件传送方式:外设对计算机来说总是准备好的。外设对计算机来说总是准备好的。 (2)查询传送方式:)查询传送方式:传送前计算机先查询外设的状态,若已经准备好传送前计算机先查询外设的状态,若已经准备好就传送,否则就继续查询就传送,否则就继续查询/等待。等待。 (3)中断传送方式:)中断传
14、送方式:外设通过申请中断的方式与计算机进行数据传送。外设通过申请中断的方式与计算机进行数据传送。 (4)直接存储器存取方式)直接存储器存取方式(DMA):传送数据的双方直接通过总线传送传送数据的双方直接通过总线传送数据数据, 不经不经CPU中转。中转。153.2 MCS-51单片机的中断系统单片机的中断系统3.2.1 3.2.1 中断的基本概念中断的基本概念3.2.2 MCS-513.2.2 MCS-51的中断系统的中断系统3.2.3 MCS-513.2.3 MCS-51中断系统的编程中断系统的编程3.2.4 MCS-513.2.4 MCS-51扩展外部中断请求输入口扩展外部中断请求输入口16
15、3.2.1 3.2.1 中断的基本概念中断的基本概念 1中断的定义中断的定义 所谓所谓“中断中断”,是指,是指CPU执行正常程序时,系统中出现特执行正常程序时,系统中出现特殊请求,殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。自动返回原程序的过程。作用:作用:采用中断技术可以提高采用中断技术可以提高CPU效率、解决速度矛盾、实现效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可并行工作、分时
16、操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(使多项任务共享一个资源(CPU)。)。 中断与子程序的最主要区别:中断与子程序的最主要区别:子程序是预先安排好的,中断是随子程序是预先安排好的,中断是随机发生的。机发生的。中断涉及的几个环节:中断涉及的几个环节:中断源、中断源、 中断申请、开放中断、保护现中断申请、开放中断、保护现场、中断服务、恢复现场、中断返回。场、中断服务、恢复现场、中断返回。172. 中断源中断源 中断源是指引起中断的设备或事件,或发出中断请求的源头。中断源是指引起中断的设备或事件,或发出中断请求的源头。 3. 中断的分类中断的分类 中断按功能通常可分为可
17、屏蔽中断、非屏蔽中断和软件中断中断按功能通常可分为可屏蔽中断、非屏蔽中断和软件中断三类。三类。 可屏蔽中断可屏蔽中断是指是指CPU可以通过指令来允许或屏蔽中断的请求。可以通过指令来允许或屏蔽中断的请求。 非屏蔽中断非屏蔽中断是指是指CPU对中断请求是不可屏蔽的,一旦出现,对中断请求是不可屏蔽的,一旦出现,CPU必须响应。必须响应。 软件中断软件中断则是指通过相应的中断指令使则是指通过相应的中断指令使CPU响应中断。响应中断。4. 中断优先权与中断嵌套中断优先权与中断嵌套 中断优先级中断优先级(也称为中断优先权):(也称为中断优先权):给每个中断源指定中断给每个中断源指定中断响应的优先级别,响应
18、的优先级别, CPU按中断源的优先级高低顺序响应各中断源按中断源的优先级高低顺序响应各中断源发出的中断请求。发出的中断请求。18中断嵌套:中断嵌套:在某一瞬间,在某一瞬间,CPU因响应某一中断源的中断请求而因响应某一中断源的中断请求而正在执行它的中断服务程序时,若又有一级别高的中断源向正在执行它的中断服务程序时,若又有一级别高的中断源向CPU发出中断请求,且发出中断请求,且CPU的中断是开放的,的中断是开放的,CPU可以把正在可以把正在执行的中断服务程序暂停下来,转而响应和处理优先权更高的执行的中断服务程序暂停下来,转而响应和处理优先权更高的中断源的中断请求,等处理完后再转回来,继续执行原来的
19、中中断源的中断请求,等处理完后再转回来,继续执行原来的中断服务程序,这就是中断嵌套。断服务程序,这就是中断嵌套。 中断嵌套的过程和子程序嵌套过程类似,子程序的返回指中断嵌套的过程和子程序嵌套过程类似,子程序的返回指令是令是RET,而中断服务程序的返回指令是,而中断服务程序的返回指令是RETI。5. 5. 中断响应及处理过程中断响应及处理过程 保护断点保护断点 寻找中断源寻找中断源 中断处理中断处理 中断返回中断返回 保护断点和寻找中断源都是由硬件保护断点和寻找中断源都是由硬件自动自动完成的,用户不用完成的,用户不用考虑考虑。196. 中断系统的功能中断系统的功能中断系统:中断系统:能够实现中断
20、功能的硬件电路和软件程序。能够实现中断功能的硬件电路和软件程序。中断系统的功能:中断系统的功能:能够实现中断优先权排队、中断嵌套、自动能够实现中断优先权排队、中断嵌套、自动响应中断和中断返回等功能。响应中断和中断返回等功能。 MCS-51单片机的大部分中断电路都是集成在芯片内部的,单片机的大部分中断电路都是集成在芯片内部的,只有外部中断请求信号产生电路才分散在各中断源电路和接口只有外部中断请求信号产生电路才分散在各中断源电路和接口电路中。电路中。203.2.2 MCS-513.2.2 MCS-51的中断系统的中断系统 MCS-51提供了提供了5个中断源,个中断源,2个中断优先级控制,可实现个中
21、断优先级控制,可实现2个中断服务嵌套。可通过程序设置中断的允许或屏蔽,设置中个中断服务嵌套。可通过程序设置中断的允许或屏蔽,设置中断的优先级。断的优先级。1 1MCS-51MCS-51的中断源的中断源 80518051允许允许5 5个中断源:个中断源:(1 1)外部中断源(中断标志为)外部中断源(中断标志为IE0和和IE1 ) 由由 ( P3.2 )端口线引入,低电平或下降沿引起。)端口线引入,低电平或下降沿引起。 由由 ( P3.3 )端口线引入,低电平或下降沿引起。)端口线引入,低电平或下降沿引起。(2 2)内部中断源)内部中断源 (中断标志为(中断标志为TF0、TF1和和TI/RI )
22、T0T0:定时:定时/ /计数器计数器0 0中断,由中断,由T0T0回零溢出引起。回零溢出引起。 T1T1:定时:定时/ /计数器计数器1 1中断,由中断,由T1T1回零溢出引起。回零溢出引起。 TI/RITI/RI:串行:串行I/OI/O中断,完成一帧字符发送中断,完成一帧字符发送/ /接收引起。接收引起。0INT1INT218051的中断结构如下图所示。的中断结构如下图所示。 22CPU识别中断申请的依据:识别中断申请的依据: CPU在每个机器周期的在每个机器周期的S5P2期间,会自动查询各个中断申期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。请标志位,若查到某
23、标志位被置位,将启动中断机制。2 2中断控制中断控制 MCS-51单片机设置了单片机设置了4个专用寄存器用于中断控制,用个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。户通过设置其状态来管理中断系统。(1)定时器控制寄存器)定时器控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:定时器溢出中断申请标志位定时器溢出中断申请标志位(由硬件自动置位)(由硬件自动置位)。 =0:定时器未溢出;定时器未溢出; =1:定时器溢出定时器溢出(由全(由全“1”变成全变成全“0”)时由硬件自动置位时由硬件自动置位,申请中断,申请中断,中断被
24、中断被CPU响应后由硬件自动清零响应后由硬件自动清零。23TR0/TR1:定时器运行启停控制位定时器运行启停控制位(可由用户通过软件设置(可由用户通过软件设置 )。 =0:定时器停止运行;定时器停止运行; =1:定时器启动运行。定时器启动运行。IE0/IE1:外部中断申请标志位外部中断申请标志位(由硬件自动置位(由硬件自动置位 ,中断响应后,中断响应后转向中断服务程序时,由硬件自动清转向中断服务程序时,由硬件自动清0 0 )。 =0:没有外部中断申请;没有外部中断申请; =1:有外部中断申请。有外部中断申请。IT0/IT1:外部中断请求的触发方式控制位外部中断请求的触发方式控制位(可由用户通过
25、软件设(可由用户通过软件设置置 )。 =0:在在INT0/INT1端申请中断的信号低电平有效;端申请中断的信号低电平有效; =1:在在INT0/INT1端申请中断的信号负跳变有效。端申请中断的信号负跳变有效。24(2 2)串行口控制寄存器)串行口控制寄存器SCON SCON (98H98H) TI/RI:串行口发送串行口发送/接收中断申请标志位(接收中断申请标志位(由硬件自动置位,必由硬件自动置位,必须由用户在中断服务程序中用软件清须由用户在中断服务程序中用软件清0)。)。 =0:没有串行口发送没有串行口发送/接收中断申请;接收中断申请; =1:有串行口发送有串行口发送/接收中断申请。接收中断
26、申请。 SCON的高的高6位用于串行口工作方式设置和串行口发送位用于串行口工作方式设置和串行口发送/接收控接收控制。制。 SM0 SM1 SM2 REN TB8 RB8 TI RISM0 SM1 SM2 REN TB8 RB8 TI RI25(3)中断允许控制寄存器)中断允许控制寄存器IE (0A8H) EAEA ES ET1 EX1 ET0 EX0ES ET1 EX1 ET0 EX0EX0/EX1/ET1/ET0/ES 位:位:分别是分别是 / ,T0/T1,串行,串行口的中断允许控制位。口的中断允许控制位。 =0 :禁止中断;禁止中断; =1 :允许中断。允许中断。EA:总的中断允许控制位
27、(总开关):总的中断允许控制位(总开关): =0 :禁止全部中断;禁止全部中断; =1 :允许中断。允许中断。0INT1INT26(4 4)中断优先级控制寄存器)中断优先级控制寄存器IP IP (0B8H0B8H) 8051有两个中断优先级:高优先级和低优先级。每个中断源都可设置为有两个中断优先级:高优先级和低优先级。每个中断源都可设置为高或低中断优先级,以便高或低中断优先级,以便CPU对所有的中断实现两级中断嵌套。对所有的中断实现两级中断嵌套。 8051内部中断系统对各中断源的中断优先级有一个统一的规定,称为自然内部中断系统对各中断源的中断优先级有一个统一的规定,称为自然优先级(也称为系统缺
28、省优先级)。如下表所示。优先级(也称为系统缺省优先级)。如下表所示。 8051单片机的中断优先级采用了自然优先级和人工设置高、低优先级的单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略,中断处于同一级别时,就由自然优先级确定。开机时,每个中断都处策略,中断处于同一级别时,就由自然优先级确定。开机时,每个中断都处于低优先级,中断优先级可以通过程序来设定,由中断优先级寄存器于低优先级,中断优先级可以通过程序来设定,由中断优先级寄存器IP来统来统一管理。一管理。 中中 断断 源源 中中 断断 标标 志志 缺省优先级缺省优先级 外中断外中断IE0最高最高最低最低 定时器定时器T0 TF0
29、 外中断外中断IE1定时器定时器T1TF1串行口中断串行口中断TI, RI0INT1INT27(4 4)中断优先级控制寄存器)中断优先级控制寄存器IP IP (0B8H0B8H) PS PT1PS PT1 PX1 PX1 PT0 PX0PT0 PX00INT1INTPX0/PX1: / 优先级控制位:优先级控制位: =0 :属低优先级;属低优先级; =1 :属高优先级。属高优先级。PT0/PT1:T0/T1中断优先级控制位:中断优先级控制位: =0 :属低优先级;属低优先级; =1 :属高优先级。属高优先级。PS1:串行口中断优先级控制位:串行口中断优先级控制位: =0 :属低优先级;属低优先
30、级; =1 :属高优先级。属高优先级。28中断优先级处理原则:中断优先级处理原则: 对对同时发生多个中断申请时:同时发生多个中断申请时: 不同优先级的中断同时申请:先高后低不同优先级的中断同时申请:先高后低 相同优先级的中断同时申请:按序执行(自然优先级)相同优先级的中断同时申请:按序执行(自然优先级) 正处理低优先级中断又接到高级别中断:高打断低正处理低优先级中断又接到高级别中断:高打断低 正处理高优先级中断又接到低级别中断:高不理低正处理高优先级中断又接到低级别中断:高不理低293中断响应中断响应 (1 1)中断响应的条件)中断响应的条件 MCS-51单片机工作时,在每个机器周期中都会去查
31、询各个单片机工作时,在每个机器周期中都会去查询各个中断标志,如果有中断请求。必须满足下列条件单片机才能响中断标志,如果有中断请求。必须满足下列条件单片机才能响应中断。应中断。 相应的中断是开放的;相应的中断是开放的; 没有同级的中断或更高级别的中断正在处理;没有同级的中断或更高级别的中断正在处理; 正在执行的指令必须执行完最后正在执行的指令必须执行完最后 1个机器周期;个机器周期; 若正在执行若正在执行RETI,或正在访问,或正在访问IE或或IP寄存器寄存器,则必须执行完则必须执行完当前指令的下一条指令后当前指令的下一条指令后方能响应中断。方能响应中断。30(2)中断响应的过程)中断响应的过程
32、 中断过程包括中断请求、中断响应、中断服务、中断返回中断过程包括中断请求、中断响应、中断服务、中断返回四个阶段。四个阶段。中断请求:中断请求:中断源将相应请求中断的标志位置中断源将相应请求中断的标志位置 “1”,表示发出,表示发出请求,并由请求,并由CPU 查询。查询。中断响应:中断响应:在中断允许条件下响应中断。断点入栈在中断允许条件下响应中断。断点入栈撤除中断撤除中断标志标志关闭低、同级中断允许关闭低、同级中断允许中断入口地址送中断入口地址送PC。 这些工作这些工作都是由硬件自动完成的。都是由硬件自动完成的。中断服务:中断服务:根据入口地址转中断服务程序,包含保护现场、执根据入口地址转中断
33、服务程序,包含保护现场、执行中断主体、恢复现场。行中断主体、恢复现场。中断返回:中断返回:执行中断返回执行中断返回RETI指令指令断点出栈送断点出栈送PC 开放中开放中断允许断允许返回原程序。返回原程序。31中断服务程序入口地址:中断服务程序入口地址: 中断响应的主要内容就是由硬件中断响应的主要内容就是由硬件自动自动生成一条长调用指令生成一条长调用指令(LCALL addr16),),CPU执行这条长调用指令便响应中断,转执行这条长调用指令便响应中断,转入相应的中断服务程序。这里的入相应的中断服务程序。这里的addr16就是程序存储器中相应的就是程序存储器中相应的中断服务程序的入口地址,中断服
34、务程序的入口地址,MCS-51的的5个中断源的中断服务程序个中断源的中断服务程序入口地址是固定的,如下表所示。入口地址是固定的,如下表所示。0023H串行口中断串行口中断001BH定时器定时器/计数器计数器T1中断中断0013H 外中断外中断000BH定时器定时器/计数器计数器T0中断中断0003H 外中断外中断入口地址入口地址中断源中断源1INT0INTC51中的中断号中的中断号1024332 8051的的5个中断源的中断服务入口地址之间相差个中断源的中断服务入口地址之间相差8个单元。这个单元。这8个存储单元用来存储中断服务程序一般来说是不够的。用户常个存储单元用来存储中断服务程序一般来说是
35、不够的。用户常在中断服务程序地址入口处放一条三字节的长转移指令。一般地,在中断服务程序地址入口处放一条三字节的长转移指令。一般地,主程序从主程序从0030H单元以后开始存放。例如:单元以后开始存放。例如:ORG 0000HLJMP START ; 转入主程序,转入主程序,START为主程序地址标号为主程序地址标号ORG 0003HLJMP INT0 ; 转外中断中断服务程序转外中断中断服务程序ORG 000BHLJMP T0 ; 转定时器转定时器T0中断服务程序中断服务程序ORG 0030HSTART: ; 主程序开始主程序开始(3)中断响应时间)中断响应时间 正常中断响应时间至少为正常中断响
36、应时间至少为38个机器周期,如果有同级或高个机器周期,如果有同级或高级中断服务,将延长中断响应时间。级中断服务,将延长中断响应时间。334中断请求的撤除中断请求的撤除 为了避免中断请求标志没有及时撤除而造成的重复响应同一为了避免中断请求标志没有及时撤除而造成的重复响应同一中断请求的错误,中断请求的错误, CPU在相应中断时必须及时将其中断请求标在相应中断时必须及时将其中断请求标志位撤除。志位撤除。 8051的的5个中断源的中断请求撤除的方法是不同的。个中断源的中断请求撤除的方法是不同的。(1 1)定时器溢出中断请求的撤除)定时器溢出中断请求的撤除 定时器溢出中断得到响应后,其中断请求的标志位定
37、时器溢出中断得到响应后,其中断请求的标志位TF0和和TF1由硬件由硬件自动自动复位。复位。(2 2)串行口中断请求的撤除)串行口中断请求的撤除 串行口中断得到响应后,其中断请求的标志位串行口中断得到响应后,其中断请求的标志位TI和和RI不能由不能由硬件自动复位,必须由用户在中断服务程序的适当位置通过如下硬件自动复位,必须由用户在中断服务程序的适当位置通过如下指令指令将它们撤除。将它们撤除。 CLR TI ; 撤除发送中断请求标志(撤除发送中断请求标志( TI = 0;);) CLR RI ; 撤除接收中断请求标志(撤除接收中断请求标志( RI = 0;);) 或采用字节型指令:或采用字节型指令
38、:ANL SCON, #0FCH34(3)外部中断请求的撤除)外部中断请求的撤除 外部中断请求的两种触发方式(电平触发和负边沿触发)的外部中断请求的两种触发方式(电平触发和负边沿触发)的中断请求撤除的方法是不同的。中断请求撤除的方法是不同的。负边沿触发方式:负边沿触发方式:CPU在前一机器周期采到在前一机器周期采到 / 引脚为高引脚为高,后后一机器周期采到为低才认为是一次中断请求,即依靠一机器周期采到为低才认为是一次中断请求,即依靠CPU两次检两次检测测 (或(或 )上的负边沿触发电平状态而置位外部中断标志位)上的负边沿触发电平状态而置位外部中断标志位IE0或或IE1 。CPU 可记忆申请、可
39、由硬件可记忆申请、可由硬件自动自动撤除中断申请。撤除中断申请。电平触发方式:电平触发方式: / / 引脚上的低电平须持续到中断发生。若引脚上的低电平须持续到中断发生。若中断返回前仍未及时撤除低电平,虽然中断返回前仍未及时撤除低电平,虽然CPU在响应中断时能由硬在响应中断时能由硬件自动复位件自动复位IE0或或IE1,但引脚上的低电平仍会使已经复位的,但引脚上的低电平仍会使已经复位的IE0或或IE1再次置位,产生重复中断的错误。再次置位,产生重复中断的错误。 0INT0INT1INT1INT0INT1INT35 电平触发型外部中断请求的撤除必须由外部硬件使(或)上的低电平电平触发型外部中断请求的撤
40、除必须由外部硬件使(或)上的低电平随着其中断被响应而变为高电平。其中断请求撤除的电路如下图所示。随着其中断被响应而变为高电平。其中断请求撤除的电路如下图所示。 外来的低电平外来的低电平反相反相CP端产生上跳沿端产生上跳沿 D端的端的“0”输出到输出到Q端端申请申请中断,中断,中断服务返回前对中断服务返回前对P1.0P1.0送送“0 0” 令令Q Q端变为端变为“1 1”(SDSD位置位置1 1端)。端)。 指令如下:指令如下: ANL P1,#0FEH (或(或CLR P1.0 ) ;令;令Q端置端置“1” ORL P1, #01H ( SETB P1.0 ) ;令;令SD端置端置“1”,以免
41、下次以免下次 中断来时中断来时Q端不能变端不能变“0”363.2.3 MCS-513.2.3 MCS-51中断系统的编程中断系统的编程 (1 1)中断初始化设置:)中断初始化设置:开相应中断允许(开相应中断允许( IE )、根据需要选择)、根据需要选择优先级(优先级( IP )和选择外中断触发方式()和选择外中断触发方式(TCON),设置计数器、),设置计数器、串行口的有关参数。串行口的有关参数。(2 2)中断服务程序的编写:)中断服务程序的编写:中断入口、保护现场、关中断、中中断入口、保护现场、关中断、中断服务主体程序、恢复现场、开中断、设置计数器、串行口的有断服务主体程序、恢复现场、开中断
42、、设置计数器、串行口的有关参数、中断返回指令关参数、中断返回指令RETI 。 例题例题2 2 设设8051外部中断源接引脚外部中断源接引脚 ,中断触发方式为电平触,中断触发方式为电平触发,试编制发,试编制8051中断系统的初始化程序。中断系统的初始化程序。解:解:采用位操作指令实现(也可以采用传送指令和逻辑指令)。采用位操作指令实现(也可以采用传送指令和逻辑指令)。 SETB EA ; 开总中断开总中断EA = 1; SETB EX0 ; 开中断开中断 EX0 = 1; SETB PX0 ; 设置为高优先级设置为高优先级 PX0 = 1; CLR IT0 ; 设置为电平触发方式设置为电平触发方
43、式 IT0 = 1;0INT37 例题例题3 3 通过通过外部中断控制外部中断控制8盏灯循环点亮。盏灯循环点亮。解:解:通过通过P1口扩展八盏灯,在口扩展八盏灯,在 引脚接一个按钮开关到地,引脚接一个按钮开关到地,每按一下按钮就申请一次中断,点亮一盏灯,中断服务则是:依每按一下按钮就申请一次中断,点亮一盏灯,中断服务则是:依次点亮次点亮8盏灯中的一盏。采用边沿触发。盏灯中的一盏。采用边沿触发。1INT38程序如下:程序如下: ORG 0000H LJMP MAIN ORG 0013H ; 中断服务程序入口地址中断服务程序入口地址 LJMP IN11 ORG 0030H MAIN:MOV SP
44、, #60H SETB EA ; 开总中断允许开总中断允许“开关开关” SETB EX1 ; 开分中断允许开分中断允许“开关开关” CLR PX1 ; 低低 优先级(也可不要此句)优先级(也可不要此句) SETB IT1 ; 边沿触发边沿触发 MOV A , #01H ; 给累加器给累加器A赋初值赋初值 SJMP $ ; 原地等待中断申请原地等待中断申请 IN11:MOV P1,A ; 输出到输出到P1口口 RL A ; 左环移一次左环移一次 RETI ; 中断返回中断返回 END#include reg51.hunsigned char a;void main() EA = 1; / 开总中
45、断允许开总中断允许“开关开关” EX1 = 1; / 开外部中断开外部中断 1 允许允许“开关开关” PX1 = 0; / 低优先级(也可不要此句)低优先级(也可不要此句) IT1 = 1; / 下降沿触发下降沿触发 a = 1; / 给变量给变量 a 赋初值赋初值 while(1); / 原地等待中断申请原地等待中断申请void int1() interrupt 2 P1 = a; a = a 1; if(a=0) a = 1;393.2.4 MCS-51扩展外部中断请求输入口扩展外部中断请求输入口 8051单片机只提供了两个外部中断请求输入端,如果需要单片机只提供了两个外部中断请求输入端,
46、如果需要使用多于两个的中断源,就必须扩展外部中断请求输入口使用多于两个的中断源,就必须扩展外部中断请求输入口。1 1定时器定时器/ /计数器用于扩展外部中断请求输入口计数器用于扩展外部中断请求输入口 8051单片机有两个定时器单片机有两个定时器/计数器,它们作为计数器使用时,计数器,它们作为计数器使用时,计数输入端计数输入端T0(或(或T1)发生负跳变将使计数器加)发生负跳变将使计数器加1,利用此特,利用此特性,适当设置计数初值,就可以把计数输入端性,适当设置计数初值,就可以把计数输入端T0(或(或T1)作为)作为外部中断请求输入口。其特点是以占用内部定时中断为代价的。外部中断请求输入口。其特
47、点是以占用内部定时中断为代价的。中断服务程序的入口地址仍然为中断服务程序的入口地址仍然为000BH或或001BH。402 2查询方式扩展外部中断请求输入口查询方式扩展外部中断请求输入口 把多个中断源通过硬件(如与非门)引入外部中断输入端,把多个中断源通过硬件(如与非门)引入外部中断输入端,同时又连到某个同时又连到某个I/O口。当有中断源申请中断时,在中断服务程口。当有中断源申请中断时,在中断服务程序中通过软件查询可确定哪一个是正在申请的中断源,其查询的序中通过软件查询可确定哪一个是正在申请的中断源,其查询的次序可由中断优先级决定。其特点是中断响应速度较慢。次序可由中断优先级决定。其特点是中断响
48、应速度较慢。 适用于适用于外部中断源较多的场合。外部中断源较多的场合。3 3使用专用芯片扩展外部中断请求输入口使用专用芯片扩展外部中断请求输入口 当外部中断源较多,同时又要求中断响应速度很高时,查询当外部中断源较多,同时又要求中断响应速度很高时,查询方式扩展外部中断请求输入口的方法很难满足要求。这时可以使方式扩展外部中断请求输入口的方法很难满足要求。这时可以使用专用接口芯片进行外部中断请求输入口的扩展。用专用接口芯片进行外部中断请求输入口的扩展。74LS148优先优先级编码器和可编程中断控制器级编码器和可编程中断控制器8259均可以实现该任务。均可以实现该任务。 41对流水灯实验的改进对流水灯
49、实验的改进void delay(void)void delay(void) unsigned int i, j, k, l;unsigned int i, j, k, l; for(i = 0; i 27000; i+)for(i = 0; i 27000; i+) j+; k+; l+; ; j+; k+; l+; ; #include #include void main (void)void main (void) unsigned char i,c4 = 0 xef, 0 xdf, 0 xbf, 0 x7f;unsigned char i,c4 = 0 xef, 0 xdf, 0 xb
50、f, 0 x7f;i = 0;i = 0;while(1)while(1) P3 = ci & 3; P3 = ci & 3; i+; i+; delay();delay(); 42 不占用硬件资源,但占用不占用硬件资源,但占用CPU时间,降低时间,降低CPU效率。效率。 如采用如采用555电路,但定时值与定时范围不能由软件修电路,但定时值与定时范围不能由软件修改,即不可编程。改,即不可编程。 采用可编程计时器,其定时范围很容易用软件控制。采用可编程计时器,其定时范围很容易用软件控制。433.3.1 定时器定时器/计数器计数器3.3.2 定时器定时器/计数器的工作方式计数器的工
51、作方式3.3.3 定时器定时器/计数器的应用计数器的应用3.3 MCS-51单片机的定时器单片机的定时器/计数器计数器 44 8051内部有两个内部有两个16位二进制计数器,它们有两个功能位二进制计数器,它们有两个功能 -计数计数 和和 定时定时(1 1)计数)计数:对对 外外 部事件(脉冲)的个数进行计数。部事件(脉冲)的个数进行计数。(2 2)定时:)定时:对对 内内 部事件(脉冲)的个数进行计数。部事件(脉冲)的个数进行计数。定时定时/计数器计数器 T0 和和 T145 两个两个16位可编程的定时器位可编程的定时器/计数器,它们均是二进制计数器,它们均是二进制加法计数器加法计数器,当计数
52、器计满回零时能自动产生溢出中,当计数器计满回零时能自动产生溢出中断请求。断请求。l 计数器:计数器:对引脚对引脚T0(P 3.4 )和)和T1(P3.5)输入的外部脉冲)输入的外部脉冲信号的下降沿计数,计数的最高频率为信号的下降沿计数,计数的最高频率为OSC的的1/24。l 定时器:定时器:对对OSC的的12分频输出进行计数。分频输出进行计数。 2MCS-51内部定时器内部定时器/计数器计数器 46l 工作方式寄存器工作方式寄存器 TMODl 控制寄存器控制寄存器 TCONl T0计数单元计数单元 TH0 和和 TL0l T1计数单元计数单元 TH1 和和 TL147(2)控制寄存器)控制寄存
53、器TCON (88H) l 标志位和控制位均为标志位和控制位均为1有效。有效。l 标志位由硬件置标志位由硬件置1,响应中断时由硬件自动清零。,响应中断时由硬件自动清零。l IE0/IE1和和IT0/IT1:用于管理外部中断。:用于管理外部中断。TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0T1/T0计数溢出标志位计数溢出标志位T1/T0启动停止控制位启动停止控制位48 M1, M0:工作方式选择位工作方式选择位 l 00:13位定时器位定时器/计数器计数器l 01:16位定时器位定时器/计数器计数器l 10:可自动重装的可自动重装的8位定时器位定时器/计数器计数器l 11:T0
54、 分为分为2个个8位定时器位定时器/计数器计数器, 仅适用于仅适用于T0 (3 3)工作方式寄存器)工作方式寄存器TMOD (89H) T1T0GATEC/TM1M0GATEC/TM1M0C/T:定时方式定时方式/计数方式选择位计数方式选择位l 1: 计数器工作方式,对来自计数器工作方式,对来自T0/T1脚的外部脉冲计数脚的外部脉冲计数l 0 :定时器工作方式,对机器周期脉冲数计数定时器工作方式,对机器周期脉冲数计数49l 0 :软件控制软件控制,只由,只由TCON中的启中的启/停控制位停控制位TR0/TR1控制控制 定时器定时器/计数器的启计数器的启/停。停。l 1 :硬件控制硬件控制,由外
55、部中断请求信号,由外部中断请求信号 / 和和TCON 中的启中的启/停控制位停控制位TR0/TR1组合状态控制定时器组合状态控制定时器/计数器计数器 的启的启/停。停。0INT1INTGATE:门控位门控位503.3.2 3.3.2 定时器定时器/ /计数器的工作方式计数器的工作方式 定时器定时器/计数器计数器 T0 有四种工作模式,有四种工作模式,T1 有三种工作模式有三种工作模式1方式方式0( M1M0 = 00 ,13 位定时器位定时器/计数器)计数器)2方式方式1 ( M1M0 = 01 ,16 位定时器位定时器/计数器)计数器) 由由 TH0 和和 TL0 构成构成 16 位加位加
56、1 计数器,其他特性与方式计数器,其他特性与方式 0 相同相同TH0TL0TF0TH0TL0TF0513方式方式2 (M1M0 =10,自动重装初值的,自动重装初值的 8 位定时器位定时器/计数器计数器) 16位定时器位定时器/计数器被拆成两个计数器被拆成两个8位寄存器位寄存器TH0和和TL0,CPU在对它们初始化时必须装入相同的定时器在对它们初始化时必须装入相同的定时器/计数器初值。以计数器初值。以TL0作计数器,而作计数器,而TH0作为预置寄存器。当计数满溢出时,作为预置寄存器。当计数满溢出时,TF0置置“1”,同时,同时TH0将计数初值以硬件方法自动装入将计数初值以硬件方法自动装入TL0
57、。这种工。这种工作方式很适合于那些重复计数的应用场合(如串行数据通信的作方式很适合于那些重复计数的应用场合(如串行数据通信的波特率发生器)。波特率发生器)。TH0TL0TF0524工作方式工作方式3 ( M1M0=11 , 2个个8位定时器位定时器/计数器,仅适用于计数器,仅适用于T0)TL0:8位定时器位定时器/计数器,使用计数器,使用T0原有控制资源原有控制资源TR0和和TF0,其,其功能和操作与方式功能和操作与方式0或方式或方式1完全相同。完全相同。TH0:只能作为只能作为8位定时器,借用位定时器,借用T1的控制位的控制位TR1和和TF1,只能,只能对片内机器周期脉冲计数。对片内机器周期
58、脉冲计数。 在方式在方式3模式下,定时器模式下,定时器/计数器计数器0可以构成两个定时器或者可以构成两个定时器或者一个定时器和一个计数器。一个定时器和一个计数器。 T0方式方式3下的下的T1方式方式2,因定时初值能自动恢复,用作波,因定时初值能自动恢复,用作波特率发生器更为合适。特率发生器更为合适。53 定时器定时器/计数器可按片内机器周期定时,也可对由计数器可按片内机器周期定时,也可对由T0/T1引引脚输入一个负脉冲进行加法计数。在应用时,其工作方式和工脚输入一个负脉冲进行加法计数。在应用时,其工作方式和工作过程均可通过程序设定和控制,因此,定时器作过程均可通过程序设定和控制,因此,定时器/
59、计数器在工作计数器在工作前必须先对其进行初始化,计算和设置初值。前必须先对其进行初始化,计算和设置初值。 1. 定时器定时器T0/T1 中断申请过程中断申请过程 (1)在已经开放)在已经开放T0/T1中断允许且已被启动的前提下,中断允许且已被启动的前提下,T0/T1加加1计满溢出时计满溢出时 TF0/TF1标志位自动置标志位自动置“1” ; (2)CPU 检测到检测到TCON中中TF0/TF1变变“1”后,将产生指令:后,将产生指令:LCALL 000BH/LCALL 001BH 执行中断服务程序;执行中断服务程序; (3)TF0/TF1标志位由硬件自动清标志位由硬件自动清“0”,以备下次中断
60、申请。,以备下次中断申请。3.3.3 定时器定时器/计数器的应用计数器的应用 542. 定时器定时器/计数器初始化的步骤计数器初始化的步骤 (1)写)写TMOD,设置定时器,设置定时器/计数器的工作方式;计数器的工作方式; (2)计算定时器)计算定时器/计数器的初值,写入计数器的初值,写入TH0/TH1、TL0/TL1。 (3)设置)设置IE、IP,以开放相应的中断和设定中断优先级。,以开放相应的中断和设定中断优先级。 (4)置位)置位TR0/TR1,启动计数。,启动计数。 3. 定时器定时器/计数器的定时器计数器的定时器/计数器范围计数器范围 (1 1)工作方式工作方式0 0:13位定时器位定时器/计数器方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级下学期期末英语模拟试卷测试题(带答案)
- (完整版)数学苏教版七年级下册期末质量测试试题A卷答案
- 八年级英语单项选择(50题)练习题含答案-及答案
- (完整版)数学六年级下册期末真题模拟试题(比较难)答案
- 2025年软考中级数据库系统工程师软考真题及答案
- 2025年历届中级经济师建筑专业考试真题及答案
- 二级心理咨询师考试多选题练习及答案
- 湘菜五周年活动方案策划
- 美容店里搞活动方案策划
- 有利润点的施工方案
- 产业策划投标方案(3篇)
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 家校社协同育人机制的创新构建与实践探究
- 近视管理白皮书(2025)专家共识-
- 护理学基础:会阴部擦洗
- 征收置换商铺协议书
- 2025届云南省中考道德与法治试题模拟检测试题(一模)附答案
- 中华民族共同体概论知到课后答案智慧树章节测试答案2025年春丽水学院
- 《工贸企业重大事故隐患判定标准(纺织)》知识培训
- 2023年高考真题-英语(天津卷) 含答案
- 2023阿里云原生架构白皮书
评论
0/150
提交评论