第5章MCS-51单片机的内部功能部件课件.ppt

上传人:春哥&#****71; 文档编号:12723968 上传时间:2022-04-25 格式:PPT 页数:111 大小:2.06MB
返回 下载 相关 举报
第5章MCS-51单片机的内部功能部件课件.ppt_第1页
第1页 / 共111页
第5章MCS-51单片机的内部功能部件课件.ppt_第2页
第2页 / 共111页
点击查看更多>>
资源描述

《第5章MCS-51单片机的内部功能部件课件.ppt》由会员分享,可在线阅读,更多相关《第5章MCS-51单片机的内部功能部件课件.ppt(111页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 第5章 MCS-51单片机的内部功能部件1 第第5 5章章 MCS-51MCS-51单片机的内部功能部件单片机的内部功能部件 总体要求:总体要求: 理解掌握MCS-51单片机中各内部功能部件的构成 理解掌握MCS-51单片机中各内部功能部件的应用特征 熟练掌握内部功能部件初始化程序设计与工作方式 变化的对应关系 能够独立完成本章作业 学习重点:学习重点: 内部功能部件的构成和应用特征 内部功能部件初始化程序设计与工作方式和应用 特征变化的关系 内部功能部件综合应用程序设计举例的学习 第5章 MCS-51单片机的内部功能部件25.1 MCS-515.1 MCS-51单片机的中断系统单片机的中断

2、系统5.2 MCS-515.2 MCS-51单片机的定时器单片机的定时器/ /计数器计数器5.3 MCS-515.3 MCS-51单片机的串行通信单片机的串行通信I/OI/O接口接口 第5章 MCS-51单片机的内部功能部件35.1 MCS-515.1 MCS-51单片机的中断系统单片机的中断系统5.1.1 5.1.1 中断的概念中断的概念 1. 什么是中断 所谓中断是指中央处理器CPU正在处理某件事情的时候,系统发生了某一事件(如定时器定时时间到),请求CPU迅速去处理,CPU暂时中断当前的工作,转去处理所发生的事件,处理完以后,再回到原来被中断的地方,继续原来的工作。这样的过程称为中断。实

3、现这种功能的部件称为中断系统(中断机构)。中断过程如图5-1所示。 第5章 MCS-51单片机的内部功能部件4图5-1 中断过程示意图 第5章 MCS-51单片机的内部功能部件5 2. 为什么要用中断 中断技术在实时控制、分时操作、人机交互、多机系统等方面得到广泛的应用,大大扩大了计算机的应用范围,提高了计算机的性能。引入中断后有以下优点: (1)同步工作 有了中断功能后,就可以使CPU和外设同步工作。 (2)实时处理 在实时控制中,现场采集到的各种数据可在任何一时刻发出中断请求,要求CPU处理,若中断是开放的,则CPU 就可马上对这些数据进行处理了。 第5章 MCS-51单片机的内部功能部件

4、 (3)分时处理 利用中断功能,CPU可以同时为多个对象服务。只有服务对象向CPU发出中断请求,CPU才转而为之服务,这样就大大提高了CPU的效率。 (4)故障处理 计算机在运行过程中出现了事先预料不到的情况或故障时(如掉电、存储出错、溢出等),可以利用中断系统自行处理,而不必停机。 6 第5章 MCS-51单片机的内部功能部件7 3. 中断源 引起中断的原因或能发出中断请求的来源,称为中断源,通常的中断源有以下几种: (1)外部输入/输出设备,如A/D转换器、打印机等。 (2)数据通信设备,如进行双机或多机通信。 (3)定时时钟。 (4)故障源,如掉电保护请求等。 (5)为调试程序而设置的中

5、断源。 第5章 MCS-51单片机的内部功能部件84. 中断系统的功能 (1)实现中断并返回当某一个中断源发出中断请求时,CPU应决定是否响应这个中断请求(当CPU正在执行更重要的工作时,可暂时不响应中断),若响应这个中断请求,CPU 必须在现行指令执行完后,保护现场和断点,然后转到需要处理的中断源的服务程序入口,执行中断服务程序。当中断处理完后再恢复现场和断点,使CPU返回去继续执行主程序。 (2)能实现优先排队通常,在系统中会有多个中断源,有时会出现两个以上的中断源同时提出中断请求的情况,这时CPU应能找到优先级别最高的中断源,响应它的中断请求,在优先级别最高的中断源处理完后,再去响应级别

6、较低的中断源。 第5章 MCS-51单片机的内部功能部件9(3)高级中断源能中断低级的中断处理当CPU响应某一中断源的请求,在进行中断处理时,若有优先级别更高的中断源发出中断请求,则CPU应能中断正在执行的中断服务程序,保留这个程序的断点和现场,响应高级中断,在高级中断处理完后,再继续执行被中断的中断服务程序。若当发出新的中断请求的中断源的优先级别与正在处理的中断源同级或更低时,CPU不响应这个中断请求,直到正处理的中断服务程序执行完后,才去处理新的中断请求。 第5章 MCS-51单片机的内部功能部件105.1.2 MCS-515.1.2 MCS-51的中断系统的中断系统 MCS-51单片机的

7、中断系统由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,其结构框图如图5-2所示。 MCS-51单片机有个中断源(8052有个), 其中个为外部请求INT0(P3.2) 和INT1(P3.3),个片内定时/计数器T0 和T1 的溢出中断请求TF0(TCON.5) 和TF1(TCON.7),个片内串行口发送或接收中断请求TI(SCON.1) 或RI(SCON.0) ,这些中断请求源分别由特殊功能寄存器TCON和SCON 的相应位锁存。4个用于中断控制的特殊功能寄存器IE、IP、TCON(用位)和SCON(用位),可提供两个中断优先级,实现二级中断嵌套。个中断源对应个固定的中断入口

8、地址(矢量地址)。 第5章 MCS-51单片机的内部功能部件11图5-2 MCS-51中断系统结构图 第5章 MCS-51单片机的内部功能部件125.1.3 5.1.3 中断控制中断控制 MCS-51的中断系统从面向用户的角度来看,有以下4个特殊功能寄存器: (1) 定时器控制寄存器TCON; (2) 串行口控制寄存器SCON; (3) 中断允许寄存器IE; (4) 中断优先级寄存器IP。 其中TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器的有关位进行置位(置1)或复位(清0)等操作,可实现各种中断控制功能。 第5章 MCS-51单片机的内部功能部件13 1. 中断源请

9、求标志 (1) 定时/计数器控制寄存器TCON中的中断标志位 TCON 为定时计数器T0 、T1 的控制寄存器,同时也锁存了T0、T1 的溢出中断源和外部中断请求源等,字节地址为88H。与中断有关的位如下:bit8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TCON TF1 TF0 IE1 IT1 IE0 IT0 (88H) 第5章 MCS-51单片机的内部功能部件140INT IE0:外部中断标志。 若IE0=1 ,则表示外部中断( )向CPU 提出了请求中断。 IT0:外部中断触发方式控制位。 当IT0=0,外部中断(INT0)控制为电平触发方式。在这种方式下,CPU在每

10、个机器周期的S5P2期间采样INT0 (P3.2)的输入电平,若采到低电平,则认为有中断请求,随即由硬件置IE0=1。若采到高电平,则认为无中断请求或中断请求已撤除,随即对IE0 清。在电平触发方式中,CPU 响应中断后不能自动使IE0 清,也不能由软件使IE0 清,故在中断返回前必须请除INT0引脚上的低电平,否则会再次响应中断造成出错。0INT 第5章 MCS-51单片机的内部功能部件15 当IT0=1 ,外部中断( )控制为边沿触发方式,CPU 在每个机器周期的S5P2 期间采样 的输入电平,相继两次采样,一个周期采样为高电平,接着的下一个周期采样为低电平,则由硬件置IE0=1 ,表示外

11、部中断( )正在向CPU 请求中断,直到该中断被CPU 响应时,IE0 由硬件自动清,在边沿触发方式中,为了保证CPU 在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间起码要保持个机器周期。 IE1:外部中断标志,功能与IE0类似。 IT1:外部中断触发方式控制位,功能与IT0 类似。 TF0:定时/计数器T0溢出中断标志。0INT0INT0INT 第5章 MCS-51单片机的内部功能部件16 TF1:T1溢出中断标志,功能与TF0类似。 当MCS-51系统复位后,TCON各位均清。 串行口控制寄存器SCON中的中断标志位 SCON为串行口控制寄存器,字节地址为98H,SCON的

12、低位TI和RI锁存串行口的接收中断和发送中断标志。其格式如下:bit89H 88H TCON TI RI(98H) 第5章 MCS-51单片机的内部功能部件17 TI:串行口发送中断标志。 CPU将位数据写入发送缓冲器SBUF时,就启动发送,每发送完一帧串行数据后,由硬件置TI=,向CPU提出中断请求。但CPU响应中断时,不会对TI清,必须由软件(指令)清。 RI:串行口接收中断标志。 若串行口接收器允许接收,每接收完一个串行帧,硬件置RI=。RI=1表示串行口接收器正在向CPU请求中断。同样CPU响应中断时不会对RI清,必须由软件(指令)清。 2中断允许控制 对于每个中断源,其中断的开放与禁

13、止由中断允许寄存器IE中的某一位控制,IE的字节地址为A8H。其格式如下: 第5章 MCS-51单片机的内部功能部件18 EA:CPU的中断开放标志。 ES:串行口的中断允许位。 ET1:定时/计数器T1的溢出中断允许位。 EX1:外部中断( )的中断允许位。 ET0:定时/计数器T0的溢出中断允许位。 EX0:外部中断( )的中断允许位。 MCS-51单片机系统复位后,IE中各位均被清0,即禁止所有中断。1INT0INTbitAFH ACH ABH AAH A9H A8H IE EA ESET1 EX1 ET0 EX0 (A8H) 第5章 MCS-51单片机的内部功能部件19 3. 中断优先

14、级控制 MCS-51 单片机有两个中断优先级,对于每一个中断源的中断请求可编程为高优先级中断或低优先级中断,可实现二级中断嵌套。一个正在执行的低优先级中断能被高优先级中断请求所中断,但不能被另一个同优先级的中断请求所中断,一直执行到结束,遇到中断返回指令RETI,返回主程序后再执行一条指令才能响应新的中断请求。 MCS-51 单片机内有一个优先级寄存器IP,字节地址为B8H ,只要用指令改变其内容,就可对各中断源的中断优先级别进行设置。其格式如下: 第5章 MCS-51单片机的内部功能部件20 PS:串行口中断优先级控制位。 PT1:T1中断优先级控制位。 PX1:外部中断中断优先级控制位。

15、PT0:T0中断优先级控制位。 PX0:外部中断中断优先级控制位。 MCS-51单片机系统复位后,IP各位均为,各中断源均设定为低优先级中断。bitBCH BBH BAH B9H B8H IP PSPT1 PX1 PT0 PX0 (B8H) 第5章 MCS-51单片机的内部功能部件21 MCS-51 单片机的中断系统有两个不可寻址的“优先级有效”触发器。其中一个指示某高优先级的中断正在执行,所有后来的中断请求都被阻止。另一个触发器指示某低优先级的中断正在执行,所有的同级中断请求都被阻止,但不阻止高优先级的中断请求。 若同时收到几个同一优先级的中断请求时,哪一个先得到服务,取决于中断系统内部的查

16、询顺序。这相当于在每个优先级内,还同时存在另一个辅助优先级结构。MCS-51单片机中各中断源的优先顺序以及对应的入口地址见表5-1。 第5章 MCS-51单片机的内部功能部件22中断源同级的中断优先级口地址外部中断最高0003H0T0溢出中断000BH外部中断10013HT1溢出中断001BH串行口中断最低0023H表5-1 中断优先顺序及对应入口地址表 第5章 MCS-51单片机的内部功能部件235.1.4 5.1.4 中断的响应条件及响应过程中断的响应条件及响应过程 1响应条件 单片机响应中断的条件是:中断源有请求,CPU允许所有中断源请求中断(EA1),中断允许寄存器IE相应位置1。这样

17、,在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任一个周期的S6期间,找到所有有效的中断请求,并对其优先级排队,只要满足下列条件: 无同级或高级中断正在服务; 现行指令执行到最后一个机器周期且已结束; 若现行指令为RETI或需访问特殊寄存器IE或IP的指令时,执行完成该指令且紧随其后的另一条指令也已执行完。单片机便在紧接着的下一个机器周期S1期间响应中断,否则将丢弃中断查询的结果。 第5章 MCS-51单片机的内部功能部件24 2响应过程 单片机一旦响应中断,首先置位响应的优先级有效触发器,然后由硬件系统把断点地址压入堆栈保护,然后将对应的中断入口地址值装入程序计数器PC,使程序转

18、向该中断入口地址,以执行中断服务程序。 3中断响应时间 由上述可知,CPU不是在任何情况下都对中断请求立即响应的,而且不同的情况对中断响应的时间也不同。 如果在请求中断时,CPU正在处理最长指令(如乘、除法指令),则额外等待时间增加个机器周期;若正在执行RETI或访问IE、IP指令,则额外等待时间又增加个机器周期。综合估算,若系统中只有一个中断源,则响应时间为个机器周期。 第5章 MCS-51单片机的内部功能部件25 例5.1 采用中断和查询的方法扩充外部中断源,实现多个故障源显示。图5-3所示的电路可实现多个故障源的显示。当系统无故障时,4个输入故障源的故障信号输入端为低电平,无中断请求,指

19、示灯全部熄灭;当系统中某一路出现故障时,相应故障源的故障信号输入端为高电平,表示有中断请求,从而引起8031的中断,中断服务子程序的任务就是判定故障源,并使相应的指示灯点亮。 第5章 MCS-51单片机的内部功能部件26图5-3 例5.1对应的外电路 第5章 MCS-51单片机的内部功能部件27程序如下: ORG 2000H AJMP MAIN ;转向主程序 ORG 0003H AJMP SERVE ;转向中断服务程序MAIN:ANL P1,00H ;全部指示灯灭,并为读入故 障信号作准备 SETB IT0 ;选择 为边沿触发方式 SETB EX0 ;允许 中断 SETB EA ;CPU开中断

20、0INT0INT 第5章 MCS-51单片机的内部功能部件28LOOP1:MOV A,P1 ANL A,55H JNZ LOOP1 ;有外部中断请求转LOOP1 ANL P1,00H ;无中断请求灯全灭 SJMP LOOP1 ;等待中断SERVE:JNB Pl.0,L1 ;中断服务程序 SETB P1.1 ;查询中断源,若有故 障使其相应的指示灯点亮 SJMP L2L1: CLR P1.1L2: JNB P1.2,L3 第5章 MCS-51单片机的内部功能部件29 SETB P1.1 SJMP L4L3: CLR P1.3L4:JNB P1.4,L5 SETB Pl.5 SJMP L6L5:

21、CLR P1.5L6: JNB P1.6,L7 SETB Pl.7 SJMP L8L7: CLR P1.7L8: RETI 第5章 MCS-51单片机的内部功能部件305.2.1 5.2.1 定时定时/ /计数器的结构计数器的结构 MCS-51单片机内有两个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都具有定时和计数功能,可用作定时控制、延时以及对外部事件的计数及检测。定时/计数器的内部结构如图5-4所示。5.2 MCS-515.2 MCS-51单片机的定时器单片机的定时器/ /计数器计数器 第5章 MCS-51单片机的内部功能部件31图5-4 定时/计数器的内部结构 第5章

22、 MCS-51单片机的内部功能部件32 定时/计数器的核心是一个加计数器,其分别由两个位的特殊功能寄存器组成。T0由TH0和TL0构成,T1由TH1和TL1构成。地址顺序依次是8AH8DH。这些寄存器用于存放定时或计数的初值,每个定时器都可以由软件设置成定时工作方式或计数工作方式。这些功能都由定时/计数器方式寄存器TMOD设置,由定时/计数器控制寄存器TCON控制的。当定时器工作在计数方式时,外部输入信号是加到T0(P3.4)或T1(P3.5)端。外部输入信号的下降沿将触发计数,计数器在每个机器周期的 S5P2期间采样外部输入信号,若一个周期的采样值为1,下一个周期的采样值0,则计数器加1,故

23、识别一个从1到0的跳变需2个机器周期,所以对外部输入信号最高的计数速率是晶振频率的1/24。 第5章 MCS-51单片机的内部功能部件同时外部输入信号的高电平与低电平保持时间均需大于一个机器周期。当定时/计数器工作在定时方式时,加1计数器对机器周期计数,每一个机器周期加1,直至计数器计满溢出。由于一个机器周期由12个时钟周期组成,所以计数频率为时钟频率的1/12。 一旦定时/计数器被设置成某种工作方式后,它就会按设定的工作方式独立运行,不再占用PU 操作时间,直到加计数器计满溢出,才可能中断CPU的当前操作。用户可以重新设置定时/计数器的工作方式,以改变定时/计数器的工作状态。33 第5章 M

24、CS-51单片机的内部功能部件345.2.2 5.2.2 定时定时/ /计数器的方式寄存器和控制寄存器计数器的方式寄存器和控制寄存器 定时/计数器是一种可编程的部件,在其工作之前必须将控制字写入方式寄存器TMOD和控制寄存器TCON,用以确定工作方式,这个过程称为定时/计数器的初始化。 1工作方式寄存器TMOD TMOD用于控制T0 和T1 的工作方式。其格式如下:TC TC D7D6D5D4D3D2D1D0MODGATEM1M0GATEM1M0(89H) 定时器T1方式字段定时器T方式字段 第5章 MCS-51单片机的内部功能部件35 其中,高位控制定时器T1,低位控制定时器T0。各位的含义

25、如下: M1、M0:工作方式控制位,可构成以下种工作方式: M1 M0工作方式说 明0 0013位计数器0 1116位计数器1 02可再装入8位计数器1 13T0:分成二个8位计数器T1:停止计数 第5章 MCS-51单片机的内部功能部件36 :计数工作方式/定时工作方式选择位。 =0,设置为定时工作方式。 =1,设置为计数工作方式。 GATE:选通控制位 GATE=0,只要用软件(指令)对TR0(或TR1)置就可以启动定时器。 GATE=1,只有在 (或 )引脚为,且用软件对TR0(或TR1)置才能启动定时器工作。 系统复位后TMOD 的所有位清。TMOD不能位寻址,只能用字节地址设置工作方

26、式。TCTCTC0INT1INT 第5章 MCS-51单片机的内部功能部件37 2控制寄存器TCON TCON用于控制定时器的启动、停止以及反映定时器的溢出和中断情况。其格式如下:bit8FH8EH8DH8CH8BH8AH89H88HTCONTF1TR1TF0TR0IE1IT1IE0IT0(88H) 与外部中断有关 其中,TCON的低4位与外部中断有关。高4位的含义如下: 第5章 MCS-51单片机的内部功能部件38 TF1:定时器溢出标志。 TF0:定时器溢出标志,功能与TF1相同。 TR1:定时器1的运行控制位。 TR0:定时器运行控制位,功能与TR1相同。 IE1:外部中断请求标志。 I

27、E0:外部中断请求标志。 IT1:外部中断触发方式选择位。 IT0:外部中断触发方式选择位。 系统复位后,TCON中的各位均清。 第5章 MCS-51单片机的内部功能部件395.2.3 5.2.3 定时定时/ /计数器的工作方式计数器的工作方式 1工作方式 当M1M0为00时,定时/计数器被设置成方式0,它是一个13位计数器。以T0为例,工作方式的逻辑结构如图5-5所示,在这种工作方式下,16位的计数器(TH0和 TL0)只用了13位构成13位定时/计数器。 第5章 MCS-51单片机的内部功能部件40图5-5 工作方式0的逻辑结构 第5章 MCS-51单片机的内部功能部件41 当C/T=时,

28、控制开关接通内部振荡器,T0对机器周期加计数,其定时时间为: t=(213T0初值)计数周期=(213T0初值)时钟周期12 如果晶振频率为12MHz,则时钟周期为1/12s,当计数初值为0时,最长的定时时间为: tmax=(2130)1/1212s=8.192ms 当C/T=时,控制开关接通外部输入信号,当外部输入信号发生从“1”到“0”跳变时,加1计数器加1,即处于计数工作方式。 当GATE=0时,或门输出恒为,INT0被封锁,仅由TR0便可控制T0的开启和关闭。 当GATE=1时,T0的开启与关闭取决于TR0和相与的结果,即只有当INT0=和TR0=时,T0才被开启。 第5章 MCS-5

29、1单片机的内部功能部件42 2工作方式 当M1M0为01时,定时/计数器被设置成方式1。以T0为例,工作方式的逻辑结构如图5-6所示。由图可见,它与工作方式的差别仅在于工作方式是以16位计数器参加计数的,且定时时间为: t=(216T0初值)计数周期=(216T0初值)时钟周期12 若晶振频率为12MHz,则时钟周期为1/12s,最长的定时时间(计数初值为0)为: tmax=(2160)1/1212s=65.536ms 第5章 MCS-51单片机的内部功能部件43图5-6 工作方式1的逻辑结构 第5章 MCS-51单片机的内部功能部件44 3工作方式 当M1M0为10时,定时/计数器被设置成方

30、式2。以T0为例,工作方式的逻辑结构图如图5-7所示。定时/计数器构成一个能够重复置初值的位计数器。在工作方式、工作方式,若用于重复定时计数,则每次计满溢出后计数器变为全,还得重新装入初值。而工作方式可在计数器计满溢出时自动装入初值,工作方式把16位的计数器分成两个位计数器。TL0作位计数器用,TH0用来保存初值,每当TL0计满溢出时,可自动将TH0的初值再装入TL0中。工作方式的定时时间为: t=(28-T0初值)计数周期=(28-T0初值)时钟周期12 第5章 MCS-51单片机的内部功能部件45图5-7 工作方式2的逻辑结构 第5章 MCS-51单片机的内部功能部件46 4工作方式 当M

31、1M0为11时,定时/计数器被设置成方式3,工作方式的逻辑结构图如图5-8所示。该工作方式只适用于定时/计数器T0。T0在工作方式被拆成两个相互独立的计数器,其中TL0使用原T0的各控制位、引脚和中断源: 、 GATE 、TR0 、 和TF0。而TH0则只能作为定时器使用,但它占用了T1的TR1和TF1,即占用了T1的中断标志和运行控制位。 一般在系统需增加一个额外的位定时器时,可设置为工作方式,此时T1虽然仍可定义为工作方式、工作方式和工作方式,但只能用在不需要中断控制的场合。TC0INT 第5章 MCS-51单片机的内部功能部件47图5-8 工作方式3的逻辑结构 第5章 MCS-51单片机

32、的内部功能部件485.2.4 5.2.4 定时定时/ /计数器的编程和应用举例计数器的编程和应用举例 应用定时/计数器时应注意两点,一是初始化(写入控制字),二是对初值的计算。初始化步骤为: 向TMOD写入工作方式控制字。 向计数器TLi、THi装入初值。 置TRi=1,启动计数。 若需要时,置ETi=1,允许定时/计数器中断。 置EA=1,CPU开中断。 例5.2 利用T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12 MHz。 分析:要在P1.0输出周期为2ms的方波,只要能够连续定时1ms使P1.0取反一次即可。 第5章 MCS-51单片机

33、的内部功能部件49 确定方式字。T0的方式字为:TMOD=00H。即: TMOD.1、TMOD.0 M1M0=00,T0为方式0; TMOD.2 =0,T0为定时状态; TMOD.3 GATE=0,表示计数不受控制; 因T1不用,TMOD.4TMOD.7可为任意,这里取0值。 计算1ms定时T0的初值。 已知:机器周期t=1/fosc12= 12=110-6s=1s 设:T0的计数初值为X,由于(213-X)110-6=110-3=1ms 则:X=213-110-3/110-6=8192-1000 =7192D=11100000 11000B 高8位 低5位 E0H 18H610121TC 第

34、5章 MCS-51单片机的内部功能部件50 TH0初值为E0H,TL0初值为18H。采用查询TF0的状态来控制P1.0输出。 程序如下: MOV TMOD,00H ;置T0为方式0 MOV TL0,18H ;送初值 MOV TH0,0E0H SETB TR0 ;启动T0 LOOP:JBC TF0,NEXT ;查询定时时间到否? SJMP LOOP NEXT:MOV TL0,18H ;重装计数初值 MOV TH0,0E0H CPL P1.0 ;取反输出 SJMP LOOP ;重复循环 第5章 MCS-51单片机的内部功能部件51 采用查询方式的程序很简单,但在定时器整个计数过程中,CPU要不断地

35、查询溢出时标志TF0的状态,这就占用了CPU工作时间,以致CPU的效率不高,而采用定时器溢出中断方式,则可以提高CPU的效率。 例5.3 采用定时器溢出中断方式产生上例所要求的方波。 方式字和初值与上例一样。程序如下: 主程序: MAIN:MOV TMOD,00H ;置T0为方式0 MOV TL0,18H ;送初值 MOV TH0,0E0H SETB EA ;CPU开中断 第5章 MCS-51单片机的内部功能部件52 SETB ET0 ;T0中断允许 SETB TR0 ;启动T0 HERE:SJMP HERE ;等待中断,虚拟主程序中断服务程序: ORG 000BH ;T0中断入口 AJMP

36、CTC0 ;转中断服务程序 ORG 0100H CTC0:MOV TL0,18H ;重装初值 MOV TH0,0E0H CPL P1.0 ;输出方波 RETI ;中断返回 第5章 MCS-51单片机的内部功能部件53 例5.4 设置T0为工作方式1,定时器方式,定时时间为2ms,每当2ms到,请求中断,在中断服务程序中将P1.0的内容取反送出(假设晶振为6MHz)。 分析:要在P1.0输出周期为2ms的方波,只要使P1.0每隔1ms取反一次即可。 确定方式字。T0的方式字为:TMOD=0000 0001B=01H 计算2ms定时T0的初值。 设初值为,由于(216-X)(1/6)10-6)12

