MCS-51单片机的串口通信(通俗易懂).ppt_第1页
MCS-51单片机的串口通信(通俗易懂).ppt_第2页
MCS-51单片机的串口通信(通俗易懂).ppt_第3页
MCS-51单片机的串口通信(通俗易懂).ppt_第4页
MCS-51单片机的串口通信(通俗易懂).ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

,主讲人:jxjsyg,MCS-51单片机的串口通信,你可曾有过这样的困扰?,妈妈下班回来忘记带钥匙,在门外喊你开门,而这个时候你正好在家里玩游戏,而且正玩到关键时刻,你会怎么办?,两个都令人不是很满意的结果,在科学中探索,飞行控制软件是什么东东?,答:它是一个用计算机来控制各功能电路进行不同工作任务的程序。,在探索中发现,受到飞箭飞行控制软件的启发,如果我们把门锁也用计算机来进行控制的话,就克服了之前的困扰。当然,家里面很多电器设备都可以用计算机来进行控制。,通信:即一方传给另一方信息,或者是一方接收来自另一方的信息。,在发现后学习,串口,并口,问:计算上的串口和并口,是用来干嘛的?,答:计算机上的串口和并口都是传输数据的接口,即通信端口。,1、通信的分类?答:并行通信和串行通信。并行通信:数据的各位同时在多根数据线上发送或接收。串行通信:数据的各位在同一根数据线上依次逐位发送或接收。,图1并口通信图2串口通信,新授:,2、串行通信的分类?答:单工、半双工和全双工。,(a)寻呼机,单工,全双工,(c)手机,半双工,(b)对讲机,通信要求,通信双方必须遵循一定的通信协议,即数据格式必须相同,通信速率必须相同(缺省为9600,n,8,1)。,数据格式单片机串口通信时数据是一帧一帧进行发送的。表1数据帧格式,注:对于我们MCS-51单片机(8位)而言,校验位没有意义,除非把数据位改成7位,才能接收到校验位。,通信速率在串行通信中用来衡量数据传输的速率的一个重要指标叫做波特率(BaudRate),亦称比特率。波特率的定义是每秒传输二进制数码的位数。如:波特率为1200bps是指每秒钟能传输1200位二进制数码。,3、MCS-51串口编程,串口工作方式的设置波特率的设置中断设置,串行口工作方式的设置MCS-51的串口有4种工作方式,它是由SCON中的SM1和SM0来决定的。串行口控制寄存器SCON表2SCON各位的定义,(1)SM0,SM1:串行中断方式控制位SM0,SM1=00,方式0,8位同步移位寄存器,其波特率为fosc/12;SM0,SM1=01,方式1,10位异步收发,其波特率可变,由定时器控制;SM0,SM1=10,方式2,11位异步收发,其波特率为fosc/64或fosc/32;SM0,SM1=11,方式3,11位异步收发,其波特率可变,由定时器控制。,(2)TI:发送中断标志位用于指示一帧信息发送是否完成,完成后由硬件自动置位。TI在发送数据前必须由软件清0。(3)RI:接收中断标志位用于指示一帧信息是否接收完,接收完后由硬件自动置位。RI在准备下次接收之前也必须用软件清0。(4)REN:允许接收控制位REN=1时,允许接收;REN=0时,禁止接收。问:如果我们要将串口设置为工作方式1,并且允许接收,该如何设置?答:SCON=0 x50;,返回,波特率的设置在串口工作在方式1时,其波特率为可变,由定时器T1控制。MCS-51定时器的方式2就是自动重装初值的8位定时器,所以用它来做波特率发生器最恰当。当外部晶振选用11.0592MHz时,容易获得标准的波特率。,式中SMOD波特率倍增位;fosc晶振频率;K定时器T1的位数;TC定时器T1的预置初值。把9600波特率代入得定时初值为0 xfd。,方法1,方法2,TMOD=0 x20;/T1工作方式2,8位自动重装初值TH1=0 xfd;/设置波特率为9600TL1=0 xfd;TR1=1;/启动定时器T1,程序编写:,程序该怎么写?,返回,中断设置如果要开启串口,必须要设置相应的中断允许控制位,即串行中断允许控制位和总中断允许控制位。(1)ES:串行中断允许控制位当ES=1时打开串行中断,ES=0时关闭串行中断。(2)EA:总中断允许控制位当EA=1时打开总中断,EA=0时关闭总中断。问:在这里我们要怎么设置?答:ES=1;EA=1;,串行数据缓存寄存器SBUF举例说明:SBUF=temp是把temp里面的内容写入SBUF,即单片机从TXD引脚将其发送出去;temp=SBUF是读取SBUF里面的内容存入temp变量,即单片机从RXD引脚将数据接收并存入temp变量。,MCS-51单片机串口通信完整程序,#includereg51.hvoidInit()SCON=0 x50;/串行口工作方式1,允许接收ES=1;/允许串行中断TMOD=0 x20;/T1工作方式2,8位自动重装初值TH1=0 xfd;/设置波特率为9600TL1=0 xfd;TR1=1;EA=1;voidmain()Init();while(1);voidUart_Int()interrupt4/RI置位后才响应中断,所以进行中断,RI肯定为1unsignedchartemp;temp=SBUF;if(temp=0)P2=0;elseif(temp=1)P2=0 xff;RI=0;,4、作品调试及展示,(a)用串口调试助手控制,(b)用VB编写上位机软件进行控制,利用电脑上的上位机软件对下位机(即单片机)进行调试。,知识拓展(用VB编写的上位机控制软件),Dimkd_n,dkck_n,msgPrivateSubCommand1_Click()OnErrorGoToComm_Errordkck_n=dkck_n+1dkck_n=dkck_nMod2Ifdkck_n=1ThenMSComm1.CommPort=Right(Combo1.Text,1)MSComm1.PortOpen=TrueCommand1.Caption=关闭串口Command2.Enabled=TrueElseMSComm1.PortOpen=FalseCommand1.Caption=打开串口Command2.Enabled=FalseEndIfExitSubComm_Error:SelectCaseErr.NumberCase8002MsgBox无效端口,48,警告Case8005MsgBox端口已打开,48,警告EndSelectdkck_n=0EndSub,PrivateSubCommand2_Click()kd_n=kd_n+1kd_n=kd_nMod2Ifkd_n=1ThenCommand2.Caption=关灯Shape1.FillColor=vbRedMSComm1.Output=0ElseCommand2.Caption=开灯Shape1.FillColor=&H8000000FMSComm1.Output=1EndIfEndSub,专机专用,我终于学会用电脑控制各种电器设备了,课堂小结:1、通信的概念及分类;2

温馨提示

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

评论

0/150

提交评论