
单片机技术:第3章 51系列单片机内部功能.ppt
57页1第第3 3章章 5151系列单片机内部功能系列单片机内部功能3.1 3.1 定时器定时器/ /计数器功能计数器功能3.1.1 3.1.1 定时器定时器/ /计数器计数器T0T0、、T1T1的结构及原理的结构及原理21. 161. 16位计数寄存器位计数寄存器TH0,TL0,TH0,TL0,和和TH1,TL1TH1,TL1分别为分别为T0T0和和T1T1的高低的高低8 8位位, ,属于字节寻址的可读属于字节寻址的可读/ /写寄存器写寄存器. .(1)(1)计数器方式:计数器方式: 1616位计数寄存器对位计数寄存器对T1T1和和T0T0引脚的输入脉冲引脚的输入脉冲 计数计数( (第二功能输入第二功能输入).).(2)(2)定时器方式:定时器方式: 1616位计数寄存器对内部机器周期计数,此位计数寄存器对内部机器周期计数,此 即定时器的实质即定时器的实质. .32. 2. 模式控制寄存器模式控制寄存器TMOD TMOD ( (位定义位定义) )定时器定时器/ /计数器的工作模式计数器的工作模式 (4(4种种) )43. 3. 工作控制寄存器工作控制寄存器TCON TCON ( (位定义位定义) )TR1(TR0):TR1(TR0):运行控制位,软件置运行控制位,软件置1 1和清和清0.0.TF1(TF0):TF1(TF0):溢出中断标志,硬件置溢出中断标志,硬件置1 1软件清软件清0;0; 在中断服务程序中由硬件自动清在中断服务程序中由硬件自动清0.0.字节低字节低4 4位:位:外部中断用外部中断用. .53.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 TcyTcy ==(8192(8192--X X ) )TcyTcy6 2) 2)计数方式:计数方式:软件置软件置C/T=1,S1C/T=1,S1向下向下, ,对对T TX X 脚的脚的外部脉冲计数外部脉冲计数,THX,THX和和TLXTLX预置值为预置值为X X,, 计数值计数值N N为为 N N ==2 21313--X X ==81928192--X X 3) 3)软件置软件置GATE=0GATE=0, ,与门输出取决于与门输出取决于: :TRxTRx=1,=1,则则S2S2 闭合并启动计数闭合并启动计数; ; TRxTRx=0,=0,则则S2S2断开断开, ,计数停止计数停止. . 4) 4)软件置软件置GATE=1GATE=1, , 属门控方式:仅当属门控方式:仅当 TRxTRx=1=1且且 INTxINTx 脚出高电平脚出高电平, ,则或门、与门出高电平则或门、与门出高电平, ,使使S2S2闭合闭合, ,定时定时/ /计数器启动计数器启动( (可判定可判定上升沿上升沿) );; INTxINTx 脚出低电平脚出低电平, ,则或门则或门、、与门出低电平与门出低电平, ,使使S2S2断开断开, ,定时定时/ /计数器停止计数器停止( (可判定可判定下降沿下降沿).).72. 2. 工作模式工作模式1 1( 16( 16位计数器位计数器) )与模式与模式0 0的差别在于的差别在于TLxTLx和和THxTHx均为均为8 8位计数器位计数器, ,定时时间定时时间为:为:T T ==N N TcyTcy ==(2(21616--X X ) )TcyTcy 对对12MHz12MHz晶振,定时范围为晶振,定时范围为(1(1~65536uS)65536uS);;计数值计数值为:为:N N =2=21616--X X ==6553665536--X X 对对12MHz12MHz晶振晶振,,计数范围为计数范围为1 1~65536.65536.83. 3. 工作模式工作模式2 2 ( (又称自动重装又称自动重装8 8位初值模式位初值模式) )TLxTLx作作8 8位计数器位计数器, , THxTHx作自动重装初值寄存器作自动重装初值寄存器, ,TLxTLx计数溢出使计数溢出使TFxTFx置位,同时把置位,同时把THxTHx的初值自的初值自动送入动送入TLxTLx重新计数重新计数. .定时时间定时时间为:为:T T ==N N T TCYCY ==(256(256--X X ) )T TCYCY94. 4. 工作模式工作模式3 3 ( (仅限于定时仅限于定时/ /计数器计数器T0)T0)TH0TH0借用了借用了T1T1的启动位的启动位TR1TR1和溢出标志和溢出标志TF1TF1. .103.1.4 3.1.4 定时器定时器/ /计数器的初始化计数器的初始化1. 1. 初始化的主要步骤初始化的主要步骤1 1)对)对TMODTMOD寄存器写入控制字寄存器写入控制字, ,确定工作模式确定工作模式. .2 2)对)对THxTHx、、TLxTLx预置初值预置初值. .3 3)按需要置中断方式、中断入口)按需要置中断方式、中断入口, ,允许中断允许中断. .4 4)启动)启动TRxTRx 汇编语言的定时器汇编语言的定时器/ /计数器计数器初始化初始化参考程序:参考程序: MOV TMOD MOV TMOD,, # #xxHxxH ;;选择工作模式选择工作模式 MOV MOV THxTHx,, #xx #xx ;;预置初值高字节预置初值高字节 MOV MOV TLxTLx,, #xx #xx ;;预置初值低字节预置初值低字节 SETB SETB ETxETx ;;定时器定时器/ /计数器计数器TxTx中断允许中断允许 SETB EA SETB EA ;;全局中断允许全局中断允许 SETB SETB TRxTRx ;;启动定时器启动定时器/ /计数器计数器TxTx112. 2. 预置初值的计算预置初值的计算 ( (见书见书P.63)P.63)注意注意: :方式方式0(130(13位定时位定时) )预置值的预置值的1616进制取值进制取值. .3. 3. 延时子程序的时间估算延时子程序的时间估算 ( (周期和次数之和周期和次数之和) )12汇编语言的延时子程序参考语句:汇编语言的延时子程序参考语句:现设现设R6R6、、R7R7两层计数循环两层计数循环( (可按需要设多层可按需要设多层).).上述例子需上述例子需总机器周期总机器周期:: ((248×2)((248×2)++3)×2003)×200++3 3==9980399803 对对6MHz6MHz晶振晶振, ,总延时总延时::99803×299803×2µs s==199606199606µs s134. 4. 利用门控位利用门控位GATEGATE测量脉冲宽度测量脉冲宽度汇编语言测量高电平脉冲汇编语言测量高电平脉冲宽度宽度参考程序:参考程序: ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG ORG 0030H 0030HMAIN: MOV SP, #60HMAIN: MOV SP, #60H ; ; 设堆栈设堆栈 MOV TMOD,#09HMOV TMOD,#09H ; T0 ; T0模式模式1,1,门控门控GATE=1GATE=1 MOV TH0, #00H MOV TH0, #00H ; ; 时间常数初值时间常数初值 MOV TL0, #00HMOV TL0, #00H14注:注:INT0INT0脚出高电平脚出高电平, ,TOTO才开始计数;才开始计数; INT0INT0脚出低电平脚出低电平, ,TOTO立即停止计数;立即停止计数; 测量结果以机器周期分别存在测量结果以机器周期分别存在R0R0和和R1R1中中. .153.2 3.2 中断系统功能中断系统功能中断系统组成要素如下:中断系统组成要素如下:(1)(1)中断源中断源( (5151子系列子系列5 5个个,52,52子系列子系列6 6个个).).(2)(2)中断响应和中断返回中断响应和中断返回. .(3)(3)优先级控制优先级控制. .(4)(4)中断嵌套中断嵌套( (有二级有二级, ,低级能被高级嵌套低级能被高级嵌套).).163.2.1 3.2.1 中断源和中断向量中断源和中断向量1.1.外部中断源外部中断源 (2(2个个, ,触发方式由触发方式由TCONTCON定义定义) )(1)(1) IT0(IT1)IT0(IT1)外部中断外部中断0(1)0(1)触发方式控制位触发方式控制位. . IT0(IT1)=0, IT0(IT1)=0,属属低电平低电平触发触发. .17IT0(IT1)=1,IT0(IT1)=1,属属下降沿下降沿触发触发. .(2)(2) IE0(IE1)IE0(IE1)外部中断外部中断0(1)0(1)中断请求标志位中断请求标志位. . * * 检测到外中断引脚检测到外中断引脚低电平低电平时时, ,直接触发外部直接触发外部 中断中断, ,需用外部方法消除低电平;需用外部方法消除低电平; * * 检测到外中断引脚检测到外中断引脚负跳变负跳变时时, ,由硬件置位中由硬件置位中 断标志位断标志位IE0(IE1),IE0(IE1),在中服中自动清标志在中服中自动清标志. . 182.2.内部中断源内部中断源 (51(51子系列子系列3 3个个,52,52子系列子系列4 4个个) )包括包括T0,T1,T2T0,T1,T2溢出中断溢出中断, ,串行口收串行口收/ /发中断发中断. .中断标志位在中断标志位在SFRSFR中的分布如下:中的分布如下:注注::TF0TF0, ,TF1TF1, ,TF2TF2溢出中断能硬件自动清零;溢出中断能硬件自动清零; 串行口串行口TITI( (发送发送),),RIRI( (接受接受) )中断需软件清零中断需软件清零. .193. 3. 中断向量中断向量 (6(6种种) )响应中断后响应中断后, ,把向量地址装入把向量地址装入PCPC, ,转中服程序转中服程序. .注注:串行口收:串行口收/ /发共用中断向量地址发共用中断向量地址, ,程序中要程序中要 用软件区分是用软件区分是TITI( (发送发送) )还是还是RIRI( (接收接收) )中断中断. .203.2.2 3.2.2 中断控制中断控制通过通过TCON,SCON,T2CONTCON,SCON,T2CON的中断请求标志位实现的中断请求标志位实现中断响应中断响应; ;设置中断允许设置中断允许IEIE和中断优先级和中断优先级IP.IP.1. 1. 中断允许中断允许 ( (中断允许控制寄存器中断允许控制寄存器IEIE定义定义) )注注:置相应位为:置相应位为1 1,允许中断;,允许中断; 置相应位为置相应位为0 0,禁止中断,禁止中断. . 允许中断需开允许中断需开局部局部中断和中断和全局全局中断中断. .212. 2. 中断优先级中断优先级 ( (中断优先级寄存器中断优先级寄存器IPIP定义定义) )注注:置相应位为:置相应位为0 0,设为低优先级;,设为低优先级; 置相应位为置相应位为1 1,设为高优先级。
设为高优先级 中断发生时中断发生时, ,先响应高优先级先响应高优先级, ,后低优先级后低优先级. . 对同级多个中断源对同级多个中断源, ,按按内部查询内部查询顺序执行顺序执行. .22中断系统结构示意图:中断系统结构示意图:23多个中断同时发生时的响应规则:多个中断同时发生时的响应规则:1)1) 低优先级的中断请求可被高优先级的中断低优先级的中断请求可被高优先级的中断 请求中断,反之不能请求中断,反之不能. .2)2) 某个中断请求一旦得到响应某个中断请求一旦得到响应, , 与之同等优与之同等优 先级的中断请求就不能再被响应先级的中断请求就不能再被响应. . * * 上述规则由中断系统内用户不可寻址的两上述规则由中断系统内用户不可寻址的两 个个 “优先级激活触发器优先级激活触发器” 的置位来实现的置位来实现. .* * 执行完中断返回指令执行完中断返回指令RETIRETI后后, , 该触发器才该触发器才 被清零被清零, ,才能响应其它中断才能响应其它中断. .243.2.3 3.2.3 中断响应中断响应1. 1. 中断响应的条件中断响应的条件 ( (响应过程如下响应过程如下) )* * 周期周期1 1的的S5P2S5P2期期INTxINTx引脚电平被内部锁存引脚电平被内部锁存, ,* * 周期周期2 2的的S6S6态按顺序查询中断标志态按顺序查询中断标志, ,* * 周期周期3 3的的S1S1态始响应最高优先级中断请求态始响应最高优先级中断请求, ,* * 周期周期5 5开始执行中断服务程序开始执行中断服务程序. .252. 2. 中断响应的时间中断响应的时间从检测到中断请求到转入中服所需机器周期从检测到中断请求到转入中服所需机器周期, ,正常状态下正常状态下, ,中断响应一般为中断响应一般为3 3~8 8个机器周期个机器周期. .3. 3. 中断响应的过程中断响应的过程 ( (内部硬件自动完成内部硬件自动完成) )1 1))根据中断源的中断优先级把相应的优先级根据中断源的中断优先级把相应的优先级 激活触发器激活触发器( (又称又称优先级状态触发器优先级状态触发器) )置位置位. .2 2))进行断点保护,把程序计数器进行断点保护,把程序计数器PCPC的内容自的内容自 动压入堆栈动压入堆栈. .3 3))硬件清中断标志硬件清中断标志IE0IE0、、IE1IE1、、TF0TF0、、TF1TF1或或TF2.TF2.4 4))相应的中断向量送入相应的中断向量送入PCPC, ,转向相应的中断服转向相应的中断服 务程序务程序. .263.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 ;;外部中断外部中断0 0入口入口 ORG 0013HORG 0013H AJMP JINT1 AJMP JINT1 ;;外部中断外部中断1 1入口入口 ORG 0030HORG 0030HMAINMAIN::MOV SPMOV SP,,#60H #60H ;;堆栈指针设为堆栈指针设为60H60H SETB EA SETB EA ;;允许全局中断允许全局中断 27 SETB EX0 SETB EX0 ;;允许外部中断允许外部中断0 0中断中断 SETB EX1 SETB EX1 ;;允许外部中断允许外部中断1 1中断中断 SETB PX1SETB PX1 ;设外中断;设外中断1 1为高优先级为高优先级 SETB IT0SETB IT0 ;;设外部中断设外部中断0 0边沿触发边沿触发 SETB IT1 SETB IT1 ;;设外部中断设外部中断1 1边沿触发边沿触发 ┇ ┇ROUNROUN::NOPNOP AJMP ROUN AJMP ROUN ;;等待中断等待中断JINT0:NOPJINT0:NOP ;;外中断外中断0 0中断服务程序中断服务程序 ┇ ┇ RETIRETI;;中断返回中断返回JINT1:NOP JINT1:NOP ;;外中断外中断1 1中断服务程序中断服务程序 ┇ ┇ RETIRETI;;中断返回中断返回283.3 3.3 串行口通信功能串行口通信功能3.3.1 3.3.1 串行通信基本知识串行通信基本知识 ( (组态如下组态如下) )只需发送线和接收线只需发送线和接收线, ,适于远距离通信适于远距离通信, ,但速但速度慢度慢. .分为异步传输方式和同步传输方式分为异步传输方式和同步传输方式. .29异步传输方式异步传输方式 ( (帧格式定义帧格式定义) )含含4 4部分部分: :起始位起始位数据位数据位奇偶校验位奇偶校验位停止位停止位b)b)有空闲有空闲位位303.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系列单片机内部有系列单片机内部有全双工全双工串行通信口串行通信口. .315151系列单片机串行口结构系列单片机串行口结构含含: :两独立发两独立发/ /收缓冲收缓冲BUFFBUFF, ,输入移位寄存输入移位寄存, ,收发收发 控制控制SCONSCON, ,电源控制电源控制PCON.7PCON.7, ,波特率发生器等波特率发生器等. .321. 1. 串行数据缓冲器串行数据缓冲器SBUFSBUF 两个独立两个独立8 8位发送、接收寄存器位发送、接收寄存器, ,共用地址共用地址99H99H, , 读、写指令简单读、写指令简单, ,如下:如下:MOV AMOV A,,SBUF SBUF ;读;读接收数据寄存器接收数据寄存器MOV SBUFMOV SBUF,,A A ;写;写发送数据寄存器发送数据寄存器2. 2. 串行口控制寄存器串行口控制寄存器SCONSCON用于控制串行工作方式用于控制串行工作方式, ,收发过程中设中断收发过程中设中断状态标志状态标志. .33(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 接收允许控制位接收允许控制位由软件置位或清零由软件置位或清零. .清零可禁止数据接收清零可禁止数据接收. .34(4) TB8 (4) TB8 方式方式2 2和和3 3发送数据的第发送数据的第9 9位位由软件置位或清零由软件置位或清零. .可作双机通信奇偶校验位可作双机通信奇偶校验位. .多机通信中多机通信中,TB8=0,TB8=0为为数据数据帧帧; TB8=1; TB8=1为为地址地址帧帧. .(5) RB8 (5) RB8 方式方式2 2和和3 3接收数据的第接收数据的第9 9位位可作双机通信奇偶校验位可作双机通信奇偶校验位. .多机通信中作地址多机通信中作地址或数据帧或数据帧标志标志位位. .(6) TI (6) TI 发送中断标志位发送中断标志位由硬件置位,软件清零由硬件置位,软件清零. .指示一帧数据是否发指示一帧数据是否发送结束送结束, ,申请申请中断中断; ; 若不用中断方式则可软件若不用中断方式则可软件查询查询. .35(7) RI (7) RI 接收中断标志位接收中断标志位由硬件置位,软件清零由硬件置位,软件清零. .指示一帧数据接收指示一帧数据接收结束结束, ,申请中断申请中断; ; 若不用中断方式则可软件若不用中断方式则可软件查询查询. .* * 因因TITI和和RIRI共用一个中断向量共用一个中断向量, ,双工通信中双工通信中 要用软件判断是接收中断还是发送中断要用软件判断是接收中断还是发送中断. .3. 3. 电源控制寄存器电源控制寄存器PCON PCON ( (定义定义) )SMOD=1,SMOD=1,波特率加倍波特率加倍; ;系统复位时系统复位时SMOD=0.SMOD=0.364. 4. 中断允许控制寄存器中断允许控制寄存器IE IE ( (定义定义) )ESES为串行口中断允许控制位为串行口中断允许控制位,=1,=1允许允许,=0,=0禁止禁止. .EAEA=1=1全局中断允许时全局中断允许时, ,串行口中断才能生效串行口中断才能生效. .3.3.3 3.3.3 串行口的工作方式串行口的工作方式(4(4种种,SM0,SM0和和SM1SM1定义定义) )1. 1. 方式方式0 0 ( (属于移位寄存器方式属于移位寄存器方式) )需外接需外接‘串入串入- -并出并出’或或‘并入并入- -串出串出’移位移位寄存器寄存器, ,RXDRXD脚作串行输出脚作串行输出/ /输入输入, ,TXDTXD脚输出移位脉冲脚输出移位脉冲. .37串行口方式串行口方式0 0工作示意图:工作示意图:38串行口方式串行口方式0 0在工程上在工程上的应用示例的应用示例 ( (书书P.77)P.77) 39串行口方式串行口方式1,2,31,2,3的工作示意图:的工作示意图:402. 2. 方式方式1 1 ( (1010位异步通信方式位异步通信方式, , 波特率可变波特率可变) )1 1个起始位个起始位,8,8个数据位个数据位( (低位在前低位在前),1),1个停止位个停止位. .* * 发送过程发送过程: :软件清标志软件清标志TITI后后, ,写写SBUFSBUF指令启动发送指令启动发送, ,总线并行数据送入总线并行数据送入SBUFSBUF并启动发送控制器并启动发送控制器. .经一个机经一个机器周期器周期, ,数据端数据端DATADATA和发送端有效,经输出控制门向和发送端有效,经输出控制门向TXDTXD端送出端送出. .一帧发完一帧发完TITI置位置位, ,申请申请中断中断或等待或等待查询查询. .* * 接收过程接收过程: :设设SM2SM2==0,0,软件清标志软件清标志RIRI后后, ,若若RENREN置置1 1闭闭合合, ,位检测器则以波特率的位检测器则以波特率的1616倍速率对倍速率对RXDRXD端电平采端电平采样样. .当检测到当检测到负跳变负跳变时时, ,跳变检测器启动接收控制器跳变检测器启动接收控制器接收数据接收数据. .移位脉冲把移位脉冲把RXDRXD的数据逐位移入移位寄存的数据逐位移入移位寄存器器, ,一帧接收完毕一帧接收完毕. .收到的停止位为收到的停止位为1,1,标志标志RIRI置位置位, ,申申请请中断中断或等待或等待查询查询.(.(若起始位不为零若起始位不为零, ,该帧无效该帧无效).). 413. 3. 方式方式2 2和和3 3 ( (1111位异步通信接口方式位异步通信接口方式) )1 1个起始位个起始位, ,9 9个数据位个数据位( (其中低位在前其中低位在前,8,8个数个数据位据位, ,第第9 9位为奇偶校验位位为奇偶校验位),),1 1个停止位个停止位. .( (方式方式2 2波特率固定波特率固定, ,方式方式3 3波特率可变波特率可变).).•发送、接收过程发送、接收过程基本同方式基本同方式1 1* * 与方式与方式1 1的差别的差别:: 发送前由发送前由SCONSCON的的TB8TB8位提供第位提供第9 9位数据位数据, , 接收后把第接收后把第9 9位数据装入位数据装入SCONSCON的的RB8RB8位位. .42串行口方式串行口方式2 2和和3 3的发送时序的发送时序 (a)(a)发送始于执行一条写发送始于执行一条写SBUFSBUF指令指令. .(b)(b)同时同时SENDSEND低电平有效低电平有效, ,向向TXDTXD端送起始位端送起始位. .(c)(c)每个每个TXTX时钟时钟, ,移位脉冲使移位脉冲使TXDTXD输出一位数据输出一位数据. .(d)(d)9 9位数据输出后位数据输出后, ,SENDSEND失效失效, ,TITI标志置位标志置位, ,引引 发发中断中断,TXD,TXD==1 1作为停止位作为停止位, ,完成一帧发送完成一帧发送. . 43串行口方式串行口方式2 2和和3 3的接收时序的接收时序 (a)(a)接收始于接收始于RENREN=1,=1,从三中取二采样到起始位从三中取二采样到起始位. .(b)(b)起始位有效起始位有效, , 每每RXRX时钟周期接收一位数据时钟周期接收一位数据. .(c)(c)第第9 9位接收完位接收完, ,数据送至数据送至SBUFSBUF和和RB8RB8, ,置位置位RIRI 标志标志, ,引发引发中断中断, ,完成一帧接收完成一帧接收. .(d)(d)若接收无效若接收无效, ,需重新检测需重新检测RXDRXD端信号端信号. . 443.3.4 3.3.4 串行口的多机通信串行口的多机通信 ( (限于方式限于方式2 2和和3)3)主从式多机通信系统的组成主从式多机通信系统的组成( (应用最广应用最广) )主机主机(1(1台台) )向向从机从机( (多台多台) )发送信息发送信息, ,从机发从机发信息由主机接收信息由主机接收, ,从机之间不能通信从机之间不能通信. .主机主机TB8=1TB8=1发从机发从机地址地址帧帧,TB8=0,TB8=0发从机发从机数据数据帧帧. .451. 1. 主从式多机通信的过程主从式多机通信的过程1)1)从机均置从机均置SM2SM2==1,1,全部等待接收主机地址帧全部等待接收主机地址帧. .2)2)主机先发目标从机主机先发目标从机地址地址帧帧, 8, 8位数据作从机位数据作从机地址地址, ,第第9 9位数位数TB8TB8=1,=1,使所有从机引发使所有从机引发中断中断. .3)3)所有从机在中服中读所有从机在中服中读地址地址帧数据帧数据, ,地址相符地址相符 的从机置的从机置SM2SM2==0.0.主机后续的各帧数据均能主机后续的各帧数据均能 使该从机的标志使该从机的标志RIRI置位置位, ,引发接收引发接收中断中断. .4)4)自身地址不相符的其他从机自身地址不相符的其他从机, ,仍保持仍保持SM2SM2==1,1, 不接收主机后续发来的不接收主机后续发来的数据数据帧帧. .5)5)自身地址符合的从机自身地址符合的从机, ,收齐规定的数据帧后收齐规定的数据帧后, , 置置SM2SM2==1,1,恢复到等待接收主机恢复到等待接收主机地址地址帧状态帧状态. .463.3.5 3.3.5 串行口的波特率串行口的波特率 ( (每秒发每秒发/ /收的数据位收的数据位) )1. 1. 影响波特率的因素影响波特率的因素1)1) 晶振频率晶振频率foscfosc. .2)2) 电源控制寄存器电源控制寄存器PCONPCON中的波特率中的波特率 倍增位倍增位SMODSMOD. .3)3) 定时器定时器/ /计数器计数器T1T1的溢出率设置的溢出率设置 2. 2. 四种工作方式下的波特率四种工作方式下的波特率1) 1) 方式方式0 0:: foscfosc/12/122 2)方式)方式2 2:: 2 2SMODSMOD××foscfosc/64/642) 2) 方式方式1 1、、3 3:: 由定时器由定时器T1T1产生产生473. 3. 定时器定时器/ /计数器计数器T1T1溢出率的计算溢出率的计算1)1) T1 T1溢出率=定时溢出次数溢出率=定时溢出次数/ /s s2)2) 定时器定时器/ /计数器工作方式的选择计数器工作方式的选择. . 计算计算T1T1方式方式2(2(自动重装自动重装) )求溢出率求溢出率. .设设X X为预置值为预置值. .溢出一次的时间为溢出一次的时间为( (2 28 8--X X )×12/)×12/foscfosc溢出率溢出率(T1)(T1)==foscfosc/12/(2/12/(28 8--X X ) )次次/s/s例例:设晶振频率:设晶振频率foscfosc ==6MHz,6MHz, 预置值预置值X X ==F3H,F3H,则有则有 溢出率溢出率(T1)(T1)==6×106×106 6/(2/(28 8--F3H)/12F3H)/12 ≈38461.5 ≈38461.5次次/s/s483. 3. 波特率的设置波特率的设置 ( (示意图适于方式示意图适于方式1 1和和3 3) )波特率波特率==(2(2SMODSMOD/32)×(/32)×(定时器定时器T1T1的溢出率的溢出率) ) ==(2(2SMODSMOD/32)×/32)×foscfosc/12/(2/12/(28 8--X X ) )应用上给出波特率应用上给出波特率, ,求定时器求定时器预置值预置值X X:: X X==256256--2 2SMODSMOD××foscfosc/(/(波特率波特率×32×12)×32×12)49例例::foscfosc==6MHz,SMOD6MHz,SMOD==1,1,波特率波特率2400bit/s,2400bit/s, 求定时器预置值求定时器预置值X .X .则则::X X==256256--2 21 1×6×10×6×106 6/ /((2400×32×122400×32×12)) ==242.98≈243 → F3H242.98≈243 → F3H4. 4. 常用的波特率常用的波特率50常用的波特率常用的波特率 ( 11.0592MHz( 11.0592MHz晶振晶振) )11.0592MHz11.0592MHz晶振时波特率达晶振时波特率达1920019200bit/s,bit/s,误差为误差为零零. . 513.3.6 3.3.6 异步通信的奇偶校验异步通信的奇偶校验1. 1. 串行通信方式的用法归纳串行通信方式的用法归纳* * 串行口方式串行口方式1 1帧格式有帧格式有8 8个数据位个数据位, , 无校验无校验 功能功能, ,可用求批量数据可用求批量数据累加和累加和方法来校验方法来校验, , 或用或用最高位最高位作校验位作校验位. .* * 串行口方式串行口方式2 2和和3 3帧格式有帧格式有9 9个数据位个数据位, ,双机双机 通信时可用通信时可用第第9 9位位作校验位作校验位. .* * 多机通信时第多机通信时第9 9位作地址帧位作地址帧/ /数据帧识别位数据帧识别位, , 可用求批量数据可用求批量数据累加和累加和方法来校验方法来校验. .* * 工程上双机通信可用多机通信的方法实现工程上双机通信可用多机通信的方法实现. .52串行口各方式的帧格式及校验方法串行口各方式的帧格式及校验方法 532. 2. 奇偶校验标志奇偶校验标志 ( (特征校验位特征校验位) )奇偶标志奇偶标志PSW.0,PSW.0,简称简称P,P,由由ACCACC自动生成自动生成, ,规则规则: : ACC ACC中中1 1的个数为偶数时,的个数为偶数时,P P==0.0. ACC ACC中中1 1的个数为奇数时,的个数为奇数时,P P==1.1.例例::A A==0000 0011 P0000 0011 P==0 0 A A==0000 1011 P0000 1011 P==1 13. 3. 偶校验偶校验 ( (用第用第9 9位位) )第第9 9位由发送方数据中奇偶标志的性质决定位由发送方数据中奇偶标志的性质决定. . ACCACC发送字节有发送字节有P P==0 0, ,则第则第9 9位补入位补入0,0,即即TB8TB8==0 0ACCACC发送字节有发送字节有P P==1 1, ,则第则第9 9位补入位补入1,1,即即TB8TB8==1 1544. 4. 奇校验奇校验 ( (用第用第9 9位位) )第第9 9位由发送方数据中奇偶标志的性质决定位由发送方数据中奇偶标志的性质决定. . ACCACC发送字节有发送字节有P P==0 0, ,则第则第9 9位补入位补入1,1,即即TB8TB8==1 1ACCACC发送字节有发送字节有P P==1 1, ,则第则第9 9位补入位补入0,0,即即TB8TB8==0 05. 5. 奇偶校验位奇偶校验位TB8TB8的编程要领的编程要领 (1) (1) “补偶补偶”发送发送MOV AMOV A,@,@RiRi ;;待发送的字节送入待发送的字节送入A AMOV CMOV C,,P P ;;奇偶标志送入进位位奇偶标志送入进位位MOV TB8MOV TB8,,C C ;;装入第装入第9 9位位TB8TB8中中MOV SBUFMOV SBUF,,A A ;;发送发送55(2) (2) “补奇补奇”发送发送 MOV A MOV A,@,@RiRi ;;待发送的字节送入待发送的字节送入A A MOV C MOV C,,P P ;;奇偶标志送入进位位奇偶标志送入进位位 CPL C CPL C ;;取反补奇取反补奇 MOV TB8MOV TB8,,C C ;;装入第装入第9 9位位TB8TB8中中 MOV SBUFMOV SBUF,,A A ;;发送发送6. 6. 奇偶校验位奇偶校验位RB8RB8的编程要领的编程要领 ( (书书P.85)P.85) (1) (1) “偶校验偶校验”接收接收(2) (2) “奇校验奇校验”接收接收563.3.7 3.3.7 串行口的通信应用串行口的通信应用1. 1. 串行口初始化的编程串行口初始化的编程 ( (查询方式为例查询方式为例) )查询方式查询方式包括包括: :设定时器设定时器T1T1工作方式工作方式, ,串行口工作方串行口工作方式和波特率式和波特率, ,启动定时器等启动定时器等. .中断方式中断方式还需设:中断还需设:中断入口入口, ,触发方式触发方式, ,优先级优先级, ,允许中断等允许中断等. .SINTSINT::MOV TMODMOV TMOD,,#20H #20H ;;定时器定时器T1T1模式模式2,2,计数方式计数方式 MOV TH1MOV TH1,,#0F3H #0F3H ;;8 8位自动重装的时间常数位自动重装的时间常数 MOV TL1MOV TL1,,#0F3H#0F3H MOV PCON MOV PCON,,#80H #80H ;;选选SMODSMOD==1,1,波特率加倍波特率加倍 MOV SCONMOV SCON,,#0D0H #0D0H ;;选串行口方式选串行口方式3 3 SET TR1 SET TR1 ;;启动定时器启动定时器T1T1 ┇ ┇572. 2. 主从机中断控制方式的通信编程主从机中断控制方式的通信编程( (书书P.86)P.86)(1) (1) 主机以串行方式主机以串行方式2 2发送发送波特率固定波特率固定, ,只发送不接收只发送不接收, ,用中断控制用中断控制. .(2) (2) 从机以串行方式从机以串行方式2 2接收接收波特率固定波特率固定, , 采用中断控制采用中断控制. .3. 3. 双机查询控制方式的通信编程双机查询控制方式的通信编程( (书书P.87)P.87)(1) (1) 甲机以串行方式甲机以串行方式1 1查询发送查询发送波特率波特率1200bit/s,1200bit/s,采用奇校验采用奇校验. .(2) (2) 乙机以串行方式乙机以串行方式1 1查询接收查询接收波特率波特率1200bit/s,1200bit/s,采用奇校验采用奇校验. .。