37、=210-3 则 X=64536D=FC18H TH0初值为FCH,TL0初值为18H 程序如下: 第5章 MCS-51单片机的内部功能部件54 ORG0000H AJMPMAIN ;转主程序 ORG000BH ;T0中断服务程序INT: MOVTL0,18H ;重新设置计数初值 MOV TH0,0FCH CPL P1.0 ;取反输出 RETI MAIN:MOVSP,63H ;设置堆栈指针 MOVTMOD,01H ;T0初始化, 写入工作方式控制字 MOV TL0,18H ;设置计数初值 MOVTH0,0FCH SETBEA ;CPU开中断 SETBET0 ;允许T0中断 SETBTR0 ;启

38、动T0计数 SJMP$ ;等待中断 第5章 MCS-51单片机的内部功能部件55 例5.5 利用定时器扩展外部中断源。 在例5.1中我们采用中断和查询的方法扩充了外部中断源。在这里利用定时器扩展外部中断源。工作原理:当定时/计数器选择为计数工作方式时,T0或T1引脚上的负跳变将使T0或T1计数器加计数,故若把计数初始设定为满量程FFH,一旦外部从计数引脚输入一个负跳变信号,计数器T0或T1加产生溢出中断,这样便可把外部计数输入端T0(P3.4)或T1(P3.5)扩充作为外部中断源的输入端。 例如:利用定时器T1扩展外部中断源,每当T1引脚上出现负跳变时进入中断处理程序使累加器内容加,再送P1口

