1、第第3 3章章 5151系列单片机内部功能系列单片机内部功能3.1 3.1 定时器定时器/计数器功能计数器功能3.1.1 3.1.1 定时器定时器/计数器计数器T0T0、T1T1的结构及原理的结构及原理11.161.16位计数寄存器位计数寄存器TH0,TL0,TH0,TL0,和和TH1,TL1TH1,TL1分别为分别为T0T0和和T1T1的高低的高低8 8位位,属于字节寻址的可读属于字节寻址的可读/写寄存器写寄存器.(1)(1)计数器方式:计数器方式:1616位计数寄存器对位计数寄存器对T1T1和和T0T0引脚的输入脉冲引脚的输入脉冲 计数计数(第二功能输入第二功能输入).).(2)(2)定时
2、器方式:定时器方式:1616位计数寄存器对内部机器周期计数,此位计数寄存器对内部机器周期计数,此 即定时器的实质即定时器的实质.22.2.模式控制寄存器模式控制寄存器TMOD TMOD(位定义位定义)定时器定时器/计数器的工作模式计数器的工作模式 (4(4种种)33.3.工作控制寄存器工作控制寄存器TCON TCON(位定义位定义)TR1(TR0):TR1(TR0):运行控制位,软件置运行控制位,软件置1 1和清和清0.0.TF1(TF0):TF1(TF0):溢出中断标志,硬件置溢出中断标志,硬件置1 1软件清软件清0;0;在中断服务程序中由硬件自动清在中断服务程序中由硬件自动清0.0.字节低
3、字节低4 4位:位:外部中断用外部中断用.43.1.2 3.1.2 定时器定时器/计数器计数器T0T0、T1T1的工作模式的工作模式1.1.工作模式工作模式0 0(13(13位计数器位计数器)1)1)定时方式:定时方式:软件置软件置C/T=0,S1C/T=0,S1向上向上,对机器周对机器周期期T TCYCY计数计数,计数值为计数值为N,THXN,THX和和TLXTLX预置值为预置值为X,X,定时时间为定时时间为 T T N N Tcy Tcy(8192(8192X X)TcyTcy5 2)2)计数方式:计数方式:软件置软件置C/T=1,S1C/T=1,S1向下向下,对对T TX X 脚脚的的
4、外部脉冲计数外部脉冲计数,THX,THX和和TLXTLX预置值为预置值为X X,计数值计数值N N为为 N N 2 21313X X 81928192X X 3)3)软件置软件置GATE=0GATE=0,与门输出取决于与门输出取决于:TRx=1,:TRx=1,则则S2S2 闭合并启动计数闭合并启动计数;TRx=0,;TRx=0,则则S2S2断开断开,计数停止计数停止.4)4)软件置软件置GATE=1GATE=1,属门控方式:仅当属门控方式:仅当 TRx=1TRx=1且且 INTx INTx 脚出高电平脚出高电平,则或门、与门出高电平则或门、与门出高电平,使使S2S2闭合闭合,定时定时/计数器启
5、动计数器启动(可判定可判定上升沿上升沿);INTx INTx 脚出低电平脚出低电平,则或门则或门、与门出低电平与门出低电平,使使S2S2断开断开,定时定时/计数器停止计数器停止(可判定可判定下降沿下降沿).).62.2.工作模式工作模式1 1(16(16位计数器位计数器)与模式与模式0 0的差别在于的差别在于TLxTLx和和THxTHx均为均为8 8位计数器位计数器,定时时间定时时间为:为:T T N N Tcy Tcy(2(21616X X)TcyTcy 对对12MHz12MHz晶振,定时范围为晶振,定时范围为(1(165536uS)65536uS);计数值计数值为:为:N N=2=2161
6、6X X 6553665536X X 对对12MHz12MHz晶振晶振,计数范围为计数范围为1 165536.65536.73.3.工作模式工作模式2 2(又称自动重装又称自动重装8 8位初值模式位初值模式)TLxTLx作作8 8位计数器位计数器,THxTHx作自动重装初值寄存器作自动重装初值寄存器,TLxTLx计数溢出使计数溢出使TFxTFx置位,同时把置位,同时把THxTHx的初值自的初值自动送入动送入TLxTLx重新计数重新计数.定时时间定时时间为:为:T T N N T TCYCY (256(256X X)T TCYCY84.4.工作模式工作模式3 3(仅限于定时仅限于定时/计数器计数
7、器T0)T0)TH0TH0借用了借用了T1T1的启动位的启动位TR1TR1和溢出标志和溢出标志TF1TF1.93.1.3 3.1.3 定时器定时器/计数器计数器T2 T2(52(52子系列子系列)1.1.模式控制寄存器模式控制寄存器T2MOD T2MOD(定义定义)(1)(1)DCENDCEN:置置T2T2向上向上/向下计数的使能位向下计数的使能位.(2)T2OE(2)T2OE:使使T2T2输出可编程时钟的使能位输出可编程时钟的使能位.增加两个增加两个SFR:SFR:T2MODT2MOD用于模式控制用于模式控制(同同TMOD);TMOD);T2CONT2CON用于工作控制用于工作控制(同同TC
8、ON).TCON).还设有捕获寄还设有捕获寄存器存器RCAP2LRCAP2L(低字节低字节)和和 RCAP2HRCAP2H(高字节高字节).).引引脚脚T2EXT2EX(P1.1(P1.1口口)为外部触发信号输入端为外部触发信号输入端.102.2.工作控制寄存器工作控制寄存器T2CON T2CON(定义定义)(每位的详细含义见书本每位的详细含义见书本P.62P.62)3.3.数据寄存器数据寄存器TH2TH2、TL2 TL2 分别构成分别构成1616位计数寄存器的高位计数寄存器的高8 8位和低位和低8 8位位.4.4.捕获寄存器捕获寄存器RCAP2HRCAP2H、RCAP2L RCAP2L 分别
9、构成分别构成1616位捕获寄存器的高位捕获寄存器的高8 8位和低位和低8 8位位.115.T25.T2的三种运作方式的三种运作方式1)1)RCLKRCLK或或TCLK=1,TCLK=1,T2T2的溢出脉冲作串行通信的溢出脉冲作串行通信.2)2)EXEN2=0,EXEN2=0,作作1616位定时器位定时器,TF2TF2请求中断请求中断;且且 RCAP2HRCAP2H、RCAP2LRCAP2L的预制值重装的预制值重装TH2TH2、TL2TL2.3)3)C/T2=0C/T2=0作定时器用作定时器用.123.1.4 3.1.4 定时器定时器/计数器的初始化计数器的初始化1.1.初始化的主要步骤初始化的
10、主要步骤1 1)对)对TMODTMOD寄存器写入控制字寄存器写入控制字,确定工作模式确定工作模式.2 2)对)对THxTHx、TLxTLx预置初值预置初值.3 3)按需要置中断方式、中断入口)按需要置中断方式、中断入口,允许中断允许中断.4 4)启动)启动TRxTRx 汇编语言的定时器汇编语言的定时器/计数器计数器初始化初始化参考程序:参考程序:MOV TMODMOV TMOD,#xxH#xxH ;选择工作模式选择工作模式 MOV THxMOV THx,#xx#xx ;预置初值高字节预置初值高字节 MOV TLxMOV TLx,#xx#xx ;预置初值低字节预置初值低字节 SETB ETx S
11、ETB ETx ;定时器定时器/计数器计数器TxTx中断允许中断允许 SETB EA SETB EA ;全局中断允许全局中断允许 SETB TRx SETB TRx ;启动定时器启动定时器/计数器计数器TxTx132.2.预置初值的计算预置初值的计算 (见书见书P.63)P.63)注意注意:方式方式0(130(13位定时位定时)预置值的预置值的1616进制取值进制取值.3.3.延时子程序的时间估算延时子程序的时间估算 (周期和次数之和周期和次数之和)14汇编语言的延时子程序参考语句:汇编语言的延时子程序参考语句:现设现设R6R6、R7R7两层计数循环两层计数循环(可按需要设多层可按需要设多层)
12、.).上述例子需上述例子需总机器周期总机器周期:(248(2482)2)3)3)2002003 39980399803 对对6MHz6MHz晶振晶振,总延时总延时:99803998032 2s s199606199606s s154.4.利用门控位利用门控位GATEGATE测量脉冲宽度测量脉冲宽度汇编语言测量高电平脉冲汇编语言测量高电平脉冲宽度宽度参考程序:参考程序:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG ORG 0030H 0030HMAIN:MOV SP,#60HMAIN:MOV SP,#60H ;设堆栈设堆栈 MOV TMOD,#09HMO
13、V TMOD,#09H ;T0 ;T0模式模式1,1,门控门控GATE=1GATE=1 MOV TH0,#00H MOV TH0,#00H ;时间常数初值时间常数初值 MOV TL0,#00HMOV TL0,#00H16注:注:INT0INT0脚出高电平脚出高电平,TOTO才开始计数;才开始计数;INT0INT0脚出低电平脚出低电平,TOTO立即停止计数;立即停止计数;测量结果以机器周期分别存在测量结果以机器周期分别存在R0R0和和R1R1中中.173.2 3.2 中断系统功能中断系统功能中断系统组成要素如下:中断系统组成要素如下:(1)(1)中断源中断源(5151子系列子系列5 5个个,52
14、,52子系列子系列6 6个个).).(2)(2)中断响应和中断返回中断响应和中断返回.(3)(3)优先级控制优先级控制.(4)(4)中断嵌套中断嵌套(有二级有二级,低级能被高级嵌套低级能被高级嵌套).).183.2.1 3.2.1 中断源和中断向量中断源和中断向量1.1.外部中断源外部中断源 (2(2个个,2,2触发方式触发方式,由由TCONTCON定义定义)(1)(1)IT0(IT1)IT0(IT1)外部中断外部中断0(1)0(1)触发方式控制位触发方式控制位.IT0(IT1)=0,IT0(IT1)=0,属属低电平低电平触发触发.19IT0(IT1)=1,IT0(IT1)=1,属属下降沿下降
15、沿触发触发.(2)(2)IE0(IE1)IE0(IE1)外部中断外部中断0(1)0(1)中断请求标志位中断请求标志位.*检测到外中断引脚检测到外中断引脚低电平低电平时时,直接触发外部直接触发外部 中断中断,需用外部方法消除低电平;需用外部方法消除低电平;*检测到外中断引脚检测到外中断引脚负跳变负跳变时时,由硬件置位中由硬件置位中 断标志位断标志位IE0(IE1),IE0(IE1),在中服中自动清标志在中服中自动清标志.202.2.内部中断源内部中断源 (4(4个个)包括包括T0,T1,T2T0,T1,T2溢出中断溢出中断,串行口收串行口收/发中断发中断.中断标志位在中断标志位在SFRSFR中的
16、分布如下:中的分布如下:注注:TF0TF0,TF1TF1,TF2TF2溢出中断能硬件自动清零;溢出中断能硬件自动清零;串行口串行口TITI(发送发送),),RIRI(接受接受)中断需软件清零中断需软件清零.213.3.中断向量中断向量 (6(6种种)响应中断后响应中断后,把向量地址装入把向量地址装入PCPC,转中服程序转中服程序.注注:串行口收:串行口收/发共用中断向量地址发共用中断向量地址,程序中要程序中要 用软件区分是用软件区分是TITI(发送发送)还是还是RIRI(接收接收)中断中断.223.2.2 3.2.2 中断控制中断控制通过通过TCON,SCON,T2CONTCON,SCON,T
17、2CON的中断请求标志位实现的中断请求标志位实现中断响应中断响应;设置中断允许设置中断允许IEIE和中断优先级和中断优先级IP.IP.1.1.中断允许中断允许 (中断允许控制寄存器中断允许控制寄存器IEIE定义定义)注注:置相应位为:置相应位为1 1,允许中断;,允许中断;置相应位为置相应位为0 0,禁止中断,禁止中断.允许中断需开允许中断需开局部局部中断和中断和全局全局中断中断.232.2.中断优先级中断优先级 (中断优先级寄存器中断优先级寄存器IPIP定义定义)注注:置相应位为:置相应位为0 0,设为低优先级;,设为低优先级;置相应位为置相应位为1 1,设为高优先级。,设为高优先级。中断发
18、生时中断发生时,先响应高优先级先响应高优先级,后低优先级后低优先级.对同级多个中断源对同级多个中断源,按按内部查询内部查询顺序执行顺序执行.24中断系统结构示意图:中断系统结构示意图:25多个中断同时发生时的响应规则:多个中断同时发生时的响应规则:1)1)低优先级的中断请求可被高优先级的中断低优先级的中断请求可被高优先级的中断 请求中断,反之不能请求中断,反之不能.2)2)某个中断请求一旦得到响应某个中断请求一旦得到响应,与之同等优与之同等优 先级的中断请求就不能再被响应先级的中断请求就不能再被响应.*上述规则由中断系统内用户不可寻址的两上述规则由中断系统内用户不可寻址的两 个个 “优先级激活
19、触发器优先级激活触发器”的置位来实现的置位来实现.*执行完中断返回指令执行完中断返回指令RETIRETI后后,该触发器才该触发器才 被清零被清零,才能响应其它中断才能响应其它中断.263.2.3 3.2.3 中断响应中断响应1.1.中断响应的条件中断响应的条件 (响应过程如下响应过程如下)*周期周期1 1的的S5P2S5P2期期INTxINTx引脚电平被内部锁存引脚电平被内部锁存,*周期周期2 2的的S6S6态按顺序查询中断标志态按顺序查询中断标志,*周期周期3 3的的S1S1态始响应最高优先级中断请求态始响应最高优先级中断请求,*周期周期5 5开始执行中断服务程序开始执行中断服务程序.272
20、.2.中断响应的时间中断响应的时间从检测到中断请求到转入中服所需机器周期从检测到中断请求到转入中服所需机器周期,正常状态下正常状态下,中断响应一般为中断响应一般为3 38 8个机器周期个机器周期.3.3.中断响应的过程中断响应的过程 (内部硬件自动完成内部硬件自动完成)1 1)根据中断源的中断优先级把相应的优先级根据中断源的中断优先级把相应的优先级 激活触发器激活触发器(又称又称优先级状态触发器优先级状态触发器)置位置位.2 2)进行断点保护,把程序计数器进行断点保护,把程序计数器PCPC的内容自的内容自 动压入堆栈动压入堆栈.3 3)硬件清中断标志硬件清中断标志IE0IE0、IE1IE1、T
21、F0TF0、TF1TF1或或TF2.TF2.4 4)相应的中断向量送入相应的中断向量送入PCPC,转向相应的中断服转向相应的中断服 务程序务程序.283.2.4 3.2.4 中断服务程序及其初始化中断服务程序及其初始化设设INTxINTx负跳变触发负跳变触发,INT1,INT1高优先级高优先级,开头设中断开头设中断入口入口,寄存器初始化寄存器初始化,REIT,REIT结束结束,汇编参考如下汇编参考如下:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;主程序入口主程序入口 ORG 0003HORG 0003H AJMP JINT0 AJMP JINT0 ;外部中
22、断外部中断0 0入口入口 ORG 0013HORG 0013H AJMP JINT1 AJMP JINT1 ;外部中断外部中断1 1入口入口 ORG 0030HORG 0030HMAINMAIN:MOV SPMOV SP,#60H#60H ;堆栈指针设为堆栈指针设为60H60H SETB EA SETB EA ;允许全局中断允许全局中断 29 SETB EX0 SETB EX0 ;允许外部中断允许外部中断0 0中断中断 SETB EX1 SETB EX1 ;允许外部中断允许外部中断1 1中断中断 SETB PX1SETB PX1 ;设外中断;设外中断1 1为高优先级为高优先级 SETB IT0
23、SETB IT0 ;设外部中断设外部中断0 0边沿触发边沿触发 SETB IT1 SETB IT1 ;设外部中断设外部中断1 1边沿触发边沿触发 ROUNROUN:NOPNOP AJMP ROUN AJMP ROUN ;等待中断等待中断JINT0:NOPJINT0:NOP ;外中断外中断0 0中断服务程序中断服务程序 RETI RETI;中断返回中断返回JINT1:NOP JINT1:NOP ;外中断外中断1 1中断服务程序中断服务程序 RETI RETI;中断返回中断返回303.2.5 3.2.5 运用中断功能的程序单步调试运用中断功能的程序单步调试 *S S常闭常闭,整形出低电平,整形出低
24、电平,自动进入中服程序自动进入中服程序,*按下按下S,+5VS,+5V加上加上,整形输出正脉冲整形输出正脉冲(无中断无中断),),*释放释放S S接地接地,整形电路输出低电平整形电路输出低电平(可中断可中断).).注注:中服程序中服程序只查只查P3.2P3.2有电平变化便中断返回有电平变化便中断返回,31但需执行一条其它指令但需执行一条其它指令,才能再次响应中断才能再次响应中断,从而实现每按一次按键从而实现每按一次按键,单步执行一条指令单步执行一条指令.汇编的中断服务程序汇编的中断服务程序INTINT如下:如下:INT:NOPINT:NOP JNB P3.2,$JNB P3.2,$;等待键等待
25、键S S按下按下,使口线使口线 从从低低电平变为电平变为高高电平电平 JB P3.2,$JB P3.2,$;等待等待S S释放释放,使口线从使口线从 高高电平回复为电平回复为低低电平电平 RETIRETI;中断返回中断返回323.3 3.3 串行口通信功能串行口通信功能3.3.1 3.3.1 串行通信基本知识串行通信基本知识 (组态如下组态如下)只需发送线和接收线只需发送线和接收线,适于远距离通信适于远距离通信,但速但速度慢度慢.分为异步传输方式和同步传输方式分为异步传输方式和同步传输方式.33异步传输方式异步传输方式 (帧格式定义帧格式定义)含含4 4部分部分:起始位起始位数据位数据位奇偶校
26、验位奇偶校验位停止位停止位b)b)的不同的不同:有空闲位有空闲位343.3.2 3.3.2 串行口控制器串行口控制器 (3(3种传输方式定义种传输方式定义)1)1)单工单工:数据从发送站数据从发送站A A向接收站向接收站B B单向单向传输传输.2)2)半双工半双工:A A和和B B可可分时分时充当发送站或接收站充当发送站或接收站,但同一时刻只由但同一时刻只由S S控制往一个方向传送控制往一个方向传送.3)3)全双工全双工:A A和和B B可独立可独立同时同时实现发送和接收实现发送和接收.*5151系列单片机内部有系列单片机内部有全双工全双工串行通信口串行通信口.355151系列单片机串行口结构
27、系列单片机串行口结构含含:两独立发两独立发/收缓冲收缓冲BUFFBUFF,输入移位寄存输入移位寄存,收收发发 控制控制SCONSCON,电源控制电源控制PCON.7PCON.7,波特率发生器波特率发生器等等.361.1.串行数据缓冲器串行数据缓冲器SBUFSBUF 两个独立两个独立8 8位发送接收寄存器位发送接收寄存器,共用地址共用地址99H99H,读、写指令简单读、写指令简单,如下:如下:MOV AMOV A,SBUF SBUF ;读;读接收数据寄存器接收数据寄存器MOV SBUFMOV SBUF,A A ;写;写发送数据寄存器发送数据寄存器2.2.串行口控制寄存器串行口控制寄存器SCONS
28、CON用于控制串行工作方式用于控制串行工作方式,收发过程中设中断收发过程中设中断状态标志状态标志.37(1)SM0,SM1(1)SM0,SM1 串行工作方式选择位串行工作方式选择位(2)SM2(2)SM2 多机通信控制位多机通信控制位方式方式2 2和和3 3该位有效该位有效.方式方式0 0和和1 1不能用不能用,清为清为0.0.(从机中从机中SM2=1SM2=1详见后续详见后续多机通信原理多机通信原理).).(3)REN(3)REN 接收允许控制位接收允许控制位由软件置位或清零由软件置位或清零.清零可禁止数据接收清零可禁止数据接收.38(4)TB8(4)TB8 方式方式2 2和和3 3发送数据
29、的第发送数据的第9 9位位由软件置位或清零由软件置位或清零.可作双机通信奇偶校验位可作双机通信奇偶校验位.多机通信中多机通信中,TB8=0,TB8=0为为数据数据帧帧;TB8=1;TB8=1为为地址地址帧帧.(5)RB8(5)RB8 方式方式2 2和和3 3接收数据的第接收数据的第9 9位位可作双机通信奇偶校验位可作双机通信奇偶校验位.多机通信中作地址多机通信中作地址或数据帧或数据帧标志标志位位.(6)TI(6)TI 发送中断标志位发送中断标志位由软件置位或清零由软件置位或清零.指示一帧数据是否发送结指示一帧数据是否发送结束束,申请申请中断中断;若不用中断方式则可软件若不用中断方式则可软件查询
30、查询.39(7)RI(7)RI 接收中断标志位接收中断标志位由软件置位或清零由软件置位或清零.指示一帧数据接收结束指示一帧数据接收结束,申请申请中断中断;若不用中断方式则可软件若不用中断方式则可软件查询查询.*因因TITI和和RIRI共用一个中断向量共用一个中断向量,双工通信中双工通信中 要用软件判断是接收中断还是发送中断要用软件判断是接收中断还是发送中断.3.3.电源控制寄存器电源控制寄存器PCON PCON(定义定义)SMOD=1,SMOD=1,波特率加倍波特率加倍;系统复位时系统复位时SMOD=0.SMOD=0.404.4.中断允许控制寄存器中断允许控制寄存器IE IE(定义定义)ESE
31、S为串行口中断允许控制位为串行口中断允许控制位,=1,=1允许允许,=0,=0禁止禁止.EAEA=1=1全局中断允许时全局中断允许时,串行口中断才能生效串行口中断才能生效.3.3.3 3.3.3 串行口的工作方式串行口的工作方式(4(4种种,SM0,SM0和和SM1SM1定定)1.1.方式方式0 0(属于移位寄存器方式属于移位寄存器方式)需外接需外接串入串入-并出并出或或并入并入-串出串出移位移位寄存器寄存器,RXDRXD脚作串行输出脚作串行输出/输入输入,TXDTXD脚输出移位脉冲脚输出移位脉冲.41串行口方式串行口方式0 0工作示意图:工作示意图:42串行口在方式串行口在方式0 0作为输出
32、作为输出的工作过程是:的工作过程是:*当数据写入当数据写入SBUFSBUF时时,同时启动发送控制器同时启动发送控制器,从内部从内部送出移位脉冲送出移位脉冲.经一个机器周期后经一个机器周期后SEND SEND 输出高电平输出高电平,打通门电路打通门电路5 5,并经或门并经或门7 7打通门电路打通门电路6 6,RXDRXD发送允许发送允许且且TXDTXD输出同步脉冲输出同步脉冲.*在机器周期的在机器周期的S6S6状态,单片机把发送数据缓冲器状态,单片机把发送数据缓冲器SBUFSBUF中的数据从低位中的数据从低位D0D0开始右移一位开始右移一位,把数据从把数据从RXDRXD移出移出.重复执行该操作直
33、至最高位重复执行该操作直至最高位D7D7移出后移出后,一帧数一帧数据的发送结束据的发送结束.接着接着SENDSEND为低电平为低电平,发送中断标志发送中断标志TITI置位置位,申请串行口申请串行口中断中断或等待用户或等待用户查询查询.43串行口在方式串行口在方式0 0作为输入作为输入的工作过程是:的工作过程是:*若若RENREN=1=1则接收控制器启动,经过一个机器周期则接收控制器启动,经过一个机器周期RECVRECV端输出高电平端输出高电平,经或门经或门7 7打通门电路打通门电路6 6,TXDTXD输出输出同步移位脉冲同步移位脉冲.*内部移位脉冲使内部移位脉冲使RXDRXD收到的串行数据经移
34、位寄存收到的串行数据经移位寄存器左移一位,成最高位器左移一位,成最高位D7D7.重复接收操作直至最低重复接收操作直至最低位位D0D0移入后,一帧数据的接收结束移入后,一帧数据的接收结束.接着接着RECVRECV恢复恢复低电平低电平,接收控制器发装载接收控制器发装载SBUFSBUF信号打通三态门信号打通三态门2 2,把数据保存到接收数据缓冲器把数据保存到接收数据缓冲器SBUFSBUF,接收中断标志接收中断标志RIRI置位,申请串行口置位,申请串行口中断中断或等待或等待查询查询.由读由读SBUFSBUF指指令打通三态门令打通三态门3 3,读取缓冲器读取缓冲器SBUFSBUF的数据的数据.44串行口
35、方式串行口方式0 0在工程上在工程上的应用示例的应用示例 (书书P.77)P.77)45串行口方式串行口方式1,2,31,2,3的工作示意图:的工作示意图:462.2.方式方式1 1(1010位异步通信方式位异步通信方式,波特率可变波特率可变)1 1个起始位个起始位,8,8个数据位个数据位(低位在前低位在前),1),1个停止位个停止位.*发送过程发送过程:软件清标志软件清标志TITI后后,写写SBUFSBUF指令启动发送指令启动发送,总线并行数据送入总线并行数据送入SBUFSBUF并启动发送控制器并启动发送控制器.经一个机经一个机器周期器周期,数据端数据端DATADATA和发送端有效,经输出控
36、制门向和发送端有效,经输出控制门向TXDTXD端送出端送出.一帧发完一帧发完TITI置位置位,申请申请中断中断或等待或等待查询查询.*接收过程接收过程:设设SM2SM20,0,软件清标志软件清标志RIRI后后,若若RENREN置置1 1闭闭合合,位检测器则以波特率的位检测器则以波特率的1616倍速率对倍速率对RXDRXD端电平采端电平采样样.当检测到当检测到负跳变负跳变时时,跳变检测器启动接收控制器跳变检测器启动接收控制器接收数据接收数据.移位脉冲把移位脉冲把RXDRXD的数据逐位移入移位寄存的数据逐位移入移位寄存器器,一帧接收完毕一帧接收完毕.收到的停止位为收到的停止位为1,1,标志标志RI
37、RI置位置位,申申请请中断中断或等待或等待查询查询.(.(若起始位不为零若起始位不为零,该帧无效该帧无效).).473.3.方式方式2 2和和3 3(11 11位异步通信接口方式位异步通信接口方式)1 1个起始位个起始位,9 9个数据位个数据位(其中低位在前其中低位在前,8,8个数个数据位据位,第第9 9位为奇偶校验位位为奇偶校验位),),1 1个停止位个停止位.(方式方式2 2波特率固定波特率固定,方式方式3 3波特率可变波特率可变).).*发送、接收过程发送、接收过程基本同方式基本同方式1,1,若满足:若满足:RI=0RI=0、SM2=0 SM2=0 或所收第或所收第9 9位数据位位数据位
38、1,1,表明表明 接收成功接收成功.*与方式与方式1 1的差别的差别:发送前由发送前由SCONSCON的的TB8TB8位提供第位提供第9 9位数据位数据,接收后把第接收后把第9 9位数据装入位数据装入SCONSCON的的RB8RB8位位.48串行口方式串行口方式2 2和和3 3的发送时序的发送时序 (a)(a)发送始于执行一条写发送始于执行一条写SBUFSBUF指令指令.(b)(b)同时同时SENDSEND低电平有效低电平有效,向向TXDTXD端送起始位端送起始位.(c)(c)每个每个TXTX时钟时钟,移位脉冲使移位脉冲使TXDTXD输出一位数据输出一位数据.(d)(d)9 9位数据输出后位数
39、据输出后,SENDSEND失效失效,TITI标志置位标志置位,引引 发发中断中断,TXD,TXD1 1作为停止位作为停止位,完成一帧发送完成一帧发送.49串行口方式串行口方式2 2和和3 3的接收时序的接收时序 (a)(a)接收始于接收始于RENREN=1,=1,从三中取二采样到起始位从三中取二采样到起始位.(b)(b)起始位有效起始位有效,每每RXRX时钟周期接收一位数据时钟周期接收一位数据.(c)(c)第第9 9位接收完位接收完,数据送至数据送至SBUFSBUF和和RB8RB8,置位置位RIRI 标志标志,引发引发中断中断,完成一帧接收完成一帧接收.(d)(d)若接收无效若接收无效,需重新
40、检测需重新检测RXDRXD端信号端信号.503.3.4 3.3.4 串行口的多机通信串行口的多机通信 (限于方式限于方式2 2和和3)3)主从式多机通信系统的组成主从式多机通信系统的组成(应用最广应用最广)主机主机(1(1台台)向向从机从机(多台多台)发送信息发送信息,从机发从机发信息由主机接收信息由主机接收,从机之间不能通信从机之间不能通信.主机主机TB8=1TB8=1发从机发从机地址地址帧帧,TB8=0,TB8=0发从机发从机数据数据帧帧.511.1.主从式多机通信的过程主从式多机通信的过程1)1)从机均置从机均置SM2SM21,1,全部等待接收主机地址帧全部等待接收主机地址帧.2)2)主
41、机先发目标从机主机先发目标从机地址地址帧帧,8,8位数作从机地位数作从机地 址址,第第9 9位数位数TB8TB8=1,=1,使所有从机引发使所有从机引发中断中断.3)3)所有从机在中服中读所有从机在中服中读地址地址帧数据帧数据,地址相符地址相符 的从机置的从机置SM2SM20.0.主机后续的各帧数据均能主机后续的各帧数据均能 使该从机的标志使该从机的标志RIRI置位置位,引发接收引发接收中断中断.4)4)自身地址不相符的其他从机自身地址不相符的其他从机,仍保持仍保持SM2SM21,1,不接收主机后续发来的不接收主机后续发来的数据数据帧帧.5)5)自身地址符合的从机自身地址符合的从机,收齐规定的
42、数据帧后收齐规定的数据帧后,置置SM2SM21,1,恢复到等待接收主机恢复到等待接收主机地址地址帧状态帧状态.522.2.从机引发接收中断的条件从机引发接收中断的条件 (使使RIRI置位置位)1)1)从机设置从机设置SM2SM21 1(等待接收地址帧等待接收地址帧).).2)2)从机设置从机设置RENREN1 1(接收允许接收允许).).3)3)从机接收到从机接收到RB8RB81 1(收到地址帧收到地址帧).).3.3.5 3.3.5 串行口的波特率串行口的波特率 (每秒发每秒发/收的数据位收的数据位)1.1.影响波特率的因素影响波特率的因素1)1)晶振频率晶振频率foscfosc.2)2)电
43、源控制寄存器电源控制寄存器PCONPCON中的波特率中的波特率 倍增位倍增位SMODSMOD.3)3)定时器定时器/计数器计数器T1T1的溢出率设置的溢出率设置 532.2.定时器定时器/计数器计数器T1T1溢出率的计算溢出率的计算1)1)T1 T1溢出率定时溢出次数溢出率定时溢出次数/s s2)2)定时器定时器/计数器工作方式的选择计数器工作方式的选择.计算计算T1T1方式方式2(2(自动重装自动重装)设为溢出率设为溢出率.设设X X为预置值为预置值.溢出一次的时间为溢出一次的时间为(2828X X)12/12/foscfosc溢出率溢出率(T1)(T1)foscfosc/12/(28/12
44、/(28X X)次次/s/s例例:设晶振频率:设晶振频率fosc fosc 6MHz,6MHz,预置值预置值X X F3H,F3H,则有则有 溢出率溢出率(T1)(T1)6 6106/(28106/(28F3H)/12F3H)/12 38461.5 38461.5次次/s/s543.3.波特率的设置波特率的设置 (示意图适于方式示意图适于方式1 1和和3 3)波特率波特率(2(2SMODSMOD/32)/32)(定时器定时器T1T1的溢出率的溢出率)(2(2SMODSMOD/32)/32)foscfosc/12/(2/12/(28 8X X)应用上给出波特率应用上给出波特率,求定时器求定时器预
45、置值预置值X X:X X2562562 2SMODSMODfoscfosc/(/(波特率波特率323212)12)55例例:foscfosc6MHz,SMOD6MHz,SMOD1,1,波特率波特率2400bit/s,2400bit/s,求定时器预置值求定时器预置值X.X.则则:X X2562562 21 16 610106 6/(2400240032321212)242.98243 F3H242.98243 F3H4.4.常用的波特率常用的波特率 (6MHz(6MHz晶振晶振)56常用的波特率常用的波特率 (11.0592MHz(11.0592MHz晶振晶振)11.0592MHz11.0592
46、MHz晶振时波特率达晶振时波特率达1920019200bit/s,bit/s,误差为误差为零零.57常用的波特率常用的波特率 (12MHz(12MHz晶振晶振)12MHz12MHz晶振时最高可选晶振时最高可选4 4800800bit/s.bit/s.若选若选96009600bit/s,bit/s,计计算误差更大为算误差更大为6.986.98(SMOD(SMOD0)0)和和 8.518.51(SMOD(SMOD1),1),所以工程上不建议采用超过所以工程上不建议采用超过48004800bit/sbit/s的波特率的波特率.583.3.6 3.3.6 异步通信的奇偶校验异步通信的奇偶校验1.1.串
47、行通信方式的用法归纳串行通信方式的用法归纳*串行口方式串行口方式1 1帧格式有帧格式有8 8个数据位个数据位,无校验无校验 功能功能,可用求批量数据可用求批量数据累加和累加和方法来校验方法来校验,或用或用最高位最高位作校验位作校验位.*串行口方式串行口方式1 1和和2 2帧格式有帧格式有9 9个数据位个数据位,双机双机 通信时可用通信时可用第第9 9位位作校验位作校验位.*多机通信时第多机通信时第9 9位作地址帧位作地址帧/数据帧识别位数据帧识别位,可用求批量数据可用求批量数据累加和累加和方法来校验方法来校验.*工程上双机通信可用多机通信的方法实现工程上双机通信可用多机通信的方法实现.59串行
48、口各方式的帧格式及校验方法串行口各方式的帧格式及校验方法 602.2.奇偶校验标志奇偶校验标志 (特征校验位特征校验位)奇偶标志奇偶标志PSW.0,PSW.0,简称简称P,P,由由ACCACC自动生成自动生成,规则规则:ACC ACC中中1 1的个数为偶数时,的个数为偶数时,P P0.0.ACC ACC中中1 1的个数为奇数时,的个数为奇数时,P P1.1.例例:A A0000 0011 P0000 0011 P0 0 A A0000 1011 P0000 1011 P1 13.3.偶校验偶校验 (用第用第9 9位位)第第9 9位由发送方数据中奇偶标志的性质决定位由发送方数据中奇偶标志的性质决
49、定.ACCACC发送字节有发送字节有P P0 0,则第则第9 9位补入位补入0,0,即即TB8TB80 0ACCACC发送字节有发送字节有P P1 1,则第则第9 9位补入位补入1,1,即即TB8TB81 1614.4.奇校验奇校验 (用第用第9 9位位)第第9 9位由发送方数据中奇偶标志的性质决定位由发送方数据中奇偶标志的性质决定.ACCACC发送字节有发送字节有P P0 0,则第则第9 9位补入位补入1,1,即即TB8TB81 1ACCACC发送字节有发送字节有P P1 1,则第则第9 9位补入位补入0,0,即即TB8TB80 05.5.奇偶校验位奇偶校验位TB8TB8的编程要领的编程要领
50、 (1)(1)“补偶补偶”发送发送MOV AMOV A,Ri Ri ;待发送的字节送入待发送的字节送入A AMOV CMOV C,P P ;奇偶标志送入进位位奇偶标志送入进位位MOV TB8MOV TB8,C C ;装入第装入第9 9位位TB8TB8中中MOV SBUFMOV SBUF,A A ;发送发送62(2)(2)“补奇补奇”发送发送 MOV A MOV A,Ri Ri ;待发送的字节送入待发送的字节送入A A MOV C MOV C,P P ;奇偶标志送入进位位奇偶标志送入进位位 CPL C CPL C ;取反补奇取反补奇 MOV TB8MOV TB8,C C ;装入第装入第9 9位位
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。