定时器计数器_第1页
定时器计数器_第2页
定时器计数器_第3页
定时器计数器_第4页
定时器计数器_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2 在测量控制系统中,常需要有实时时钟和计数在测量控制系统中,常需要有实时时钟和计数器,以实现器,以实现定时定时(或延时)控制以及对外界事(或延时)控制以及对外界事件进行件进行计数计数。 常用的定时(或延时)方法有:常用的定时(或延时)方法有: 软件延时软件延时 硬件定时硬件定时 可编程定时器可编程定时器/计数器计数器3 80C51中有两个可编程定时器中有两个可编程定时器/计数器计数器T0、T1。4 定时器定时器/计数器的结构(计数器的结构(以以T0工作于方式工作于方式1为例为例)定时器和计数器是同一个部件,其核心是定时器和计数器是同一个部件,其核心是一个一个可预置初值的可预置初值的1616位

2、加位加1 1计数器计数器( (特殊功特殊功能寄存器能寄存器TH0TH0、TL0)TL0),对输入的脉冲进行对输入的脉冲进行计数计数。TF0TF0:溢出标志,当计数器计:溢出标志,当计数器计到全到全1 1时(时(FFFFHFFFFH),此时,),此时,再来一个计数脉冲,计数器再来一个计数脉冲,计数器清清0 0,产生,产生溢出溢出,TF0TF0由由0 0变为变为1 1。脉冲源脉冲源运行控制电路运行控制电路5 计数器的初值与计数值计数器的初值与计数值初值初值=2=21616- -计数值计数值X X可预置初值可预置初值的加计数器的加计数器初值初值 计数值计数值X FFFFH 1FFFEH 2. . .

3、 . . . . .0001H 655350000H 65536(216) 6工作模式工作模式 计数计数:对输入引脚:对输入引脚T0(P3.4)、)、T1(P3.5)的)的脉冲进行计数。脉冲进行计数。 计数次数计数次数X=216-计数初值计数初值 定时定时:将时钟脉冲经:将时钟脉冲经12分频后的脉冲(即机器周期分频后的脉冲(即机器周期脉冲)作为计数的脉冲源。脉冲)作为计数的脉冲源。 定时时间定时时间Tc=X TM=(216-初值)初值) 12/fosc即对机器周期脉冲即对机器周期脉冲TM进行计数。进行计数。 二者的主要区别在于计数脉冲的来源不同。二者的主要区别在于计数脉冲的来源不同。 7定时器

4、定时器/计数器的运行控制计数器的运行控制运行控制位运行控制位门控位门控位GATE=0GATE=0“控制控制”=TR0=TR0GATE=1GATE=1“控制控制”=TR0=TR0 INT0INT082.定时器定时器/计数器的控制寄存器计数器的控制寄存器(1)定时器控制寄存器)定时器控制寄存器TCONTCON可位寻址!可位寻址!TF1TR1TF0TR0IE1IT1IE0IT0定时器定时器/计数器计数器T0溢出标溢出标志,计数器溢出时,志,计数器溢出时,TF0置置“1”,可用于软件查询,可用于软件查询或向或向CPU申请中断。申请中断。定时器定时器/计数器计数器T0的运行控的运行控制位,当制位,当GA

5、TE=0时,只时,只要要TR0=1,T0就开始工作。就开始工作。9(2)定时器工作方式寄存器)定时器工作方式寄存器TMODTMOD不可位寻址!不可位寻址!用于用于T1用于用于T0GATEC/T M1 M0 GATEC/T M1 M0门控位门控位计数计数/定时选择位定时选择位“1”-计数计数“0”-定时定时M1M0:工作方式选择位:工作方式选择位00:方式:方式0-13位计数器位计数器01:方式:方式1-16位计数器位计数器10:方式:方式2-两个两个8位计数器位计数器 自动重装初值自动重装初值11:方式:方式3-仅仅T0可用可用10(1)定时器定时器/计数器的应用步骤计数器的应用步骤 合理选择