39、输出。编程如下: 第5章 MCS-51单片机的内部功能部件56 ORG0000H ;用户程序首址 AJMPMAIN ;转主程序 ORG 001BH AJMP INT ;转中断服务程序MAIN:MOV SP,53H ;堆栈指针赋初值 MOVTMOD,60H;T1方式,计数 MOV TL1,0FFH;送常数 MOV TH1,0FFH SETB EA ;CPU开中断 SETB ET1;允许T1中断 SETBTR1;启动T1计数 SJMP $;等待INT: INC A ;T1中断处理程序 MOV P1,A RETI ;中断返回 第5章 MCS-51单片机的内部功能部件57 例5.6 当GATE=1、T

40、R0=1,只有 引脚上出现高电平时,T0才被允许计数。试利用这一功能测试 引脚上正脉冲的宽度(以机器周期数表示)。 设外部待测脉冲由 (P3.2)输入,T0工作在方式1,设置为定时状态,GATE置“”,测试时,在 端为“0”时置TR0 为“1”,当 端变为“1”时启动计数; 端再次变为“0”时停止计数。此时的计数值就是被测正脉冲的宽度。如下图所示: 0INT0INT0INT0INT0INT0INT(P3.2) 对T0初始化 T0从0开始计数TR00,停止T0计数,TMOD09H, 读出T0值 TR1 第5章 MCS-51单片机的内部功能部件58程序如下: ORG 0000H MOV TMOD,

