第07章单片机串行通信系统专业教育_第1页
第07章单片机串行通信系统专业教育_第2页
第07章单片机串行通信系统专业教育_第3页
第07章单片机串行通信系统专业教育_第4页
第07章单片机串行通信系统专业教育_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、第第0707章章 单片机串行通信系统单片机串行通信系统7.1 概述6.2 串行通信接口7.3 串行通信工作方式7.4 串行通信波特率设置7.5 串行方式时间显示proteus仿真 1 1学习幻灯 串行通信优点串行通信优点: :便于长距离传送便于长距离传送 缺点缺点: :传送速度较慢传送速度较慢计算机与外界信息交换称为计算机与外界信息交换称为通信通信。通信的通信的基本方式基本方式可分为并行通信和串行通信:可分为并行通信和串行通信:并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;串行通信串行通信是数据的各位依次逐位发送或接收。是数据的各位依次逐位发送或接收。并行通信

2、优点并行通信优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送7.1 概概 述述串行通信按同步方式可分为异步通信和同步通信。串行通信按同步方式可分为异步通信和同步通信。2 2学习幻灯计 算 机 1计 算 机 2或 外 设gndgnd计 算 机 1计 算 机 2或 外 设gndgnd发 送接 收(a )(b )并行通信和串行通信3 3学习幻灯7.1.1 异步通信异步通信4 4学习幻灯 串行异步传送中,通信双方必须事先约定:串行异步传送中,通信双方必须事先约定: 1、字符格式。双方要事先约定字符的编、字符格式。双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规码形式、奇

3、偶校验形式及起始位和停止位的规定。定。 2、在异步通信中,发送端与接收端的波、在异步通信中,发送端与接收端的波特率必须一致。特率必须一致。 (波特率波特率(baud rate)。波特率就是数据的。波特率就是数据的传送速率,即每秒钟传送的二进制数位数,单传送速率,即每秒钟传送的二进制数位数,单位为位位为位/秒。)秒。)5 5学习幻灯常用标准波特率: b/s110、 300、 600、1200、1800、2400、4800、9600、192006 6学习幻灯7.1.2 同步通信同步通信7 7学习幻灯 波特率的倒数即为每位传输所需的时间。波特率的倒数即为每位传输所需的时间。 相互通信的甲乙双方必须具

