第7章-单片机C语言编程串行口通讯.ppt_第1页
第7章-单片机C语言编程串行口通讯.ppt_第2页
第7章-单片机C语言编程串行口通讯.ppt_第3页
第7章-单片机C语言编程串行口通讯.ppt_第4页
第7章-单片机C语言编程串行口通讯.ppt_第5页
已阅读5页,还剩55页未读, 继续免费阅读

下载本文档

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

文档简介

1、第7章MCS-51单片机串口,第7章MCS-51单片机串口,内容7.1串行通信基础知识7.2串口结构与控制7.3串口工作模式7.4串口应用实例7.5单片机与PC机通信接口电路,本章要点本章主要介绍MCS-51单片机串口的结构、工作原理及应用。主要内容包括串行通信的基本知识、MCS-51单片机的串口结构、串口的工作方式以及单片机与PC机之间的通信接口电路。7.1串行通信的基本知识,主要内容7.1.1数据通信7.1.2异步通信和同步通信7.1.3波特率7.1.4通信方向7.1.5串行通信接口类型7.1.1数据通信,计算机与外界的信息交换称为通信。有两种基本的通信方法:并行通信和串行通信。1.并行通

2、信将单位信息的每一位数据(通常为一个字节)同时传输的通信方法称为并行通信。2.串行通信单元信息的每一位以分时方式依次传输的通信模式称为串行通信。7.1.1数据通信,图7-1并行通信示意图。从图中可以看出,并行通信连接多,速度快,适合短距离通信;串行通信连接少,速度慢,适合长距离通信。图7-1是并行通信的示意图,图7-2是串行通信的示意图。1.异步串行通信,接收器如何区分D0、D1、D2、D3和D4的起始位?只需要一条数据线;当不传输数据时,传输线处于高电平(MARK状态)。字节按照固定的帧格式传输。采用不同的编码方案,传输的字符可以是5、6、7或8位。7.1.2异步通信和同步通信。异步通信意味

3、着通信的发送和接收设备通过使用它们自己的时钟来控制数据的发送和接收过程。为了协调双方的发送和接收,要求发送和接收设备的时钟尽可能一致。同步通信在同步通信中,当发送每个数据块时,发送一个或两个同步字符来同步发送和接收,然后按顺序发送数据。数据块的字符之间取消了起始位和终止位,从而提高了通信速度。7.1.2异步通信和同步通信,图7-4同步通信数据帧格式需要两条线,一条数据线数据和一条时钟线clock根据时钟信号,数据位从低到高逐个传输。7.1.3波特率。在串行通信中,对数据传输速度有一定的要求。波特率表示每秒传输的位数,单位为b/s(每秒位数,缩写为bps)。例如,数据传输速率是每秒10个字符,如

4、果每个字符的一帧是11位,传输波保持速率是11b/字符10个字符/110兆字节/秒。异步通信的传输速率一般在5019200兆字节/秒之间。在异步通信中,接收设备和发送设备必须保持相同的波特率。7.1.4通信方向,单工模式:一对传输线只能在一个方向传输数据;半双工模式:一对传输线允许数据双向传输,但不能同时传输;全双工模式:用两对传输线连接发射机和接收机,发射和接收可以同时进行。7.1.4单工、半双工和全双工通信模式,7.1.5串行通信接口类型,根据不同的串行通信格式和约定(如同步模式、通信速率、数据块格式等)。),形成了许多串行通信接口标准,如UART(串行异步通信接口)、USB(通用串行总线

5、接口)、I2C(集成电路接口)等。7.2串口结构和控制,主要内容7.2.1 MCS-51串口结构7.2.2与串口7.2.3 bau相关的特殊功能寄存器在8051中,如果想通过串口接收数据,8051会自动接收串行数据,并将数据收集到串行缓冲区中。当8位数据到达时(串行缓冲区已满),8051将被中断,因此我们应该将这些数据带走。7 . 2 . 2与串口相关的特殊功能寄存器,1控制状态寄存器SCON用于定义串口通信端口的工作模式并反映串口的状态,其字节地址为98H,复位值为0000000b,可寻址格式为:SM0和SM1(SCON.7,SCON.6):串口工作模式选择位。7.2.2与串行端口相关的特殊