41、09H ;T0工作于方式定时,GATE=1 MOV TL0,00H MOV TH0,00HWAIT1:JB 3.2, WAIT1;等待3.2变低 SETB TR0 ;启动T0WAIT2:JNB P3.2,WAIT2 ;等待3.2变高WAIT3:JB P3.2,WAIT3 ;等待3.2再变低 CLR TR0 ;T0停止计数 MOV A,TL0 ;存放计数值 MOV B,TH0 第5章 MCS-51单片机的内部功能部件59 例5.7 利用定时中断抗干扰。 单片机应用系统开发完成后,在工作现场由于系统本身的噪声干扰、外界环境干扰、以及电磁干扰、过压干扰等原因,往往会使系统出现“死机“的情况。在这里抗

42、干扰的设计思想是先估算系统主程序运行一次所需的时间t1,然后把定时器T0或T1的定时时间t2取得比t1稍大些,并在主程序中包含对定时器的初始化程序,这样如果系统主程序运行正常,因定时时间t2比t1大,故在定时时间t2还未到时,主程序已运行完成,T0或T1可以被重新初始化,使定时时间常数重新置入其中,不会产生溢出中断。若应用系统由于干扰失控,主程序不能正常结束,则T0或T1就不能被及时初始化,而经过时间t2后,T0或T1必将产生溢出中断,转入中断服务,这表明程序运行出现故障,用可安排中断服务程序跳转回主程序需要的地址,以此重新使主程序运行。 第5章 MCS-51单片机的内部功能部件60 将T1设