6、定时器的工作方式合理选择定时器的工作方式 计算计数初值计算计数初值计数:计数初值计数:计数初值=216-计数值计数值X 定时:计数初值定时:计数初值=216-定时时间定时时间Tc/机器周期机器周期TM =216-Tc fosc/12 编写应用程序编写应用程序定时器定时器/计数器的初始化:定义计数器的初始化:定义TMOD、写入定、写入定时初值、设置中断系统、启动定时器运行。时初值、设置中断系统、启动定时器运行。定时器定时器/计数器的中断服务程序。计数器的中断服务程序。11(2)定时器定时器/计数器应用举例计数器应用举例例:利用定时器例:利用定时器T0定时,在定时,在P1.0引脚输出周期为引脚输出

7、周期为1毫毫秒(频率为秒(频率为1KHz)的方波信号。()的方波信号。(fosc=6MHz)分析:分析:按题义,就是要将按题义,就是要将P1.0的输出信号每间隔的输出信号每间隔500 s翻翻转一次。选择转一次。选择T0工作于定时、方式工作于定时、方式1、定时时间为、定时时间为500 s。TMOD=0000 0001B=01H计算初值计算初值fosc=6MHz 机器周期机器周期TM=2 s 要定时要定时500 s 即要计即要计250个机器周期脉冲个机器周期脉冲初值初值=216-250=65286=FF06H12 ORG 0000H LJMP MAIN;转主程序;转主程序 ORG 000BH;T0

8、中断服务程序入口地址中断服务程序入口地址 LJMP T0 ;转;转T0中断服务程序中断服务程序 ORG 0030H ;主程序;主程序MAIN:MOV SP,#60H;设置堆栈指针;设置堆栈指针 MOV TMOD,#01H;T0工作于定时、方式工作于定时、方式1 MOV TH0,#0FFH MOV TL0,#06H ;置定时器初值;置定时器初值 SETB EA ;中断总允许;中断总允许 SETB ET0 ;允许;允许T0中断中断 SETB TR0 ;启动;启动T0运行运行 SJMP $ ;实际应用中,这里应是其他程序;实际应用中,这里应是其他程序13T0:MOV TL0,#06H ;中断服务程序

9、,从;中断服务程序,从000BH跳转跳转 ;过来;过来 MOV TH0,#0FFH ;重新装入初值;重新装入初值 CPL P1.0 ;输出取反;输出取反 RETI ;中断返回;中断返回14工作方式工作方式0-13位计数器方式位计数器方式工作方式工作方式1-16位计数器方式位计数器方式工作方式工作方式2-8位自动重装初值方式位自动重装初值方式工作计数器工作计数器存放初值存放初值溢出的同时,将溢出的同时,将初值重新装入。初值重新装入。15工作方式工作方式计数位数计数位数最大计数值最大计数值最大定时时最大定时时间间定时初值计算公定时初值计算公式式计数初值计算公式计数初值计算公式方式方式013213=

10、8192213 TM213- -Tc/TM213- -计数值计数值X方式方式116216=65536216 TM216- -Tc/TM216- -计数值计数值X方式方式2828=25628 TM28- -Tc/TM28- -计数值计数值X16工作方式工作方式3-仅仅T0可用可用占用占用T1资源:资源:TR1、TF1,只,只能作为能作为8位定时器使用位定时器使用使用使用T0的控制寄存器资源的控制寄存器资源17T0方式方式3下的下的T1工作方式:工作方式:用作串行口用作串行口波特率发生器波特率发生器设置好工作方式设置好工作方式就开始运行就开始运行18工作方式工作方式2的应用的应用例:例:利用定时器

11、利用定时器T0定时,在定时,在P1.0引脚输出周期引脚输出周期为为1ms(频率为(频率为1KHz)的方波信号。)的方波信号。(fosc=6MHz)分析:分析:选择选择T0工作于定时、方式工作于定时、方式2、定时时间为、定时时间为500 s。TMOD=0000 0010B=02H计算初值计算初值fosc=6MHz 机器周期机器周期TM=2 s 要定时要定时500 s 即要计数即要计数250个机器周期脉冲个机器周期脉冲初值初值=28-250=6=06H19 ORG 0000H LJMP MAIN;转主程序;转主程序 ORG 000BH;T0中断服务程序入口地址中断服务程序入口地址 LJMP T0

12、;转;转T0中断服务程序中断服务程序 ORG 0030H ;主程序;主程序MAIN:MOV SP,#60H;设置堆栈指针;设置堆栈指针 MOV TMOD,#02H;T0工作于定时、方式工作于定时、方式2 MOV TL0,#06H ;置定时器初值;置定时器初值 MOV TH0,#06H ;置定时器重装初值;置定时器重装初值 SETB EA ;CPU允许中断允许中断 SETB ET0 ;允许;允许T0中断中断 SETB TR0 ;启动;启动T0运行运行 SJMP $ ;实际应用中,这里应是其他程序;实际应用中,这里应是其他程序20 ;中断服务程序,从;中断服务程序,从000BH跳转过来跳转过来T0

13、:CPL P1.0 ;输出取反;输出取反 RETI ;中断返回;中断返回 使用方式使用方式2的好处就是它可以自动重新装入初的好处就是它可以自动重新装入初值,定时时间比较精确。但是,定时时间短。值,定时时间比较精确。但是,定时时间短。21如何延长定时时间?如何延长定时时间?定时器最大定时时间:定时器最大定时时间:方式方式1:Tcmax=216 TM方式方式2:Tcmax=28 TM 为了实现长时间的定时(如为了实现长时间的定时(如1S),我们引进),我们引进软软件计数器件计数器的概念,思路是这样的,先用定时器的概念,思路是这样的,先用定时器/计数计数器做一个器做一个500微微秒的定时器,再设置一

14、个秒的定时器,再设置一个2000次的次的软件计数器,每次定时时间到了以后将软件计数器中软件计数器,每次定时时间到了以后将软件计数器中的值加的值加1,如果软件计数器未计满,如果软件计数器未计满2000次就直接返次就直接返回,若计满回,若计满2000次(中断了次(中断了2000次),定时时间次),定时时间就延长成了就延长成了 500 s 2000=1S22例:电子钟程序。例:电子钟程序。 利用定时器利用定时器T0定时,模拟定时,模拟24小时走时的电子小时走时的电子钟,时、分、秒以钟,时、分、秒以BCD码形式依次存放在码形式依次存放在3CH、3BH、3AH;38H、39H作为软件作为软件计数器。计数

15、器。选择选择T0工作于定时、方式工作于定时、方式2、定时时间为、定时时间为500 s。TMOD=0000 0010B=02H计算初值计算初值fosc=6MHz 机器周期机器周期TM=2 s 要定时要定时500 s 即要计数即要计数250个机器周期脉冲个机器周期脉冲初值初值=28-250=6=06H23 ORG 0000H ;主程序入口;主程序入口 LJMP CLOCK ;转主程序初始化;转主程序初始化 ORG 000BH ;T0T0中断入口中断入口 LJMP T0 ;转转T0T0中断服务程序中断服务程序 ORG 0030H ;主程序初始化程序;主程序初始化程序 CLOCK:MOV SP,#6F

16、H ;设栈底指针;设栈底指针 MOV TMOD,#02H ;T0T0定时方式定时方式2 2 MOV TL0,#06H ;定时(;定时(2562566 6)* *2=5002=500微秒微秒 MOV TH0,#06H MOV 38H,#00H ;软件计数单元清零;软件计数单元清零 MOV 39H,#00H SETB EA ;中断总允许;中断总允许 SETB ET0 ;允许;允许T0中断中断 SETB TR0 ;启动;启动T0工作工作 LOOP: LCALL CZ ;调用拆字子程序;调用拆字子程序 LCALL DISP ;调用显示子程序;调用显示子程序 SJMP LOOP ;反复循环主流程;反复循

17、环主流程 MOV 38H,#200MOV 39H,#1024 ORG 0100H ;T0 500微秒中断服务程序微秒中断服务程序 T0 :PUSH ACC PUSH PSW ;保护现场;保护现场 INC 38H ;每;每500微秒加微秒加1 MOV A,38H CJNE A,#200,DONE ;满满0.1秒?秒? MOV 38H,#0 INC 39H ;每;每0.1秒加秒加1 MOV A,39H CJNE A,#10,DONE ; 满满1S MOV 39H,#0DJNZ 38H,DONEMOV38H,#200DJNZ 39H,DONEMOV39H,#1025 MOV A,3AH ;秒单元(按

18、;秒单元(按BCD码)加码)加1 ADD A,#1 DA A MOV 3AH,A CJNE A,#60H,DONE ;满;满1分钟?分钟? MOV 3AH,#0 ;秒单元清零;秒单元清零 MOV A,3BH ;分钟单元(按;分钟单元(按BCD码)加码)加1 ADD A,#1 DA A MOV 3BH,A CJNE A,#60H,DONE ;满;满1小时?小时? MOV 3BH,#0 ;分钟单元清零;分钟单元清零 26 MOV A,3CH ;小时单元(按;小时单元(按BCD码)加码)加1 ADD A,#1 DA A MOV 3CH,A CJNE A,#24H,DONE ;满;满24小时?小时?