6、功能寄存器,SM2(SCON.5):多机通信控制位,用于模式2或3。任(SCON.4):允许接收由软件设置或清除的控制位。SM2:允许模式2和模式3执行多机通信控制位。在模式0,1中必须为0。(不需要)REN:允许串行端口接收控制位。写1表示允许接收,写0表示禁止接收。在工作模式2和模式3下,发送的第9个数据由软件写入1或0。RB8:在操作模式2和模式3下接收到第9位数据。TI:发送中断标志,发送SBUF中的数据发出后,硬件自动设置TI。技术信息必须由软件清除。接收到中断标志后,硬件自动设置中断标志。国际扶轮必须被软件清除。MCS-51单片机串行通信接口,SFR:SCON串行接口控制器(98H

7、),TB8(SCON.3):传输数据的第9位。RB8(SCON.2):接收数据的第9位。发送中断标志。接收中断标志。7.2.2与SerVices端口相关的特殊功能寄存器,关于ti和ri:SerVices发送中断标志TI和接收中断标志RI是同一个中断源,而CPU事先不知道是发送中断标志TI还是接收中断标志RI产生的中断请求,因此在全双工通信时必须由软件来判断。D7,D0,SMOD:波特率加倍位。计算模式1、2和3的波特率时,1的波特率加倍,而0的波特率不加倍。SFR:PCON(87H),2功率控制寄存器PCON功率控制寄存器PCON(地址87H),只有SMOD位与串行端口操作相关。7.2.3波特

8、率设计,模式0和模式2的波特率是固定的,模式1和模式3的波特率由定时器T1的溢出率决定。在增强型单片机中,T2还可以作为波特率发生器。1模式0的波特率固定为振荡频率的1/12。它不受PCON寄存器中SMOD位的影响。模式0的波特率=fosc/12,2模式2的接收和发送波特率的移位时钟由振荡频率fosc的第二拍P2时钟(fosc/2)给出,因此模式2的波特率取决于PCON的SMOD位的值:当SMOD=0时,波特率为fosc的1/64;如果SMOD=1,波特率是fosc的1/32。也就是说,模式2的波特率=2 smodfosc/64,7.2.3波特率设计,模式1和模式3 (1)T1的3个波特率用作

9、波特率发生器。在最典型的应用中,定时器T1选择定时器模式2,此时,n=8,定时器的初始值为X:因此,X=256-,模式1和3的波特率=即波特率=/(2n-初始值),7.2.3波特率设计,(2)在增强型微控制器中,T2用作波特率发生器,T2也可以用作波特率发生器。当寄存器T2CON的位TCLK=1和/或RCLK=1时,串行端口被允许获得从T2发送和/或接收的波特率。串行端口模式1和3的波特率=T2溢出率/16当定时器2用作波特率发生器时,计数在每个状态周期内递增。这样:模式1和3的波特率=,7.2.3波特率设计,7.3.1串口模式07.3.2串口模式17.3.3串口模式2和模式3,7.3串口操作

10、模式,7.3.1串口模式0,同步移位寄存器输入/输出模式0。RXD是数据输入或输出,TXD是移位时钟,作为外部元件的同步信号。模式0不适合两个89C52之间的数据通信,单片机的接口扩展可以通过外部移位寄存器实现。这样,接收/发送的数据是8位,低位在前,没有起始位、奇偶校验位和停止位,波特率是固定的。在工作模式0下发送数据时,通常使用外部移位寄存器(如74HC164)实现串并行转换,用于扩展键盘和显示界面。74hc164 8位串行输入、并行输出移位寄存器,rxd、txd、p1.0、d0,实际上,工作模式0很少用于接收数据。7.3.1串口模式0,发送电路,接收电路,7.3.2串口模式1,真正用于串

11、口发送或接收,是一个10位通用异步接口。TXD和RXD分别用于发送和接收数据。发送和接收数据帧的格式是1位起始位、8位数据位(低位优先)、1位停止位,总共10位。接收时,停止位进入SCON的RB8,这样可以调整传输的波特率。7.3.3串行端口模式2和模式3,串行端口工作在模式2和模式3,这是每帧11位异步通信格式,由TXD和RXD发送和接收(两种模式的操作完全相同,除了特殊的波形速率)。每帧11位:1个起始位、8个数据位(低位优先)、1个可编程第9数据位和1个停止位。传输时,第9个数据位(TB8)可以设置为1或0,或者奇偶校验位可以载入TB8。接收时,第9个数据位进入SCON的RB8。7.4串