43、置为工作方式2,晶体振荡器频率为6MHz 防止“死机”的程序如下: MOV TMOD,20H ;T1工作方式,定时 MOV TL1,data ;T1赋初值(根据t) MOV TH1,data SETB PT1 ;T1中断设置为高优先级别 SETB EA ;CPU开中断 SETB ET1 ;开中断 SETB TR1 ;启动T1计数 第5章 MCS-51单片机的内部功能部件 ORG 001BH ;T1溢出中断入口地址 POP ACC ;丢弃PC压入堆栈的错误地址 POP ACC MOV A,data ;将需转去的主程序地址 (个字节)送入栈顶 PUSH ACC MOV A,data PUSH AC

44、C RETI ;中断返回61返回目录返回目录 第5章 MCS-51单片机的内部功能部件625.3 MCS-515.3 MCS-51单片机的串行通信单片机的串行通信I/OI/O接口接口5.3.1 5.3.1 串行通信概述串行通信概述 1. 串行通信与并行通信 计算机与外界的信息交换(数据传输)称为通信。通信方式有两种,串行通信与并行通信,分别如图5-9a、5-9b所示。 第5章 MCS-51单片机的内部功能部件63(a)串行传输 (b)并行传输 图5-9 串行通信与并行通信 第5章 MCS-51单片机的内部功能部件64 2串行通信方式 串行通信中,数据在通信线上的传送方式有3种:单工方式、半双工