19、MOV 3CH,#0 ;小时单元清零;小时单元清零 DONE:POP PSW POP ACC ;恢复现场;恢复现场 RETI ;中断返回;中断返回27 计数器的应用计数器的应用 注意:外部事件的最高计数频率为时钟频率注意:外部事件的最高计数频率为时钟频率的的1/24( fosc/24)。)。 应用应用例:利用例:利用T1计数,每计满计数,每计满12次,在次,在P1.7输输出一个正脉冲信号。出一个正脉冲信号。选择选择T1工作于计数、方式工作于计数、方式2、计数值为、计数值为12。TMOD=0110 0000B=60H计算初值计算初值初值初值=28-12=244=F4H28 ORG 0000H L

20、JMP MAIN;转主程序;转主程序 ORG 001BH;T1中断服务程序入口地址中断服务程序入口地址 LJMP T1 ;转;转T1中断服务程序中断服务程序 ORG 0030H ;主程序;主程序MAIN:MOV SP,#60H;设置堆栈指针;设置堆栈指针 MOV TMOD,#60H;T1工作于计数、方式工作于计数、方式2 MOV TL1,#0F4H ;置定时器初值;置定时器初值 MOV TH1,#0F4H ;置定时器重装初值;置定时器重装初值 SETB EA ;CPU允许中断允许中断 SETB ET1 ;允许;允许T1中断中断 SETB TR1 ;启动;启动T1运行运行 CLR P1.7 ;P