12、口应用实例,主要内容7.4.1同步模式应用7.4.2异步模式应用,7.4.1同步模式应用,MSC-51单片机串口在模式0下,以同步模式运行。输入输出端口的扩展可以通过外部连接串行输入/并行输出或合并输入/串行输出设备来实现。示例7-2使用89C52串行端口扩展8位并行输出端口,使用164串行输入/输出移位寄存器和165串行输入/输出移位寄存器扩展8位并行输入端口。8位并行输出端口的每一位连接一个发光二极管。需要从8位并行输入端口读取开关的状态值,以便与闭合开关对应的发光二极管点亮。如图7-13所示。7.4.1同步模式的应用,图7-13扩展了模式0下的输入和输出电路。解决方案:数据输入输出通过R

13、XD收发,移位时钟通过TXD送出,74HC164用于串/并转换,74HC165用于并/串转换。c语言程序列表:#包含sbit P1 _ 0=P10;sbit P1 _ 1=P11;无符号字符数据1;void main()SCON=0 X10;/串行端口模式0,允许接收ES=1;EA=1;/允许串行端口中断,应用7.4.1同步模式,P1 _ 0=0;/关闭并行输出P1 _ 1=1;/平行放置数据P1 _ 1=0;/开始串行移位SBUF=0;/发送串行数据时(1);/如果(TI)/发送中断TI=0,则等待中断无效(中断4/中断服务程序);P1 _ 0=1;/打开并行输出,7.4.1在同步模式下应用

14、,否则/接收中断RI=0;数据=SBUF/读取接收到的数据P1 _ 0=0;/关闭并行输出SBUF=data1/发送串行数据P1 _ 1=1;/P1_1=0表示下次接收;/数据准备,7.4.1同步应用,7.4.2异步应用,串行端口模式1与模式3相似,波特率设置相同,只是模式3比模式1多一个数据附加电位。模式2与模式3基本相同(只是波特率设置不同),接收/发送11位信息:开始时1个起始位(0),中间8个数据位后1个程序控制位(由用户设置的SCON TB8决定),结束时1个停止位(1)。只有一个程序控制位超过模式1。在例7-3中,片内随机存取存储器50H5FH中的数据串行发送,第9个数据位用作奇偶

15、校验位,晶体振荡器设置为11.0592mHz,波特率为2 400b/s,串行端口模式3的发送程序被编程。解决方案:使用TB8作为奇偶校验位,将数据的奇偶校验位P写入TB8,然后再写入传输缓冲区。此时,第9位数据用于奇偶校验,传输被中断。,7.4.2异步应用程序,c语言程序列表:#包含无符号字符I=0;无符号字符数组_ at _ 0 x50/发送缓冲区void main()SCON=0 xc0;/串口初始化TMOD=0 x20;/定时器初始化TH1=0 xf4TL1=0 xf4TR1=1;ES=1;EA=1;/中断初始化ACC=arrayi/将第一个数据发送到TB8=P;/累加器,目的是取p位S

16、BUF=ACC/发送数据时(1);/等待中断,7.4.2异步应用,P(PSW.0)奇偶校验标志:P=1,A中的“1”为奇数,P=0,A中的“1”为偶数,无效服务器()中断4/串口中断服务程序TI=0;/清除发送中断标志ACC=阵列I;/下一个数据TB8=P;SBUF=ACC如果发送(i=16) /则ES=0;/禁止串行口中断,7.4.2异步应用,例7-4:编写接收程序,将接收到的16字节数据发送到片内RAM 50H5FH单元。用第9个数据位作为奇偶校验位,晶体振荡器为11.059 2兆赫,波特率为2 400b/s.解决方案:RB8用作奇偶校验位。接收时,取出该位进行验证,接收方式为查询。7.4.2异步应用程序,c语言程序列表:#包括无符号字符I;无符号字符数组_ at _ 0 x50/接收缓冲区无效主()SCON=0 xd 0;/串口初始化,允许接收TMOD=0 x20;TH1=0 xf4TL1=0 xf4TR1=1;7.4.2异步应用,对于(I=0;i16我)/接收16个数据的同时(!国际康复会);/等待一次接收完成,RI=0;ACC=SBUF如果(RB8=P) /正

温馨提示

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

评论

0/150

提交评论