45、方式和双工方式,如图5-10所示。 (1) 单工方式这种方式只允许数据按一个固定的方向传送。如图5-10a所示。 (2) 半双工方式数据可以从A发送到B,也可以由B发送到A。但A、B之间只有一根传输线,因此同一时刻只能作一个方向的传送。其传送方向由收发控制开关K切换。如图5-10b所示。 (3) 全双工方式数据可同时在两个方向上传送。如图5-10c所示。 第5章 MCS-51单片机的内部功能部件65(a)单工方式 (b)半双工方式 (c)全双工方式 图5-10 串行通信中数据的传送方式 第5章 MCS-51单片机的内部功能部件66 MCS-51单片机的串行通信是全双工方式,可随时发送或接收数据

46、。串行通信有两种基本方式:同步通信和异步通信。 (1) 同步通信 要求有准确的时钟信号来保证发送端和接收端的的严格同步。(如图5-11所示)图5-11 同步通信格式 第5章 MCS-51单片机的内部功能部件67 (2) 异步通信 若接收端与发送端使用的不是同一时钟信号,则为异步通信。 异步通信由于收/发双方的时钟信号不同步,故其是按帧传送数据的,即每次传送一个字符,而不是一个较长的数据块,以免产生时钟采样误差。异步通信的数据帧格式如图5-12所示,字符前面有一个起始位0,后面有一个停止位1,各字符之间没有固定的间隙长度,各字符传送的间隙为空闲位1。当发送端发送时,首先发送一个起始位0,接受端侦