21、1.7输出低电平输出低电平 SJMP $ ;实际应用中,这里应是其他程序;实际应用中,这里应是其他程序29;T1中断服务程序,从中断服务程序,从001BH转来转来T1:SETB P1.7 CLR P1.7 ;输出正脉冲;输出正脉冲 RETI ;中断返回;中断返回30 门控位的应用门控位的应用例:利用例:利用T0门控位检测出现在门控位检测出现在INT0引脚上的正脉冲宽引脚上的正脉冲宽度。(度。(P115)解:先初始化解:先初始化T0工作于定时器方式工作于定时器方式1,初值为,初值为0,GATE设为设为1,测试过程如下:,测试过程如下: 机器周期脉冲机器周期脉冲TM在在P3.2低电平时低电平时将将

22、TR0置置“1”当当P3.2变为高变为高电平时电平时T0开始开始运行运行当当P3.2变为低电平变为低电平时时T0停止,令停止,令TR0=0,此时,此时,T0计数值计数值 TM即为被测即为被测脉冲宽度。脉冲宽度。31 MOV TMOD,#09H ;T0定时、方式定时、方式1、GATE=1 MOV TL0,#0 MOV TH0,#0 ;定时器初值;定时器初值 SETB P3.2 ;置;置P3.2为输入为输入W1:JB P3.2,W1 ; 等待等待P3.2变为低电平变为低电平 SETB TR0 ;TR0置置1W2:JNB P3.2,W2 ;等待;等待P3.2变为高电平变为高电平W3:JB P3.2,

23、W3 ;等待;等待P3.2变为低电平变为低电平 CLR TR0 ;TR0=0 MOV 70H,TL0 MOV 71H,TH0 ;读计数值(乘以读计数值(乘以TM即为脉冲宽度)即为脉冲宽度) SJMP $32作业:作业:P1466.333 发送 接收 D0 D1 D2 D3 D4 D5 D6 D7 控制 状态 计算机或外设 计算机 计算机 计算机 或外设 (a) 并行通信 (b) 串行通信 10101001 1.串行通信概述串行通信概述 计算机与外界(计算机与计算机之间、计算机计算机与外界(计算机与计算机之间、计算机与外围设备之间)的信息交换称为通信。与外围设备之间)的信息交换称为通信。(1)通

24、信方式通信方式 并行通信并行通信 串行通信串行通信34(2)串行通信方式(按数据格式分)串行通信方式(按数据格式分) 异步通信异步通信 数据通常是以字符数据通常是以字符(或字节或字节)为单位组成为单位组成字符帧字符帧传传送的。发送端和接收端可以有各自的时钟来控制数据送的。发送端和接收端可以有各自的时钟来控制数据的发送和接收,时钟源彼此独立。的发送和接收,时钟源彼此独立。数据位数据位:根据情况可取:根据情况可取5 5位、位、6 6位、位、7 7位或位或8 8位,低位在前高位在后。位,低位在前高位在后。停止位停止位:通常:通常可取可取1 1位、位、1.51.5位或位或2 2位,用于位,用于向接收端

25、表示向接收端表示一帧字符信息一帧字符信息已发送完毕,已发送完毕,也为发送下一也为发送下一帧字符作准备。帧字符作准备。35 同步通信同步通信 同步 字符 1 同步 字符 2 数据 1 数据 2 校验 字符 2 校验 字符 1 数据 n (b) 双同步字符帧结构 同步 字符 数据 1 数据 2 数据 3 (a) 单同步字符帧结构 数据 n 校验 字符 1 校验 字符 2 n在同步通信中,同步字符可以采用统一标准字符,也可由在同步通信中,同步字符可以采用统一标准字符,也可由用户约定。用户约定。l在在单同步字符帧单同步字符帧结构中,同步字符常采用结构中,同步字符常采用ASCIIASCII码中规定码中规

26、定的的SYN(SYN(即即16H)16H)代码;代码;l在在双同步字符帧双同步字符帧结构中,同步字符一般采用国际通用标准结构中,同步字符一般采用国际通用标准代码代码EB90HEB90H。36 异步通信与同步通信的特点l异步通信的优点:不需要传送同步脉冲,字符帧长度也不受限制,故所需设备简单。l异步通信的缺点:字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。l同步通信的优点:传输速率较高,通常可达56000bit/s或更高。l同步通信的缺点:要求发送时钟和接收时钟保持严格同步,故发送时钟除应和发送波特率保持一致外,还要求把它同时传送到接收端去。 37(3)串行通信的数据传送方向(制式)

27、串行通信的数据传送方向(制式) 单工(单工(Simplex)方式)方式 半双工(半双工(Half Duplex)方式)方式 全双工(全双工(Full Duplex)方式)方式发送器发送器接收器接收器发送器发送器接收器接收器发送器发送器接收器接收器发送器发送器接收器接收器发送器发送器接收器接收器38(4)波特率)波特率(baud rate)l波特率是串行通信的重要指标,用于表征数据传输的波特率是串行通信的重要指标,用于表征数据传输的速度,定义为每秒钟传送二进制数码的位数速度,定义为每秒钟传送二进制数码的位数(bit)(bit),单位是单位是波特波特,即,即1 1波特波特=1=1bit/sbit/