4、有相同的波特率,否则无法相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。成功地完成串行数据通信。串行通信波特率串行通信波特率波特率波特率bps(bit per second)bps(bit per second)定义定义: 每秒传输数据的位数,即:每秒传输数据的位数,即:1波特波特 = 1位位/秒(秒(1bps1bps)8 8学习幻灯7.1.3 7.1.3 串行通信的制式串行通信的制式 串行通信中,数据通常是在二个端点(点对点)之间进行串行通信中,数据通常是在二个端点(点对点)之间进行传送,按照数据流动的方向可分成三种传送模式传送,按照数据流动的方向可分成三种传送模式:

5、 单工、半双单工、半双工、全双工工、全双工. 1 1、单工方式、单工方式(simplex) :数据仅按一个固定方向传送。:数据仅按一个固定方向传送。9 9学习幻灯2 2、半双工制式(、半双工制式(half duplexhalf duplex) 使用同一根传输线,数据可双向传送,但不能使用同一根传输线,数据可双向传送,但不能同时进行。同时进行。1010学习幻灯3 3、全双工制式(、全双工制式(full duplexfull duplex) 数据的发送和接收可同时进行数据的发送和接收可同时进行1111学习幻灯单工:单工:广播广播双工:双工:电话电话半双工:半双工:对讲机对讲机1212学习幻灯指令清

6、指令清0 ri/ti波特率发生器下降沿表示“0”起始位开始波特率因子:16波特率加倍7.2 80c517.2 80c51串行通信接口串行通信接口1313学习幻灯波特率因子为保证数据传送的准确性,发送/接收时钟频率f应大于等于波特率b f= nb n为波特率因子。同步时:n=1异步时:通常n=16,即16个时钟脉冲传送一位数据,在7、8、9三个时钟脉冲边沿采样数据,并采用三取二原则确定数据值1414学习幻灯波特率误差与时钟频率设晶振频率:6mhz. smod=0,串口方式1波特率b=4800 b/s 波特率误差 8.5%波特率b=1200 b/s 波特率误差 0.1% 波特率不同,误差不同若选择

7、晶振频率:11.059mhz. 波特率误差普遍很小1515学习幻灯 发送时,只需将发送数据输入发送时,只需将发送数据输入sbufsbuf,cpucpu将自动启动将自动启动和完成串行数据的发送;和完成串行数据的发送; 接收时,接收时,cpucpu将自动把接收到的数据存入将自动把接收到的数据存入sbufsbuf,用户,用户只需从只需从sbufsbuf中读出接收数据中读出接收数据。串行口特殊功能寄存器串行口特殊功能寄存器 5个个1 1、串行数据缓冲器、串行数据缓冲器sbufsbuf 在逻辑上在逻辑上只有一个,既表示发送寄存器,又表只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址示接收

8、寄存器,具有同一个单元地址99h99h,用,用同一同一寄存器名寄存器名sbufsbuf。 在物理上有两个,一个是发送缓冲寄存器,另在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。一个是接收缓冲寄存器。1616学习幻灯2 2、串行控制寄存器、串行控制寄存器sconsconsconscond7d7d6d6d5d5d4d4d3d3d2d2d1d1d0d0位名称位名称sm0sm0sm1sm1sm2sm2renrentb8tb8rb8rb8titiriri位地址位地址9fh9fh9eh9eh9dh9dh9ch9ch9bh9bh9ah9ah99h99h98h98h功能功能工作方式工作方式选择

9、选择多机通信控多机通信控制制接收接收 允许允许发送发送 第第9 9位位接收接收 第第9 9位位发送发送 中中断断接收接收 中中断断 sm0 sm1 sm0 sm1 串行口工作方式选择位。串行口工作方式选择位。 sm2 sm2 多机通信控制位。多机通信控制位。 ren ren 允许接收控制位。允许接收控制位。ren=1ren=1,允许接收。,允许接收。 tb8 tb8 方式方式2 2和方式和方式3 3中要发送的第中要发送的第9 9位数据。位数据。 rb8 rb8 方式方式2 2和方式和方式3 3中要接收的第中要接收的第9 9位数据。位数据。 ti ti 发送中断标志。发送中断标志。 ri ri

10、接收中断标志。接收中断标志。1717学习幻灯sm0、sm1:串行口工作方式选择位。用于选择四种工作方式:串行口工作方式选择位。用于选择四种工作方式sm0sm0sm1sm1方式方式功能功能波特率波特率0 00 0方式方式0 0移位寄存器方式移位寄存器方式f foscosc/12/120 01 1方式方式1 18 8位异步通信方式位异步通信方式可变可变1 10 0方式方式2 29 9位异步通信方式位异步通信方式f foscosc/32/32或或f foscosc/64/641 11 1方式方式3 39 9位异步通信方式位异步通信方式可变可变1818学习幻灯sm2通常,sm2主要用于从机的状态控制s

11、m2=0 表示从机为数据传送状态sm2=1 表示从机为地址传送状态1919学习幻灯3) ren允许串行接收控制位 ren0 禁止接收数据 ren1 允许接收数据4) tb8发送数据第9位。 在方式2和方式3时,tb8为所要发送的第9位数据 在多机通信中,以tb8位的状态表示主机发送的信息是否地址。在sm2=1时,tb8=1,表明信息为地址 但在sm2=0时,也可用作数据的奇偶校验位。方式0,方式1中,该位不用2020学习幻灯5) rb8接收数据第9位 在方式2、3时,rb8是接收的第9位数据。可作为奇偶校验位或 地址帧的标志 在方式1时,若sm2=0,rb8是接收的停止位 在方式0时,不使用r

12、b86) ti发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位,并向cpu申请中断 cpu在响应中断后,必须用软件清零。 在非中断方式,ti也可供查询使用。 7) ri接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之前,该位由硬件置位,并向cpu申请中断 在cpu响应中断后,也必须用软件清零 在非中断方式,ri也可供查询使用。 2121学习幻灯3 3、电源控制寄存器、电源控制寄存器pconpconpconpcond7d7d6d6d5d5d4d4d3d3d2d2d1d1d0d0位名称位名称

13、smodsmodgf1gf1gf0gf0pdpdidlidlsmod=1:波特率加倍smod=0:表示波特率不加倍。2222学习幻灯)gf1,gf0用户可自行定义的通用标志位 )pd掉电方式控制位 pd=0:常规工作方式 pd=1:进入掉电方式 cpu处于掉电方式时,振荡器停振,片内ram和srf的值保持不变,p0p3口维持原状,程序停止。只有复位能退出掉电方式。 4)idl待机方式(空闲方式)控制位。 idl=0:常规工作方式 idl=1:进入待机方式cpu处于待机方式时,振荡器继续振荡,中断、定时器、串口功能继续有效,片内ram和srf保持不变,cpu状态保持,p0p3口维持原状,程序停顿