47、测到数据线上信号不是表示空闲位的1而是0时便开始接收数据。异步通信通常采用通用异步接收/发送器UART(Universal Asynchronous Receiver/Transmitter)控制实现。MCS-51单片机片内集成有UART,可实现异步串行通信。 第5章 MCS-51单片机的内部功能部件68图5-12 异步通信格式 第5章 MCS-51单片机的内部功能部件69 3串行通信的传送速率 在串行通信中,数据是按位进行传送的,因此传送速率用每秒传送格式位的数目表示,称为波特率(baud rate)。 1波特1bps(秒/位) 如微型打印机的传送速率为30字符/s,每个字符为10位,则波特

48、率为: 10位/字符30字符/s300位/s300bps 我们可算出每位传送所花费的时间为: Td=1/波特率1/300 bps3.3ms 第5章 MCS-51单片机的内部功能部件70 4信号的调制与解调 由于计算机处理的数据为数字信号,当传送这些数字信号时,要求通信线有很宽的频带,对于近距离通信(不能超过30m),可采用直接电缆连接,但对于远距离通信,通常采用电话线来传送信息,而电话线的频带很窄,数字信号经过电话线传送后,会发生严重的畸变。解决这一问题的方法是采用调制与解调,调制常采用调幅、调频、调相等方法。下面对调频方法做一简单介绍。 第5章 MCS-51单片机的内部功能部件71 当采用调