28、s(bps)bps)。 例例 某异步通信的传输速率为某异步通信的传输速率为72007200字符帧字符帧/ /分钟,分钟,每个字符帧的长度为每个字符帧的长度为1010位。则传输速率为:位。则传输速率为:7200 10 位位 60秒秒=1200bps 每位传输时间(位宽):每位传输时间(位宽):d10.833(ms)1200T 39(5)串行通信的差错校验)串行通信的差错校验 奇偶校验奇偶校验 发送数据时,数据后尾随一位奇偶校验位(发送数据时,数据后尾随一位奇偶校验位(0或或1)。当设置为奇校验时,数据中)。当设置为奇校验时,数据中1的个数与校验的个数与校验位位1的个数之和应为奇数;当设置为偶校验

29、时,数据的个数之和应为奇数;当设置为偶校验时,数据中中1的个数与校验位的个数与校验位1的个数之和应为偶数。的个数之和应为偶数。 接收时,接收方采用与发送方一样的差错校验接收时,接收方采用与发送方一样的差错校验方法对接收到的数据进行校验。方法对接收到的数据进行校验。 和校验和校验 发送方对发送的数据块求和,产生一个字节的发送方对发送的数据块求和,产生一个字节的校验和,并将其尾随数据块发送;接收方将接收的校验和,并将其尾随数据块发送;接收方将接收的数据求和,将结果与发送方发送的数据求和,将结果与发送方发送的“校验和校验和”进行进行比较以判断是否出错。比较以判断是否出错。40(6)串行通信接口电路)