14、。中断、复位都能退出待机状态。 2323学习幻灯ea-eseset1ex1et0ex0afhachachabhaaha9ha8h4. 中断允许控制寄存器中断允许控制寄存器ie(a8h)总中断允许控制位。ea = 1,开放所有中断;ea = 0,禁止所有中断。 串行口中断(包括串行发、串行收)允许位。es = 1,允许串行口中断;es = 0,禁止串行口中断。 定时/计数器t1中断允许位。et1 = 1,允许定时器t1中断;et1 = 0,禁止定时器t1中断。 外部中断1中断允许位。ex1 = 1,允许外部中断1中断;ex1 = 0,禁止外部中断1中断。 定时/计数器t0中断允许位。et0 =

15、1,允许定时器0中断;et0 = 0,禁止定时器0中断。外部中断0中断允许位。ex0 = 1,允许外部中断0中断;ex0 = 0,禁止外部中断0中断。 2424学习幻灯5. 中断优先级控制寄存器中断优先级控制寄存器ip(b8h)pspspt1px1pt0px0bchbchbbhbahb9hb8h串行口中断优先级控制位。ps = 1,设定串行口为高优先级中断;ps = 0,设定串行口为低优先级中断。 定时器t1中断优先级控制位。pt1 = 1,设定定时器t1中断为高优先级中断;pt1 = 0,设定定时器t1中断为低优先级中断。 外部中断1中断优先级控制位。px1 = 1,设定外部中断1为高优先级

16、中断;px1 = 0,设定外部中断1为低优先级中断。 定时器t0中断优先级控制位。pt0 = 1,设定定时器t0中断为高优先级中断;pt0 = 0,设定定时器t0中断为低优先级中断。 外部中断0中断优先级控制位。px0 = 1,设定外部中断0为高优先级中断;px0 = 0,设定外部中断0为低优先级中断。 中断源中断源 同级自然优先级同级自然优先级外部中断0 最高级定时器t0中断外部中断1 定时器t1中断 串行口中断 最低级 2525学习幻灯工作方式移位寄存器方式,可外接移位寄存器以扩展i/o口,也可以外接同步输入/输出设备。一帧信息有8位数据,低位在前,高位在后,没有起始位和停止位 数据从rx

17、d输入或输出。txd用来输出同步脉冲。数据格式如下:d0d1d2d3d4d5d6d7波特率固定为fosc/12。前后7.3 串行通信方式2626学习幻灯指令将ti/ri清零2727学习幻灯方式0工作时,多用查询方式编程:发送: mov sbufmov sbuf,a a jnb tijnb ti,$ $ clr ti clr ti 接收: jnb rijnb ri,$ $ clr riclr rimov a, sbufmov a, sbuf注)复位时,scon被清零,工作方式的缺省值为方式0。接收前,务必先置位ren=1ren=1方允许接收数据。2828学习幻灯【例例7.3-17.3-1】74l

18、s165芯片的输入端接8个开关,利用单片机串行方式0将开关的状态串行输入单片机,并在led上显示。 org 0000h ;0000h单元存放转移指令ajmp start ;跳转到主程序org 0030h ;主程序从0030h开始存放start:mov scon,#10h ;设定串行口为方式0,并允许接收loop:clr p3.2;并行输入数据 setb p3.2;允许串行移位操作 jnb ri,$;等待接收完毕 clr ri;标志位清零 mov a,sbuf ;接受数据 mov p2,a;送p2口显示 lcall delay ;调用延时程序 ajmp loop ;循环2929学习幻灯3030学

19、习幻灯delay:mov r6,#10 ;延时程序 d1:mov r7,#248 djnz r7,$ djnz r6,d1 retend 3131学习幻灯工作方式8位异步通信接口,一帧有1o位信息,1位起始位(低电平信号),8位数据位(先低位后高位),1位停止位(高电平信号)。波特率可变,由定时器/计数器t1的溢出率和smod(pcon.7)决定。其格式如下:起始位 数据位停止位 d0d1d2d3d4d5d6d7 1波特率=(2smod/32)t1溢出率3232学习幻灯3333学习幻灯定时器定时器t1t1的溢出率计算的溢出率计算 定时器的溢出率是指在1秒钟内产生溢出的次数。定时器t1在工作方式