49、频方法时,“调制”是指在发送端把数字信号“0”和“1”转换成不同频率的模拟信号,然后再发送到电话线等通信线路上去。“解调”时在接收端将不同频率的模拟信号还原成数字信号“0”和“1”。如图5-13为调制与解调图。通常把调制器与解调器做成一个整体调制解调器,又称MODEM。 图5-13 信号的调制与解调 第5章 MCS-51单片机的内部功能部件725.3.2 5.3.2 串行通信串行通信I/OI/O接口接口 1串行口的结构与工作原理 MCS-51单片机中的串行接口是一个全双工异步通信接口,能同时进行发送和接收。它既可以按UART(通用异步接收和发送器)使用,也可以作为同步移位寄存器使用。其帧格式和

50、波特率可通过软件编程设置,在使用上非常方便灵活。 (1) (1) 串行口的结构串行口的结构MCS-51单片机的串行口主要由两个数据缓冲器SBUF、一个输入移位寄存器、一个串行控制寄存器SCON和一个波特率发生器T1等组成。其结构如图5-14所示。 第5章 MCS-51单片机的内部功能部件73图5-14 串行口结构框图 第5章 MCS-51单片机的内部功能部件74 串行口数据缓冲器SBUF是可以直接寻址的专用寄存器。在物理上,一个作发送缓冲器,一个作接收缓冲器。但两个缓冲器共用一个口地址99H,由读写信号区分,CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。接收缓冲器是双缓冲的,它是为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