



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1MCS51芯片的串行输入/输出口1.1 串行输入/输出口概述计算机与它的外围设备之间的基本通信模式有两种:并行通信模式和串行通信模式。采用并行通信模式时,例如通过并行输入/输出口P1控制交通灯,所有数据位同时通过并行输入/输出口进行传送。并行通信模式的优点是数据传送速度快,所有的数据位同时传输;缺点是电路复杂,一个并行的数据有多少位,就需要多少条传输线。采用串行通信模式时,所有的数据位按一定的顺序、通过一条传输线逐个地进行传送。串行通信模式的优点是电路简单,仅需要一条传输线;缺点是数据传送速度慢。串行通信模式又可以再分为两种模式:同步通信模式和异步通信模式。AT89S51单片机提供同步通信模式和异步通信模式两种串行通信模式。异步通信模式工作在UART(Universal Asynchronous Receiver and Transmitter),可以同时进行数据的发送和接收。AT89S51单片机串行通信的接收部分具有缓冲能力,即已经接收到的第一个字节在被读取之前就可以开始接收第二个字节。但是应当注意,如果第二个字节完成接收,而第一个字节仍没有被读取,一个字节的数据将被丢失。串行输入/输出具有独立的发送和接收缓冲寄存器,它们共同被称作为串行数据缓冲寄存器(SBUF),并占用特殊功能寄存器的同一个地址(99H)。发送缓冲寄存器只能写入不能读出,接收缓冲寄存器只能读出不能写入,因此它们的区分可以通过指令来实现。串行输入/输出的数据使用管脚RXD(管脚10)和管脚TXD(管脚11)可以同时接收和发送数据。管脚RXD和管脚TXD也就是管脚P3.0和管脚P3.1,这里它们被按P3口的第二功能来使用。1.2 串行输入/输出口的工作方式AT89S51串行口的工作可以被分为4种工作方式。这4种工作方式的简述如下: 工作方式0串行口工作方式0为同步移位寄存器方式。在这种方式下,串行数据的发送和接收都是通过管脚RXD进行,管脚TXD用来传送同步移位脉冲。串行数据一帧的数据位数为8位,传输时低位在前,高位在后。数据传输的波特率是固定的,为单片机时钟频率的1/12。如果单片机的时钟频率为12MHz,则数据传输的波特率是1MB。串行口工作方式0的数据传输波特率不受电源控制寄存器(PCON)中SMOD位的影响。本章将介绍利用串行口工作方式0实现数码管的显示。 工作方式1串行口工作方式1为异步通信(UART)方式。串行数据一帧的数据位数为10位:1位起始位(它的值为0)、8位数据位和1位停止位(它的值为1)。数据位传输时低位在前,高位在后。串行数据的发送通过管脚TXD进行;串行数据的接收通过管脚RXD进行。数据传输的波特率是可变的。在接收时,数据帧中的停止位进入串行口控制寄存器(SCON)的位RB8。 工作方式2串行口工作方式2为异步通信(UART)方式。串行数据一帧的数据位数为11位,1位起始位(它的值为0),8位数据位,1位可编程位和1位停止位(它的值为1)。数据位传输时低位在前,高位在后,紧接着是可编程位。串行数据的发送通过管脚TXD进行;串行数据的接收通过管脚RXD进行。数据传输的波特率是固定的,是单片机的时钟频率的1/32或者1/64。具体工作在那一种波特率由电源控制寄存器(PCON)中SMOD位的内容决定,当SMOD位被置1,波特率是单片机时钟频率的1/32;当SMOD位被清0,波特率是单片机时钟频率的1/64。在发送时,数据帧中可编程位的值取决于串行口控制寄存器(SCON)的位TB8。例如把程序状态字(PSW)的位P的值送入TB8可以实现数据传输的奇偶校验。在接收时,数据帧中的可编程位送入串行口控制寄存器(SCON)的位RB8,停止位这时被丢弃。 工作方式3串行口工作方式3除数据传输的波特率是可变的以外,其它与工作方式2相同1.3 串行输入/输出口工作控制寄存器控制串行输入/输出口工作的控制寄存器有2个:串行口控制寄存器(SCON)和电源控制寄存器(PCON)。 串行口控制寄存器(SCON)串行口控制寄存器(SCON)在特殊功能寄存器中的字节地址为98H,它即可以进行字节寻址,也可以进行位寻址。这个寄存器的格式如表1所示。表1 串行口控制寄存器(PCON)的格式表D7D6D5D4D3D2D1D0PCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998复位值00000000在表1中,每一位的具体功能如下。SM0和SM1:串行口工作方式控制位,工作方式的功能说明如表2所示。表2 串行口的工作方式SM0SM1工作方式功能说明000同步移位寄存器方式0118位异步通信(UART)方式,波特率可变1029位异步通信(UART)方式,波特率为focs/64或者focs/321139位异步通信(UART)方式,波特率可变 表中focs为单片机的时钟频率SM2:串行口工作方式2和3的多机通信控制位。REN:串行接收使能控制位。TB8:串行口工作方式2和3时被发送的第9位数据。RB8:串行口工作方式2和3时被接收的第9位数据。TI:发送中断标志位。RI:接收中断标志位。 电源控制寄存器(PCON)电源控制寄存器(PCON)在特殊功能寄存器中的字节地址为87H,它没有位寻址功能,只能进行字节寻址。这个寄存器的格式如表3所示。表3 电源控制寄存器PCON的格式表D7D6D5D4D3D2D1D0PCONSMODGF1GF0PDIDL复位值0XXX0000电源控制寄存器PCON中仅有D7位,SMOD,在串行输入/输出口的控制中被应用,它被用来控制串行通信的波特率。SMOD为1时的波特率是它为0时的2倍。2基于串行输入/输出口的数码管电路前面在并行输入/输出口的应用中分别介绍了使用P1口实现交通灯的控制和数码管的显示。如果希望同时实现交通灯的控制和数码管的显示,那么仅使用P1口则是不够的,这时需要使用更多的输出端口。如前所述,AT89S51芯片向用户提供的并行输入/输出口是有限的,因此必须想办法进行扩展。应用串行口工作方式0的同步移位寄存器方式是扩展输入/输出能力的一种方法。串行口工作方式0的输出时序图如图1所示。图1 串行口工作方式0的输出时序图当向串行数据缓冲寄存器SBUF写入一个数据,在管脚RXD和管脚TXD将自动产生如图1所示的信号。管脚RXD输出数据,管脚TXD输出同步移位时钟。同步移位时钟的周期等于单片机的工作周期,因此输出一个字节的数据需要8个单片机的工作周期。串行口输出一个字节的数据需要8个单片机的工作周期这点在编程时应该注意,不能连续地编写2条向串行数据缓冲寄存器(SBUF)写入数据的指令。因为如果第一个数据还没有被全部发送出去,这时向串行数据缓冲寄存器(SBUF)再写入一个数据,新写入的数据将覆盖没有完成发送的第一个数据的剩余内容,导致数据传输错误。管脚RXD的输出数据不能直接送入数码管,这是因为串行数据通过一条线输出,而数码管的工作则同时需要8个输入信号。使用8位移位寄存器(串行输入,并行输出)74LS164可以把图1所示的串行信号转换成数码管所需要的并行信号以满足数码管的需要。74LS164的功能表如表4所示。表4 74LS164的功能表输 入输 出MR CLK DSA DSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q70 0 0 0 0 0 0 0 01 0 Q00 Q10 Q20 Q30 Q40 Q50 Q60 Q701 1 1 1 Q00 Q10 Q20 Q30 Q40 Q50 Q601 0 0 Q00 Q10 Q20 Q30 Q40 Q50 Q601 0 0 Q00 Q10 Q20 Q30 Q40 Q50 Q60应用串行口工作方式0和74LS164的数码管的显示电路如图2所示。对比基于串行输出口的数码管电路和基于并行输出口的数码管电路,这里电路的硬件开销并没有增加,74LS164在这里完成了串/并转换和电流放大双重任务。图2 基于串行输出口的数码管的显示电路执行指令: SBUF=0x3f;可以输出共阴极数码管字符“0”的显示代码。显示代码以图1所示的时序从单片机输出。首先显示代码的最低位数据从AT89S51的管脚RXD送到74LS164的管脚DSA和DSB,接着同步移位脉冲从AT89S51的管脚TXD送到74LS164的管脚CLK,在同步移位脉冲上升沿的作用下,显示代码的最低位数据被移入74164的管脚Q0。第2个同步移位脉冲的上升沿接着把代码的最低位数据移入74164的管脚Q1,把跟着最低位的数据移入74LS164的管脚Q0。依次类推,8个同步移位脉冲完成把整个显示代码移入74LS164的输出管脚,其中最低位在管脚Q7,最高位在管脚Q0。串/并转换的整个过程需要8个单片机机器周期。如果单片机的时钟频率为12MHz,该过程需要8us。在转换过程的8us中,数码管的显示是不断变化的错误显示,但是这个时间很短,我们的眼睛分辨不出这个变化。实际上图2所示的基于串行输出口的数码管电路和基于并行输出口的数码管电路的工作区别是分辨不出来的。在向P1口传送显示代码编写的字符显示程序的基础上,把程序中的直接地址P1换成直接地址SBUF就可以用于图2所示电路显示字符。3数码管应用的进一步讨论3. 1 多位数据的显示图2所示的基于串行输出口的数码管电路都只能支持一个数码管的显示,即一次只能显示一位数据。如果需要显示多位数据,例如希望数据能从00HFFH顺序循环地显示,图2所示的电路必须进行改进。改进后的数码管的显示电路如图3所示。图3 基于串行输出口的2位数码管显示电路在图3所示的电路中,使用了2个74LS164来驱动2个数码管。依次类推,采用串行传输方式,微控制器可以启动多个数码管。从单片机TXD管脚来的同步移位信号同时加到2个74LS164的管脚CLK,从单片机RXD管脚来的串行数据信号加到第一个74LS164的串行数据输入口,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西藏烟草考试题库及答案
- 民航规章考试题库及答案
- 时针分针考试题目及答案
- 洗碗流程试题及答案
- 希望之星训练题目及答案
- 圆的方程题库及答案
- DB61T 1169.8-2018 柑桔标准综合体 第8部分:柑桔鲜果
- PS人物精修课件
- PSM公司安全培训课件
- 2025年乡镇卫健办老龄健康协管员考试知识点梳理
- 九年级化学开学第一课
- 事业单位行政单位物业管理服务方案(技术标)
- 单位食堂制止浪费方案
- 建筑施工安全技术操作规程
- 2024-2030年全球与中国发泡稀奶油行业竞争动态及营销动态研究报告
- 农村屋面琉璃瓦工程包工包料承包合同
- 2025届新高考政治精准突破复习 政治阅卷“感”与“悟”
- JB-T 8236-2023 滚动轴承 双列和四列圆锥滚子轴承游隙及调整方法
- SY-T 6966-2023 输油气管道工程安全仪表系统设计规范
- 新部编版三年级语文上册《全册课件》
- 中华全国总工会办公厅印发《加快工会数字化建设工作方案》
评论
0/150
提交评论