30、串行通信接口电路n串行接口电路的种类:能够完成异步通信的硬件电路称为UART,即通用异步接收器/发送器(Universal Asynchronous Receive/Transmitter);能够完成同步通信的硬件电路称为USRT(Universal Synchronous Receive/Transmitter);既能异步又能同步通信的硬件电路称为USART (Universal Synchronous Asynchronous Receive/Transmitter)。n工作原理:所有的串行接口电路都是以并行数据形式与CPU接口、而以串行数据形式与外部逻辑接口传送数据。它们的基本功能都是从

31、外部逻辑接收串行数据,转换成并行数据后传送给CPU,或从CPU接收并行数据,转换成串行数据后输出给外部逻辑。 4142 发送 SBUF(99H) 接收 SBUF(99H) 输入移位寄存器 RI(接收中断) RxD 串行输入 8051 内部总线 TxD 串行输出 移位 时钟 TI(发送中断) (1)结构)结构: MCS-51MCS-51有两个独立的有两个独立的接收、发送缓冲器接收、发送缓冲器SBUF(SBUF(属属于特殊功能寄存器于特殊功能寄存器) ),一个用作发送,一个用作接收。发送缓冲,一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共器只能写入不能读

32、出;接收缓冲器只能读出不能写入,两者共用一个字节地址用一个字节地址(99(99H)H)。A43(2)串行口控制寄存器)串行口控制寄存器SCON用于串行通信的方式选择、接收和发送控制以及串行用于串行通信的方式选择、接收和发送控制以及串行口的状态标志指示。口的状态标志指示。 SM0 SM1-串行口工作方式选择位串行口工作方式选择位D7D6D5D4D3D2D1D0SM0 SM1 SM2 RENTB8RB8TIRISM0SM1工作方式工作方式功能描述功能描述波特率波特率0 00 11 01 1方式方式0方式方式1方式方式2方式方式38位同步移位寄存器位同步移位寄存器10位位UART11位位UART11

33、位位UARTfosc/12可变(定时器控制)可变(定时器控制)fosc/64、fosc/32可变(定时器控制)可变(定时器控制)44 SM2:多机通信控制位 主要用于方式2和方式3。当串行口以方式2和方式3接收数据时: SM2=1,则只有在接收到的第9位数据(RB8)为1时才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则将接收到的前8位数据丢弃。 SM2=0,则不论第9位数据是0还是1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。 REN:允许接收控制位 REN=0时禁止串行口接收。 REN=1时允许串行口接收。该位由软件置位或复位。45 TB8:

34、发送数据位在方式2或方式3时,TB8是发送数据的第9位,根据发送数据的需要由软件置位或复位。可作为奇偶校验位(单机通信)。可在多机通信中作为发送地址帧或数据帧的标志位。多机通信时,一般约定:发送地址帧时,设置TB8=1;发送数据帧时,设置TB8=0。在方式0和方式1中,该位未用。 RB8:接收数据位在方式2和方式3时,存放接收数据的第9位。可以是约定的奇偶校验位。可以是约定的地址/数据标志位,可根据RB8被置位的情况对接收到的数据进行某种判断。在多机通信时,若RB8=1,说明收到的数据为地址帧;RB8=0,说明收到的数据为数据帧。在方式1下,若SM2=0,则RB8用于存放接收到的停止位方式;方

35、式0下,该位未用。 46 TI:发送中断标志位用于指示一帧数据发送完否。方式0下,发送电路发送完第8位数据时,TI由硬件置位。在其他方式下,TI在发送电路开始发送停止位时置位,这就是说:TI在发送前必须由软件复位,发送完一帧后由硬件置位。因此,CPU查询TI状态便可知一帧信息是否已发送完毕。 RI:接收中断标志位用于指示一帧信息是否接收完。在方式1下,RI在接收电路接收到第8位数据时由硬件置位。在其他方式下,RI是在接收电路接收到停止位的中间位置时置位的,RI也可供CPU查询,以决定CPU是否需要从SBUF中提取接收到的字符或数据。RI也由软件复位。 47(3)电源控制寄存器)电源控制寄存器P

