




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 MCS-51MCS-51单片机硬件资源的应用单片机硬件资源的应用5.1 MCS-515.1 MCS-51的并行口及其应用的并行口及其应用 5.2 MCS-515.2 MCS-51的中断系统的中断系统 5.3 MCS-515.3 MCS-51的定时器的定时器/ /计数器计数器 5.4 MCS-515.4 MCS-51单片机的串行接口单片机的串行接口1. P1口口5151单片机指令系统单片机指令系统P1P1口作为通用的口作为通用的I/OI/O口使用,具有输出、读口使用,具有输出、读引脚、读锁存器三种工作方式。引脚、读锁存器三种工作方式。注意:是读引脚还是读锁存器,其过程注意:是读引脚
2、还是读锁存器,其过程CPUCPU内部会自动处理,读者不必在意。但应注内部会自动处理,读者不必在意。但应注意,当作为读引脚方式使用时,应先对该意,当作为读引脚方式使用时,应先对该口写口写“1”1”。 P1P1口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P1.7P1.7P1.0P1.0。2. P3口口P3 P3 口为多功能口。作为第二功能口使用时是口为多功能口。作为第二功能口使用时是提供一个全双工的串行口、提供一个全双工的串行口、2 2个外部中断源的个外部中断源的中断输入、中断输入、2 2个计数器的计数脉冲输入、两个个计数器的计数脉冲输入、两个对外部对外部RAMRAM及及I/OI/
3、O的读的读/ /写控制信号。写控制信号。 在应用中,在应用中,P3P3口的各位如不设置为第二功能,口的各位如不设置为第二功能,则自动处于第一功能。则自动处于第一功能。P3P3口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P3.7P3.7P3.0 P3.0 3. P0口口POPO口既可以作为通用的口既可以作为通用的I/OI/O口进行数据的输口进行数据的输入入/ /输出,也可以作为单片机系统的地址输出,也可以作为单片机系统的地址/ /数据线使用。数据线使用。作为一般的作为一般的I/OI/O口使用时记作口使用时记作P0.7P0.7P0.0P0.0;作为数据口使用时记作作为数据口使用时记
4、作D7D7D0D0;作为地址;作为地址线使用时要增加一个锁存器,锁存器的输线使用时要增加一个锁存器,锁存器的输出是地址线的低出是地址线的低8 8位,记作位,记作A7A7A0A0。4. P2口口P2P2口既可以作为通用的口既可以作为通用的I/OI/O口使用也可以口使用也可以作为地址总线使用作为地址总线使用 。P2P2口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P2.7P2.7P2.0P2.0;作为地址口使用时是地址的高;作为地址口使用时是地址的高8 8位,位,记作记作A15A15A8A8。 5. 并行接口的应用并行接口的应用 1. 1. 电路如图电路如图所示,编程将所示,编程将开
5、关开关K0K0K3K3的的状态通过指示状态通过指示灯灯L0L0L3L3表示表示出来,开关闭出来,开关闭合时灯亮。合时灯亮。 ORG 0100H ORG 0100HL:L: ORL P1 ORL P1,#0F0H#0F0H MOV A,P1 MOV A,P1 SWAP A SWAP A MOV P1 MOV P1,A A SJMP L SJMP L2. 2. 电路如所示电路如所示, , 编制一个灯光循环闪烁编制一个灯光循环闪烁程序,通过程序,通过P3P3口连接口连接8 8个发光二极管。其个发光二极管。其中一个发光二极管中一个发光二极管闪烁闪烁3 3 次后,转移次后,转移到下一个发光二极到下一个发
6、光二极管闪烁管闪烁3 3 次,如此次,如此循环不止。循环不止。 ORG 0100H ORG 0100H MOV A,#0FEHMOV A,#0FEHSHIFT:SHIFT: LCALL FLASH LCALL FLASH RL A RL A SJMP SHIFT SJMP SHIFTFLASH:FLASH: MOV R5 MOV R5,#03H#03HFLASH1FLASH1: MOV P3MOV P3,A A LCALL DELAY LCALL DELAY MOV P3 MOV P3,#00H#00H LCALL DELAY LCALL DELAY DJNZ R5 DJNZ R5,FLASH
7、1FLASH1 RET RET3. 3. 设计一电路,监视某按键设计一电路,监视某按键S S,用发光二,用发光二极管极管LEDLED显示按键状态。如果按键闭合,显示按键状态。如果按键闭合,则则LEDLED亮,并发出声亮,并发出声音报警信号;如果音报警信号;如果按键按键S S断开,则断开,则LEDLED熄灭,无声音报警熄灭,无声音报警信号。信号。 ORG 0100H ORG 0100H MOV P1,#0FFHMOV P1,#0FFHKEY:KEY: SETB P1.2 SETB P1.2 JNB P1.2 JNB P1.2,ALARMALARM SETB P1.1 SETB P1.1 AJMP
8、 KEY AJMP KEYALARMALARM: CLR P1.1CLR P1.1 CPL P1.0 CPL P1.0 ACALL DELAY ACALL DELAY AJMP KEY AJMP KEYDELAY:DELAY: RET RET一、中断系统结构与控制一、中断系统结构与控制 二、中断优先级结构二、中断优先级结构 三、中断响应三、中断响应 四、中断请求的撤除四、中断请求的撤除 五、中断系统应用举例五、中断系统应用举例 什么叫中断?什么叫中断? 举例:举例:某同学正在教室写作业,忽然被人叫出去,回来某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。后,
9、继续写作业。这就是生活中中断的例子。 与上对比,单片机中也有同样的问题。与上对比,单片机中也有同样的问题。CPU正正 在执行原程序,突然,被意外事情打断,转去执行在执行原程序,突然,被意外事情打断,转去执行 新程序。新程序。CPU执行新程序结束后,又回到原程序中执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫中断。继续执行。这样的过程就叫中断。. .对突发事故,做出紧急处理。对突发事故,做出紧急处理。. .根据现场随时变化的各种参数、信息,做出实时监控。根据现场随时变化的各种参数、信息,做出实时监控。CPUCPU与外部设备并行工作与外部设备并行工作, ,以中断方式相联系以中断方式相联
10、系, ,提高工作提高工作效率。效率。. .解决快速解决快速CPU与慢速外设之间的矛盾。与慢速外设之间的矛盾。. .在多项外部设备同时提出中断请求情况下,在多项外部设备同时提出中断请求情况下,CPUCPU能根能根据轻重缓急响应外设的中断请求。据轻重缓急响应外设的中断请求。 中断的作用:中断的作用:一、中断系统结构与控制一、中断系统结构与控制 对于对于MCS-51单片机中断系统的组成可以用一句话来讲,单片机中断系统的组成可以用一句话来讲,叫做:叫做:“五源中断,两级管理五源中断,两级管理” 五个中断源:五个中断源: 入口地址入口地址外部中断外部中断0(/INT0) 0003HT0溢出中断溢出中断
11、000BH外部中断外部中断1(/INT1) 0013HT1溢出中断溢出中断 001BH串口中断串口中断 0023H 外部中断:外部中断:外部中断外部中断0 /INT00 /INT0 外部中断外部中断1 /INT11 /INT1定时器定时器/ /计数器溢出中断:计数器溢出中断: 定时器定时器/ /计数器计数器0 TF00 TF0 定时器定时器/ /计数器计数器1 TF1 1 TF1 串行口中断:串行口中断:串行口串行口 RIRI、TITI中断源中断源以上以上6个中断请求标志位分别分布在个中断请求标志位分别分布在TCON、SCON两个寄存器中。两个寄存器中。TCONIT0IE0IT1IE1TR0T
12、R0TR0TF0TR1TR1TR1TF1TF1 T1的溢出中断标志的溢出中断标志 硬件置硬件置1,硬件清,硬件清0(也可软件清(也可软件清0)TF0 T0的溢出中断标志。(同的溢出中断标志。(同TF1,只是针对,只是针对T0的)的)IE1 外部中断外部中断1(/INT1)请求标志。)请求标志。 外部有中断请求时,硬件使外部有中断请求时,硬件使IE1置置1,硬件清,硬件清0。IE0 外部中断外部中断0(/INT0)请求标志。)请求标志。IT1 外部中断外部中断1(/INT1)触发类型控制位。)触发类型控制位。 IT1 = 0 ,低电平触发。,低电平触发。IT1 = 1 IT1 = 1 , 下降沿
13、触发。下降沿触发。 IT0 外中断外中断0(/INT0)触发类型控制位,用法同)触发类型控制位,用法同IT1。 中断控制中断控制SCONSCON RI TIRB8RB8RB8TB8TB8TB8RENRENRENSM2SM2SM2SM1SM1SM1SM0SM0SM0TI 串口发送中断标志位。串口发送中断标志位。 发送完数据,硬件使发送完数据,硬件使TI置置1,软件清,软件清0(CLR TI) RI 串行口接收中断标志位。串行口接收中断标志位。 硬件置硬件置1,软件清,软件清0。 IEEX0ET0EX1ET1 ES EAEA 总控制位总控制位 “” 未定义位未定义位ES 串口控制位串口控制位 ET
14、1 T1中断控制位中断控制位 EX1 /INT1控制位控制位 ET0 T0中断控制位中断控制位 EX0 /INT0控制位控制位 若为若为“1”,开关接通,允许,开关接通,允许例如例如 SETB EA若为若为“0”,开关断开,不允,开关断开,不允许许例如例如 CLR IE.7中断控制(两级管理)中断控制(两级管理)中断屏蔽(第一级管理)中断屏蔽(第一级管理)中断优先级(第二级管理)中断优先级(第二级管理)CPU同一时间只能响应一个中断请求。同一时间只能响应一个中断请求。若同时来了两个或两个若同时来了两个或两个以上中断请求,就必须有先有后。以上中断请求,就必须有先有后。 ! 为此将为此将5个中断源
15、分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制。控制。 IPPX0PT0PX1PT1 PSP S 串口的中断优先级别串口的中断优先级别PT1 定时定时 / 计数器计数器T1的中断优先级别的中断优先级别PX1 外部中断外部中断1 的中断优先级别的中断优先级别PT0 定时定时 / 计数器计数器T0的中断优先级别的中断优先级别PX0 外部中断外部中断0 的中断优先级别的中断优先级别该位是该位是“1”时,为高级优先级时,为高级优先级该位是该位是“ 0”时,为低级优先级时,为低级优先级同一级中的同一级中的5个中断源的优先顺序是:个中断源的优先顺序是: /INT0
16、中断中断 T0溢出中断溢出中断 /INT1中断中断 T1溢出中断溢出中断 串口中断串口中断 高高低低出厂前已由厂家固化顺序出厂前已由厂家固化顺序事先约定事先约定中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断,同级、同时中断,事先约定事先约定。 事件事件1事件事件2子程序子程序2子程序子程序1中断中断嵌套嵌套的概念:的概念: 主程序主程序中断中断中断中断5151单片机指令系统单片机指令系统三、三、MCS-51中断的响应过程中断的响应过程 CPU每个机器周期都需要顺序检查每
17、个中断源,当检测到有每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:中断请求时,能否响应,还要看下述情况是否存在: (1)CPU正处理相同级别或更高级别的中断;正处理相同级别或更高级别的中断;(2)正在执行指令,还未到最后一个机器周期;)正在执行指令,还未到最后一个机器周期;(3)正在执行的指令是)正在执行的指令是RETI或访问或访问IP、IE指令,则执行完上指令,则执行完上 述指令后,再执行一条指令后,才会响应新中断。述指令后,再执行一条指令后,才会响应新中断。 日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较: 某同学某同
18、学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回响应过程:(假设已使某中断请求标志置响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,)执行一个硬件子程序的调用, 1)硬件清零相应中断请
19、求标志()硬件清零相应中断请求标志(TI、RI除外)除外) 2)将当前)将当前PC内容压入堆栈内容压入堆栈保护断点;保护断点; 3)将中断服务子程序入口地址送)将中断服务子程序入口地址送PC转移。转移。 返回过程:(返回过程:(RETI执行后)执行后)(1)使相应优先级状态触发器清)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送)从堆栈中弹出栈顶的两个字节内容送PC恢复断点。恢复断点。(3)CPU接着中断处继续执行原程序。接着中断处继续执行原程序。 中断请求的撤除中断请求的撤除 MCS-51 MCS-51单片机的单片机的5151子系列有子系列有5 5个中断个中断源,但实际上
20、只分属于三种中断类型。这源,但实际上只分属于三种中断类型。这三种类型是:三种类型是:外部中断、定时器外部中断、定时器/ /计数器计数器溢出中断和串行口中断溢出中断和串行口中断。对于这三种中断。对于这三种中断类型的中断请求,其撤除方法是不同的。类型的中断请求,其撤除方法是不同的。1 1定时器溢出中断请求的撤除定时器溢出中断请求的撤除 TF0 TF0和和TF1TF1是定时器是定时器/ /计数器溢出中断计数器溢出中断标志位,它们因定时器标志位,它们因定时器/ /计数器溢出中断计数器溢出中断请求的输入而置位,因定时器请求的输入而置位,因定时器/ /计数器溢计数器溢出中断得到响应而自动复位成出中断得到响
21、应而自动复位成0 0状态。因状态。因此此定时器定时器/ /计数器溢出中断源的中断请求计数器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们是自动撤除的,用户根本不必专门为它们撤除。撤除。2 2串行口中断请求的撤除串行口中断请求的撤除 TI TI和和RIRI是串行口中断的标志位,中断是串行口中断的标志位,中断系统不能自动将它们撤除。为了防止系统不能自动将它们撤除。为了防止CPUCPU再次响应这类中断,用户应在中断服务程再次响应这类中断,用户应在中断服务程序的适当位置处序的适当位置处通过指令将它们撤除:通过指令将它们撤除: CLRCLRTITI;撤除发送中断;撤除发送中断 CLRCLRRI
22、RI;撤除接收中断;撤除接收中断3 3外部中断的撤除外部中断的撤除 外部中断请求有两种触发方式:电平外部中断请求有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断触发和脉冲触发。对于这两种不同的中断触发方式,触发方式,MCS-51MCS-51单片机撤除它们的中断单片机撤除它们的中断请求的方法是不相同的。请求的方法是不相同的。 (1 1)脉冲触发:)脉冲触发: 自动复位自动复位(2 2)电平触发:)电平触发:四、中断系统的应用举例四、中断系统的应用举例对中断系统的使用,实际是对对中断系统的使用,实际是对4 4个与中断有关的个与中断有关的寄存器寄存器IEIE、TCONTCON、SCONSCO
23、N、IPIP进行控制与管理。进行控制与管理。在中断程序的编制中应注意:在中断程序的编制中应注意: IEIE寄存器:寄存器:开中断总开关开中断总开关EAEA,置位各中断源,置位各中断源的中断允许位。的中断允许位。 对于外部中断应通过对于外部中断应通过TCONTCON寄存器的寄存器的ITIT位位选择选择中断触发方式中断触发方式- -电平或脉冲。电平或脉冲。 如果有多个中断源,要通过如果有多个中断源,要通过IPIP寄存器寄存器指定其指定其中断优先级。中断优先级。例例1 1:外部中断:外部中断在本实例中,首先在本实例中,首先通过通过P1.7P1.7口点亮发口点亮发光二极管,然后外光二极管,然后外部输入
24、一脉冲串,部输入一脉冲串,则发光二极管亮、则发光二极管亮、暗交替。电路如图暗交替。电路如图所示。所示。 ORG 0000H ORG 0000H LJMP MAINLJMP MAIN ORG 0003H ORG 0003H LJMP WINT0 LJMP WINT0 ORG 0030H ORG 0030HMAIN:MAIN: MOV SP,#60H MOV SP,#60H SETB EA SETB EA SETB EX0 SETB EX0 SETB IT0 SETB IT0 CLR P1.7 CLR P1.7L: SJMP LL: SJMP LWINT0WINT0: CPL P1.7CPL P1
25、.7 RETI RETI END END例例2 2:利用外部中断和查询相结合的方法扩利用外部中断和查询相结合的方法扩展外部中断。展外部中断。INTR:INTR: MOV P1,#0FFH MOV P1,#0FFH JNB P1.0 JNB P1.0,DVT1DVT1 JNB P1.0 JNB P1.0,DVT2DVT2 JNB P1.0 JNB P1.0,DVT3DVT3 JNB P1.0 JNB P1.0,DVT4DVT4 LJMP INTREND LJMP INTRENDDVT1DVT1: LJMP INTREND LJMP INTRENDDVT2DVT2: LJMP INTREND LJ
26、MP INTRENDDVT3DVT3: LJMP INTREND LJMP INTRENDDVT4DVT4: LJMP INTREND LJMP INTRENDINTREND: RETIINTREND: RETI例例 利用优先编码器扩展外部中断利用优先编码器扩展外部中断WINT0:WINT0: MOV P0,#0FFH MOV P0,#0FFH MOV A,P0 MOV A,P0 ANL A,#07H ANL A,#07H MOV B,A MOV B,A RL A RL A ADD A,B ADD A,B MOV DPTR,#TAB MOV DPTR,#TAB JMP A+DPTR JMP A
27、+DPTRTABTAB:LJMP K0LJMP K0 LJMP K1 LJMP K1 LJMP K2 LJMP K2 LJMP K3 LJMP K3 LJMP K4 LJMP K4 K0K0: RETIRETIK1K1: RETIRETI 一、定时一、定时/ 计数器的结构计数器的结构51子系列单片机内有两个十六位增一子系列单片机内有两个十六位增一 定时定时 / 计数器计数器TH0计数值高八位计数值高八位TL0计数值低八位计数值低八位TH1计数值高八位计数值高八位TL1计数值低八位计数值低八位TMODTCON工作方式工作方式定时定时 / 计数控制计数控制控控 制制 控控制制计数功能计数功能是指对
28、外部事件进行计数是指对外部事件进行计数: :计数计数信号来自信号来自T0T0、T1T1引脚。引脚。定时功能定时功能也是通过计数器的计数功能来完也是通过计数器的计数功能来完成的,不过此时的计数脉冲来自单片机内成的,不过此时的计数脉冲来自单片机内部:机器周期。部:机器周期。1. . 定时定时 / 计数器控制寄存器计数器控制寄存器TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0 能否启动定时能否启动定时 / 计数器工作与计数器工作与GATE有关,分两种情况:有关,分两种情况: GATE = 0 时,若时,若TRi = 1,开启,开启Ti计数工作;计数工作;(i = 0或或1
29、) 若若TRi = 0,停止,停止Ti计数。计数。 GATE = 1 时,若时,若TRi = 1 且且/INTi = 1时开启时开启Ti计数;计数; 若若TRi = 1 且且/INTi = 0时不能开启时不能开启Ti计数。计数。 若若TRi = 0, 停止停止Ti计数。计数。 TR0 定时定时 / 计数器计数器0运行控制位。运行控制位。 软件置位,软件复位。软件置位,软件复位。 TR1 定时定时 / 计数器计数器1运行控制位。(运行控制位。(用法与用法与TR0类似)类似) 2. . 工作方式控制寄存器工作方式控制寄存器 TMOD TMOD M0 M1C / GATE M0 M1C / GATE
30、TTT1T0GATE 门控位。门控位。 GATE = 0 启动不受启动不受 /INT0或或 /INT1的控制;的控制; GATE = 1 启动受启动受 /INT0 或或 /INT1 的控制。的控制。 C/T 外部计数器外部计数器 / 定时器方式选择位定时器方式选择位 C/T = 0 定时方式;定时方式; C /T = 1 计数方式计数方式。 M1M0 工作模式选择位(编程可决定四种工作模式)工作模式选择位(编程可决定四种工作模式)。 3. . 中断允许控制寄存器中断允许控制寄存器 IE IEEX0ET0EX1ET1 ES EAEA 总控制位总控制位 “” 未定义位未定义位ES 串口控制位串口控
31、制位 ET1 T1中断控制位中断控制位 EX1 /INT1控制位控制位 ET0 T0中断控制位中断控制位 EX0 /INT0控制位控制位 二、定时二、定时 / 计数器的四种工作模式计数器的四种工作模式 M1 M0 模式模式 说明说明 0 0 0 13位定时位定时/计数器计数器 高八位高八位TH(7 0)+ 低五位低五位TL(4 0) 0 1 1 16位定时位定时/计数器计数器 TH(7 0)+ TL(7 0) 1 0 2 8位计数初值自动重装位计数初值自动重装 TL(7 0) TH(7 0) 1 1 3 T0运行,而运行,而T1停止工作,停止工作,8位定时位定时/计数。计数。 1. 模式模式0
32、计数寄存器计数寄存器TLi 低低5位位 + THi8位位 (T1、T0的等效逻辑结构)的等效逻辑结构) TLi(5位)THi(8位)TFi中断控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=104 07计数器的计数值范围是:计数器的计数值范围是:1 181928192(2 21313)当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为:0 02 21313-1-1;定时时间的计算公式为:定时时间的计算公式为: 定时时间定时时间= =(2 21313- -计数初值)计数初值)定时周期定时周期若晶振频率为若晶振频率为6MHz6MHz,
33、其定时周期,其定时周期2s2s:则最短定时时间为:则最短定时时间为:TminTmin=2=21313-(2-(21313-1) -1) 2s =2(s)2s =2(s)最长定时时间为:最长定时时间为:TmaxTmax=(2=(21313-0) -0) 2s =16384(s)2s =16384(s)C/T = 0 定时;定时; C/T = 1 对外计数。对外计数。定时:定时:fosc / 12 = 1 /(12/fosc) = 1 / T 波形等间隔,次数已定,时间确定波形等间隔,次数已定,时间确定即对机器周期进行计数。即对机器周期进行计数。 左图定时时间为左图定时时间为 N*TN个方波个方波
34、 T计数:脉冲不等间隔。计数:脉冲不等间隔。 每个下降沿计数一次每个下降沿计数一次 确认一次负跳变需两个机器周期,确认一次负跳变需两个机器周期, 所以,计数频率最高为所以,计数频率最高为fosc / 24。 2. 模式模式1与模式与模式0相似。相似。与模式与模式0的区别:计数位数不同。的区别:计数位数不同。计数计数 寄寄 存存 器:器:THi(高(高8位)位)+ TLi(低(低8位)位) TFi中断TLi(8位)THi(8位)07 07控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1计数器的计数值范围是:计数器的计数值范围是:1 16553665536(2 21
35、616)。)。当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为: 0 02 21616-1-1;当为定时工作方式时:当为定时工作方式时:定时时间定时时间= =(2 21616- -计数初值)计数初值)定时周期定时周期若晶振频率为若晶振频率为12MHz12MHz,其定时周期,其定时周期1s1s:则最短定时时间为:则最短定时时间为:TminTmin=2=21616-(2-(21616-1) -1) 1s =1(s)1s =1(s)最长定时时间为:最长定时时间为:TmaxTmax=(2=(21616-0) -0) 1s =65536(s)1s =65536(s)3
36、. 模式模式2与模式与模式0、1的区别:的区别:1)计数位数不同;)计数位数不同; 2)初值自动重装。)初值自动重装。 TFi中断TLi(8位)THi(8位)控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1计数器的计数值范围是:计数器的计数值范围是:1 1256256(2 28 8)当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为:0 02 28 8-1-1;当为定时工作方式时:当为定时工作方式时:定时时间定时时间= =(2 28 8- -计数初值)计数初值)定时周期定时周期若晶振频率为若晶振频率为12MHz12MHz,其定时
37、周期,其定时周期1s1s:则最短定时时间为:则最短定时时间为:TminTmin=28-28-(2(28 8-1) -1) 2s =2(s)2s =2(s)最长定时时间为:最长定时时间为:TmaxTmax=(2=(28 8-0) -0) 2s =512(s)2s =512(s)4、模式、模式3T0定时定时/计数,而计数,而T1停止计数,但可作波特率发生器。停止计数,但可作波特率发生器。T0分成两独立定时分成两独立定时/计数计数器器TL0和和TH0。TL0使用使用C/T、GATE、TR0、/INT0、TF0定时定时/计数,计数,TH0使用使用TR1、TF1 因此,只能用于定时因此,只能用于定时TF
38、0中断控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1TL0(8位)振荡器1/12TH0TF1中断(a)TL0作8位定时/计数器(b)TH0作8位定时器模式模式3时,时,T1可定时为模式可定时为模式0、1、2的定时的定时/计数,但不可中断,所计数,但不可中断,所以一般只作串口波特率发生器用。以一般只作串口波特率发生器用。 振荡器1/12TL1(5位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)振荡器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)TLi(8位)THi(8位)振荡器1/12C/T=0C/T=1T1(P3.5
39、)串行口(a) T0模式模式3时时T1模式模式0(b) T0模式模式3时时T1模式模式1(c) T0模式模式3时时T1模式模式2编程前确定参数:编程前确定参数:(1)定时)定时/计数器计数器 T0、T1选择其一;选择其一;(2)工)工 作作 方方 式式 C/T及及GATA;(3)计)计 数数 初初 值值 加加1计数、计数、16位。位。 计数:计数:X=MN;M=213=8192(模式(模式0) M=216=65536(模式(模式1) M=28=256 (模式(模式2、 模式模式3)定时:定时: X=MN =M t/T(t为所要求的为所要求的 定时时间,定时时间,T为机器周期)为机器周期) (4
40、)工)工 作作 模模 式式 M1、M0 四、定时四、定时/计数器的应用计数器的应用编制初始化程序:编制初始化程序:1)写)写TMOD;2)确定)确定IE、IP;3)写计数初值;)写计数初值;4)启动计数()启动计数(TRi) 5151单片机指令系统单片机指令系统例例1. 设计一个能产生设计一个能产生t=1ms的周期信号发生器,的周期信号发生器,试编程试编程(晶振晶振12MHZ)。解:选解:选T0; C/T=0,GATE= 0 N = t / T = t /12(1/fosc)= 500 所以,所以, X = M 500 , 模 式模 式 0 、 模 式、 模 式 1 均 可 , 取 模 式均
41、可 , 取 模 式 0 , M=213=8192 X = 8192500 = 7692 = 1E0CH 5151单片机指令系统单片机指令系统= 0001 1110 000 0 1100B, 1E0CH01100TL011110000TH0F0H0CH先将低五位放入先将低五位放入TL0中,再将剩余的数从右中,再将剩余的数从右向左数出八位放入向左数出八位放入TH0中。中。 LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB
42、ET0 SETB EA SJMP ORG 0000H INSE1: MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI 5151单片机指令系统单片机指令系统例例2. .设设fosc = 6MHz,利用单片机内定时,利用单片机内定时/计数器及计数器及P1.0口线输出口线输出1000个脉冲,脉冲周期为个脉冲,脉冲周期为2mas,试编程。,试编程。 8031 P1.0 T12ms5151单片机指令系统单片机指令系统 T = 121/fosc = 2us 选取选取T0定时;定时;T1计数。计数。 设设T0采用中断方式产生周期为采用中断方式产生周期为2ms方波,方波,T1对
43、该方对该方波计数,当输出至第波计数,当输出至第1000个脉冲时,使个脉冲时,使TF1置置1。 在主程序中用查询方法,检测到在主程序中用查询方法,检测到TF1变变1时,关掉时,关掉T0,停止输出方波。停止输出方波。 5151单片机指令系统单片机指令系统T0、T1参数的确定:参数的确定:T0模式模式0、定时:脉宽为脉冲周期的一半、定时:脉宽为脉冲周期的一半所以,所以,X = 2131ms / 2us = 0001 1110 0000 1100B TH0 = 0F0H ; TL0 = 0CH T1模式模式1、计数:、计数:N = 1000 则则 X = 655361000 = 64536 = 0FC
44、18H (若选模式(若选模式0也可以,此时也可以,此时X = 7192=1C18H) 程序:程序: ORG 0000H LJMP MAIN ORG 000BH LJMP TOS ORG 1000H MAIN: MOV TMOD,#50H;T0定时,模式定时,模式0;T1计数,模式计数,模式1 MOV TL0,#0CH MOV TH0,#0F0H MOV TL1,#18H MOV TH1,#0FCH SETB TR1 SETB TR0 SETB ET0 SETB EA WAIT: JNB TF1,WAIT;查询;查询1000个脉冲计够没有到个脉冲计够没有到? CLR EA CLR ET0 ANL
45、 TCON,#0FH ; 停停T0、T1 SJMP TOS: MOV TL0,#0CH MOV TH0,#0F0H CPL P10 RETI END 5151单片机指令系统单片机指令系统例例3.3. 用定时器用定时器/ /计数器计数器T0T0监视一生产线,监视一生产线,每生产每生产100100个工件,发出一包装命令,包个工件,发出一包装命令,包装成一箱,并记录其箱数。装成一箱,并记录其箱数。 5151单片机指令系统单片机指令系统一、串行通信概述一、串行通信概述1. 1. 什么叫串行通信?什么叫串行通信? 在生活中同学们排横队行走在生活中同学们排横队行走 并行;排纵队行走并行;排纵队行走 串行。
46、串行。计算机中在传输信息、数据时也有并行、串行的问题。计算机中在传输信息、数据时也有并行、串行的问题。0010001001P1.0P1.1P1.2P1.3RXDTXD单片机单片机外设外设1外设外设2111111 0 1 01 0 0 0接收设备接收设备发送设备发送设备2. 同步通信、异步通信同步通信、异步通信 同步发送设备时钟与接收设备时钟严格一致。校验字符校验字符2校验字符校验字符1 数 据数 据 n 数 据数 据 2 数 据数 据 1同步字符同步字符2同步字符同步字符15151单片机指令系统单片机指令系统异步异步 发送时钟与接收时钟不一定相等。发送时钟与接收时钟不一定相等。空闲位空闲位停止
47、位停止位奇偶校验位奇偶校验位58位数据位数据起始位起始位空闲位空闲位5151单片机指令系统单片机指令系统3. 串行通信的方向串行通信的方向单工单工 A 发发 B 发发半双工半双工 A 发发 收收 B 收收 发发例如:广播电台例如:广播电台 收音机收音机例如:例如: 对讲机对讲机5151单片机指令系统单片机指令系统全双工全双工 A 发发 收收 B 收收 发发例如:例如: 电话机电话机5151单片机指令系统单片机指令系统二、二、51单片机串行接口单片机串行接口 MCS-51 MCS-51单片机内部的串行接口是全双工单片机内部的串行接口是全双工的,即它能同时发送和接收数据。这个口的,即它能同时发送和
48、接收数据。这个口既可以用于网络通信,也可以实现串行异既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄存器。在串行口中可供用户使用的是它的寄存器。 4种工作方式,波特率可编程设置,可中种工作方式,波特率可编程设置,可中断。断。 5151单片机指令系统单片机指令系统5151单片机指令系统单片机指令系统图中共有两个串行口的缓冲寄存器(图中共有两个串行口的缓冲寄存器(SBUFSBUF)。)。一个是发送寄存器,一个是接收寄存器。一个是发送寄存器,一个是接收寄存器。串行发送时,从片内总线向发送串行发送时,从片内
49、总线向发送SBUFSBUF写入数写入数据;据;串行接收时,从接收串行接收时,从接收SBUFSBUF向片内总线读向片内总线读出数据。出数据。它们都是可寻址的寄存器,但因为它们都是可寻址的寄存器,但因为发送和接收不能同时进行,所以给这两个寄发送和接收不能同时进行,所以给这两个寄存器赋以同一地址(存器赋以同一地址(99H99H)。)。 5151单片机指令系统单片机指令系统SCON 串行口控制寄存器串行口控制寄存器SM0SM1SM2RENTB8RB8 TI RITI / RI :中断请求标志位(前面已讲过):中断请求标志位(前面已讲过)RB8:接收的第九位数:接收的第九位数TB8:发送的第九位数:发送
50、的第九位数REN:允许接收控制位:允许接收控制位SM2:多机通信控制位(常与:多机通信控制位(常与RB8配合,决定是否激活配合,决定是否激活RI)SM0、SM1:工作方式选择位(四种工作方式):工作方式选择位(四种工作方式)5151单片机指令系统单片机指令系统SMODPCON 电源管理寄存器电源管理寄存器SMOD位用于决定波特率的倍数。位用于决定波特率的倍数。 0 20 = 1倍倍 1 21 = 2倍倍SBUF 串行发送串行发送 / 接收数据缓冲器接收数据缓冲器 是两个物理单元,共用一个地址(是两个物理单元,共用一个地址(99H)5151单片机指令系统单片机指令系统 串行口的工作方式串行口的工
51、作方式(1)方式)方式0:同步移位寄存器方式:同步移位寄存器方式 波特率固定为波特率固定为fosc / 12 RXD 接收发送数据接收发送数据 TXD 产生同步移位脉冲产生同步移位脉冲 接收接收/发送完,置位发送完,置位RI / TI ,(要求,(要求SM2 = 0) D7 D6 D5 D4 D3 D2 D1 D0 D0 D1 D2 D3 D4 D5 D6 D7发送发送接收接收无起始位,无停止位无起始位,无停止位 。可用于并口的扩展。可用于并口的扩展。5151单片机指令系统单片机指令系统(2)方式)方式1:8位位UART 波特率为(波特率为(2SMODT1的溢出率)的溢出率)/ 32 ,可变。
52、,可变。 一帧信息一帧信息10位。位。D0D1D2D3D4D5D6D7停止位停止位起始位起始位发送发送D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收送送 RB8发送完置位发送完置位TI。当接收到数据后,置位当接收到数据后,置位RI是有条件的。即:是有条件的。即:REN = 1,RI = 0 且且SM2 = 0或或SM2 = 1但是接收到的停止位为但是接收到的停止位为1。此时,数据装载此时,数据装载SBUF, RI置置1 ,停止位进入,停止位进入RB8。 5151单片机指令系统单片机指令系统(3)方式)方式2、方式、方式3 :9位位UART 一般一般用于多机通信。一帧信息用于多
53、机通信。一帧信息1111位。位。 D0D1D2D3D4D5D6D7TB8停止位停止位起始位起始位发送发送发送完数据置位发送完数据置位TI。 TB8D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件:REN = 1,RI = 0 且且SM2 = 0或接收到第或接收到第9位数据为位数据为1,此时,数据装载此时,数据装载SBUF,RI置置1,第,第9位数据(位数据(TB8) RB8。 送送RB8方式方式2波特率:(固定)波特率:(固定)2SMOD / 64 fosc5151单片机指令系统单片机指令系统波特率的设置波特率的设
54、置方式方式0、方式、方式2固定。固定。方式方式1,方式,方式3可变。波特率可变。波特率 = 2SMOD / 32 (T1的溢出率)的溢出率)T1溢出率溢出率 = 单位时间内溢出次数单位时间内溢出次数 = 1 /(T1的定时时间)的定时时间)而而T1的定时时间的定时时间t就是就是T1溢出一次所用的时间。此情况下,一般设溢出一次所用的时间。此情况下,一般设T1工作在模式工作在模式2(8位自动重装初值)。位自动重装初值)。 N = 28 t / T, t = (28N)T =(28N)12 / fosc所以,所以,T1溢出率溢出率 = 1/t = fosc / 12(28N),),故,故, 波特率波
55、特率 = 2SMOD / 32 fosc / 12(256N)。)。若已知波特率,则可求出若已知波特率,则可求出T1的计数初值:的计数初值: y = 2562SMODfosc / (波特率(波特率3212) 按选定串行口的操作方式设定按选定串行口的操作方式设定SCONSCON的的SM0SM0、SM1SM1两位二进制编码。两位二进制编码。 对于方式对于方式2 2或或3 3,应根据需要在,应根据需要在TB8TB8中写入待中写入待发送的第发送的第9 9位数据。位数据。 若选定的操作方式不是方式若选定的操作方式不是方式0 0,还需设定发,还需设定发送的波特率:送的波特率:设定设定SMODSMOD的状态,以控制波特率是否加倍。的状态,以控制波特率是否加倍。若选定操作方式若选定操作方式1 1或或3 3,则应对定时器,则应对定时器T1T1进行初进行初始化以设定其溢出率。始化以设定其溢出率。 5151单片机指令系统单片机指令系统5151单片机指令系统单片机指令系统例、若例、若fosc = 6MHz,波特率为,波特率为2400波特,设波特,设SMOD = 1,则定时,则定时/计计数器数器T1的计数初值为多少?并进行初始化编程。的计数初值为多少?并进行初始化编程。 解:解:X= 2562SMODfosc / (24003212)= 242.98243 = F3H f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动会发言稿20字(18篇)
- 小学教师工作业务培训计划范文(4篇)
- 爱国主题诗歌朗诵(8篇)
- 《高效学习方法探索》课件
- 社会实践招生心得体会范文(18篇)
- 《全球知名品牌》课件
- 大一学习心得体会范文(7篇)
- 毕业鉴定表的自我鉴定(20篇)
- 小学政治 (道德与法治)人教部编版四年级下册第一单元 同伴与交往2 说话要算数教案
- 中专署假社会活动实践心得体会(4篇)
- 卫生人才培养方案计划
- 图书馆建筑设计规范讲解课件
- 四川省教师资格认定体检表
- 婚丧嫁娶事宜备案表
- 培养中班幼儿正确使用筷子的研究的结题报告
- 湘教版七年级上册等高线地形图
- 车间改造合同范文
- 风生水起博主的投资周记
- 赛艇赛事活动推广方案
- (通用)中考数学总复习 第三章 函数 第4节 反比例函数课件 新人教
- 屋面开洞施工方案,好(全面完整版)
评论
0/150
提交评论