20、2时,定时器t1的溢出一次所需要的时间为: (28n)12时钟周期时钟周期=(28n)12/fosc(秒秒) ) 于是,定时器每秒所溢出的次数为: 定时器定时器t1t1的溢出率的溢出率=fosc/(12=fosc/(12(2(28 8n)n) 式中的n为时间常数,即t1的初值。 3434学习幻灯波特率与计数初值的关系波特率与计数初值的关系设波特率用b表示,计数初值用n表示,则波特率b与t1计数初值n之间的关系可以表示为:)256(12322nfboscsmodbfbfnoscsmodoscsmod3842256123222563535学习幻灯3636学习幻灯3737学习幻灯【例例7.3-27.

21、3-2】双机通信。设甲乙两机以串行方式1进行数据传送,fosc=11.0592mhz,波特率为1200b/s。甲机发送的1、2、3、4、5、6、7、8八个数字,存在内部ram40h4fh单元中,乙机接收后在数码管上显示。编程思路:t1的设置。设smod=0,t1工作在方式2。t0不用,则tmod=20h,t1的计数初值为:x=256-(2011059200)/(32121200)=232=e8h由于t1用于波特率发生器,故禁止中断,tr1=1启动。串口设置。工作方式1(m0m1=01),其他位均为0,可得scon=40h。查询方式传送,禁止串口中断。甲乙两机设置相同。3838学习幻灯3939学

22、习幻灯org 0000h ;在0000h单元存放转移指令ljmp txda ;转移到主程序org 0100h ;主程序从0100h开始txda:mov 40h,#01h;40h单元存入01hmov 41h,#02h;41h单元存入02hmov 42h,#03h;42h单元存入03hmov 43h,#04h;43h单元存入04hmov 44h,#05h;44h单元存入05hmov 45h,#06h;45h单元存入06hmov 46h,#07h;46h单元存入07hmov 47h,#08h;47h单元存入08hmov tmod,#20h;置t1定时方式24040学习幻灯mov tl1,#0e8h;

23、t1初值.mov th1,#0e8hclr et1;禁止t1中断setb tr1;t1启动mov scon,#40h;串行方式1,禁止接收mov pcon,#00h;smod=0clr es;禁止串行中断mov r0,#40h;发送数据区首地址mov r2,#8;发送数据长度trsa:mov a,r0;读一个数据 mov sbuf,a;发送 jnb ti,$ ;等待一帧数据发送完毕 clr ti;清发送中断标志 inc r0;指向下一字节单元 djnz r2,trsa;判8个数据发完否?未完继续 sjmp $ ;循环等待 end 4141学习幻灯乙机接收程序:org 0000h ;在0000h

24、单元存放转移指令ljmp rxdb ;转移到主程序org 0100h ;主程序从0100h开始rxdb:mov tmod,#20h;t1定时方式2 mov tl1,#0e8h;t1计数初值 mov th1,#0e8h;t1计数重装值clr et1;禁止t1中断 setb tr1;t1启动 mov scon,#40h;置串行方式1,禁止接收 mov pcon,#00h;置smod=0 clr es;禁止串行中断 mov r0,#50h ;置接收数据区首地址 mov r2,#8 ;置接收数据长度 setb ren;启动接收4242学习幻灯rdsb:jnb ri,$;等待一帧数据接收完毕 clr r

25、i;清接收中断标志 mov a,sbuf;读接收数据mov r0,a;存接收数据inc r0;指向下一数据存储单元 djnz r2,rdsb;判8个数据接收完否?start1:mov r1,#50h ;显示数据首地址loop4:mov a,r1;取显示数据mov dptr,#tab ;置共阳字段码表首址 movc a,a+dptr ;查段码表 mov p2,a ;送p2口显示 lcall delay ;调用延时程序 inc r1 ;显示内容加1 cjne r1,#58h,loop4 ;判断循环是否结束 ajmp start1 ;跳转到start1 4343学习幻灯delay: mov r5,#

26、10 ;延时程序,给r5赋值del1: mov r6,#100 ;中循环控制del2: mov r7,#150 ;内循环控制del3: djnz r7,del3 ;内循环体 djnz r6,del2 ;中循环体 djnz r5,del1 ;外循环体 rettab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;段码表end 4444学习幻灯工作方式9位异步通信接口,一帧有11位,1位起始位(低电平信号),8位数据位(先低位后高位),1位可编程位,1位停止位(高电平信号)。其格式如下: 起始位 数据位停止位 d0d1d2d3d4d5d6d7tb

27、8 1在工作方式2下,波特率只有二种:smod0时,波特率为f0sc/64,smod1时,波特率为f0sc/32。波特率=(2smod/64)fosc4545学习幻灯4646学习幻灯 工作方式串行接口工作方式3也是9位异步通信接口,一帧信息有11位,1位起始位(低电平信号),8位数据位(先低位后高位),1位可编程位,1位停止位(高电平信号)。但波特率与工作方式1相同,由定时器/计数器t1的溢出率和smod(pcon.7)决定。也就是说方式3的工作机制与方式2相同,波特率与方式1相同,它是方式1和方式2的综合运用。 4747学习幻灯方式0方式1方式2、3sm0,sm1000110,11 输出(发

28、送)tb8未使用未使用发送第9位信息一帧位数81011数据位数889rxd输出串行数据txd输出同步脉冲输出数据输出数据波特率fosc/122smodt1溢出率/32方式2:2smodfosc/64方式3:同方式1中断一帧发送完,置ti=1,响应中断后,软件清ti4848学习幻灯方式0方式1方式2、3sm0,sm1000110,11输入(接收)rb8未使用sm2=0,停止位第9位数据ren接收时ren=1sm200正常接收0多机通信1一帧位数81011数据位数889波特率与发送相同接收条件无ri=0且sm2=0或停止位1ri=0且sm2=0或第9位数1中断接收完毕:置ri=1,响应中断后,软件

29、清rirxd输入串行数据输入串行数据输入串行数据txd输出同步脉冲4949学习幻灯5 多机通信mcs-51单片机工作在串行方式2、3时,具有多机通信功能,可以实现一台主机与多台从机的信息交流。图从机:从机:sm2=1表示接收地址状态,表示接收地址状态, sm2=0表示接收数据状态表示接收数据状态 tb8=1表示发送的信息是地址,表示发送的信息是地址,tb8=0表示发送的信息是数据表示发送的信息是数据5050学习幻灯5151学习幻灯主从多机通信的过程如下:使所有的从机工作在方式2或方式3,且sm2位置1,ren=1,以便接收主机发来的地址。主机发出要寻址的从机的一帧地址信息,其中包括8位需要与之

30、通信的从机地址,第9位tb8=1。所有从机接收到地址帧后,置ri=1。各从机相应中断,进入中断服务程序,进行地址比较。对于地址相同的从机,使sm20,准备接收主机随后发来的数据信息;对于地址不符合的从机,仍保持sm2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧。主机给已被寻址到的从机发送控制指令和数据(数据帧的第9位tb8=0)实现主从通信。 5252学习幻灯5353学习幻灯总结总结串行口应用的6个问题: 1.工作方式:设定scon的sm0、sm1 2.接收/发送:接收时ren=13.数据格式:方式2或3,设置tb84.波特率加倍:若工作方式不是模式0,设定smod5.波特率选

31、择:方式0:固定,方式1,3计算t1初值,设置工作方式。方式2,2选1,选smod=0/1. 6.中断设置:ea、es、ps设置5454学习幻灯为节省单片机并口资源,全自动洗衣机时间显示用串口驱动。全自动洗衣机一次为节省单片机并口资源,全自动洗衣机时间显示用串口驱动。全自动洗衣机一次洗衣时间一般不会超过洗衣时间一般不会超过9999分钟,用分钟,用2 2位位ledled数码管显示时间。用串口扩展并口的时间向仿数码管显示时间。用串口扩展并口的时间向仿真电路如下图所示。真电路如下图所示。7.6 7.6 洗衣机串行方式时间显示电路洗衣机串行方式时间显示电路proteus仿真仿真5555学习幻灯 图中用

32、图中用at89c51单片机串行口扩展单片机串行口扩展2个并行口接个并行口接2位数码管组成显示电路。串行口工作于方式位数码管组成显示电路。串行口工作于方式0,与外,与外接的接的2片移位寄存器片移位寄存器74ls164连接。连接。 74ls164是一个是一个8位串入并出的移位寄存器,功能位串入并出的移位寄存器,功能是接收是接收at89c51单片机串行通信口输出的串行数据并单片机串行通信口输出的串行数据并转换成并行数据输出,从而驱动转换成并行数据输出,从而驱动led数码管显示数码管显示。 两只两只led数码管采用静态扫描显示方式,数码管数码管采用静态扫描显示方式,数码管为共阴极。使用串行口进行为共阴极。使用串行口进行led通信,程序编写相当通信,程序编写相当简单,用户只需将需显示的数据直接送串口发送缓冲简单,用户只需将需显示的数据直接送串口发送缓冲器,等待串行中断即可。器,等待串行中断即可。 5656学习幻灯汇编语言参考程序:org 0000h ;在0000h单元存放转移指令ljmp nain ;转移到主程序org 000bh ;定时器t0的中断入口地址 ljmp interrupt ;转移到中断子程序org 0200h ;主程序从0200h开始main: mov

温馨提示

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

评论

0/150

提交评论