36、CON SMOD-串行口波特率倍增位串行口波特率倍增位 PCON不可位寻址。可用下列指令设置不可位寻址。可用下列指令设置SMOD位:位:ANL PCON,#7FH;SMOD=0ORL PCON,#80H;SMOD=1D7D6D5D4D3D2D1D0SMOD-GF1 GF0PDIDL48(1)串行工作方式)串行工作方式0 工作原理工作原理 串行口作为同步移位寄存器使用;串行口作为同步移位寄存器使用; 以以RXD(P3.0)端作为数据移位的输入端和输出)端作为数据移位的输入端和输出端;端;TXD(P3.1)端输出移位脉冲;)端输出移位脉冲; 8位为一帧,不设起始位和停止位,低位在前,高位为一帧,不

37、设起始位和停止位,低位在前,高位在后;帧格式如下:位在后;帧格式如下: 每个机器周期发送或接收一位,故波特率为每个机器周期发送或接收一位,故波特率为fosc/12;. . .D0D1D2D3D4D5D6D7. . .49 发送时,只需将数据写入串行口缓冲寄存器发送时,只需将数据写入串行口缓冲寄存器SBUF,即启动发送,串行口把即启动发送,串行口把8位数据以位数据以fosc/12的波特的波特率从率从RXD端送出(低位在前),发送完置中断标志端送出(低位在前),发送完置中断标志TI为为“1”; 接收时,软件置接收时,软件置REN=1时,串行口即开始从时,串行口即开始从RXD端端以以fosc/12波

38、特率输入数据(低位在前),当接收波特率输入数据(低位在前),当接收到到8位数据时,置中断标志位数据时,置中断标志RI为为“1”,用户可从,用户可从SBUF读数据。读数据。 应用应用 串行工作串行工作方式方式0常用于扩展常用于扩展I/O接口接口。 应用举例应用举例50例:用例:用8位串入并出移位寄存器位串入并出移位寄存器74HC164扩展并扩展并行输出接口。行输出接口。74HC164串行数据串行数据输入端输入端同步时钟输入端同步时钟输入端清除端清除端D7D6D5D4D3D2D1D0D7 D6 D5 D4 D3 D2 D1 D0并行数据并行数据输出端输出端3 4 5 6 10 11 12 132

39、7 8 9 141QAQBQCQDQEQFQGQHGND CLK CLR VCCAB74HC16451扩展电路扩展电路52上图中,假设上图中,假设N=8,将片内,将片内RAM 30H37H的的数据依次从数据依次从74HC164(1)(8)输出。)输出。 TX:MOV R0,#37H;指向最先发送的数据;指向最先发送的数据MOV R7,#8;数据个数;数据个数MOV SCON,#00H;设串行口方式;设串行口方式0TX0:MOV A,R0;取数据;取数据MOV SBUF,A;启动串行口发送;启动串行口发送TX1:JNB TI,TX1;等待一帧发送结束;等待一帧发送结束CLR TI;清串行口发送中

40、断标志;清串行口发送中断标志DEC R0;指向下一个待发送数据;指向下一个待发送数据DJNZ R7,TX0;未发送完则继续;未发送完则继续RET53例:用例:用8位并入串出移位寄存器位并入串出移位寄存器74HC165扩展并扩展并行输出接口。行输出接口。级联时级联时串行数串行数据输入据输入端端时钟输入端时钟输入端预置控制端,低电平时并行预置控制端,低电平时并行数据置入内部寄存器;高电数据置入内部寄存器;高电平时可以进行串行移位。平时可以进行串行移位。SIND0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7串行数据串行数据输出端输出端并行数据并行数据输入端输入端54扩展电路扩展电路P

41、1.0SINSIN55上图中,假设上图中,假设N=8,将,将74HC165(1)(8)输入的)输入的数据依次存放在片内数据依次存放在片内RAM 30H37H单元。单元。 RX:MOV R0,#30H MOV R7,#8 CLR P1.0 ;并行置入数据;并行置入数据 SETB P1.0 ;允许串行移位;允许串行移位RX0:MOV SCON,#10H;设串行口方式;设串行口方式0并启动接收并启动接收RX1:JNB RI,RX1;等待接收一帧数据;等待接收一帧数据 CLR RI MOV R0,SBUF;取缓冲器数据;取缓冲器数据 INC R0 DJNZ R7,RX0;若未接收完则继续;若未接收完则

42、继续 RET56 工作原理工作原理 串行口作为通用异步接收和发送器(串行口作为通用异步接收和发送器(UART)使用;)使用; 10位为一帧,帧格式如下:位为一帧,帧格式如下: 定时器定时器T1作为波特率发生器,通常选用方式作为波特率发生器,通常选用方式2(自动(自动重装入初值方式)、定时、禁止中断;重装入初值方式)、定时、禁止中断;. .0D0D1D2D3D4D5D6D71. .起始位起始位停止位停止位57 波特率波特率=T1溢出率溢出率 2SMOD/32 T1溢出周期溢出周期=(256-初值)初值) 12/fosc T1溢出率溢出率=fosc/12 (256-初值初值)波特率波特率=2SMO

43、D fosc/384 (256-初值)初值)则定时器则定时器T1方式方式2的初值为:的初值为:初值初值=256- 2SMOD fosc/384 波特率波特率 发送时,数据从引脚发送时,数据从引脚TXD输出,当数据写入串行口缓输出,当数据写入串行口缓冲寄存器冲寄存器SBUF,即启动发送,发送完一帧数据置中,即启动发送,发送完一帧数据置中断标志断标志TI为为“1”; 接收时,软件置接收时,软件置REN=1时,串行口即开始采样时,串行口即开始采样RXD端,当检测到起始位时开始接收一帧数据,接收到停端,当检测到起始位时开始接收一帧数据,接收到停止位时置中断标志止位时置中断标志RI为为“1”,用户可从,

44、用户可从SBUF读数读数据。据。58【例】【例】 由内部由内部RAMRAM单元单元30H30H4FH4FH取出取出ASCIIASCII码数据,在最高位上码数据,在最高位上加奇偶校验位后由串行口输出,采用加奇偶校验位后由串行口输出,采用1010位异步通信,波特率为位异步通信,波特率为12001200bit/sbit/s,f foscosc=11.0592MHz=11.0592MHz。解:由题意可知,应把串行口置为方式解:由题意可知,应把串行口置为方式1 1;采用定时器;采用定时器T1T1,以方,以方式式2 2工作,作波特率发生器,预置值工作,作波特率发生器,预置值( (TH1)=(TL1)=0E

45、8HTH1)=(TL1)=0E8H。初值初值=256- 2SMOD fosc/384 波特率波特率 =256-20 11059200/(384 1200) =256-24 =0E8H59TX:TX:MOV C,PMOV C,P; ;设置奇校验位设置奇校验位CPL C CPL C MOV ACC.7,CMOV ACC.7,CMOV SBUF,AMOV SBUF,A; ;启动串行口发送启动串行口发送JNB TI,$JNB TI,$; ;等待发送完等待发送完CLR TI CLR TI ; ;清清TITI标志标志, ,允许再发送允许再发送RET RET MOV TMOD,#20HMOV TMOD,#2

46、0H; ;设设T1T1为模式为模式2 2MOV TL1,#0E8HMOV TL1,#0E8H; ;装入时间常数装入时间常数MOV TH1,#0E8HMOV TH1,#0E8HSETB TR1SETB TR1; ;启动定时器启动定时器T1T1MOV SCON,#40HMOV SCON,#40H; ;设串行口为方式设串行口为方式1 1MOV R0,#30HMOV R0,#30H; ;发送数据首地址发送数据首地址MOV R7,#32MOV R7,#32; ;发送个数发送个数LOOP:LOOP:MOV A,R0MOV A,R0; ;发送数据送累加器发送数据送累加器A ALCALL TXLCALL TX

47、; ;调发送子程序调发送子程序INC R0INC R0; ;指向下一步个地址指向下一步个地址DJNZ R7,LOOPDJNZ R7,LOOP60 工作原理工作原理 串行口作为通用异步接收和发送器(串行口作为通用异步接收和发送器(UART)使用;)使用; 11位为一帧,帧格式如下:位为一帧,帧格式如下:可编程位(第可编程位(第9数据位)数据位)D8由软件置由软件置“1”或清或清“0”,可作检验位,也可作它用。发送方发送时将可作检验位,也可作它用。发送方发送时将TB8装装入入D8,接收方接收时将,接收方接收时将D8装入装入RB8; 波特率波特率=2SMOD fosc/64. .0D0D1D2D3D4D5D6D7D81 . .起始位起始位停止位停止位61 工作原理工作原理 串行工作方式串行工作方式3的波特率与方式的波特率与方式1相同;其他功相同;其他功能与方式能与方式2完全相同。完全相同。624.MCS-51串行通信应用串行通信应用 双机串行通信技术双机串行通信技术 如果两个如果两个8031应用系统相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论