




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、串行传输简介StartD0D1D2D3D4D5D6D7ParityStop01 通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,通常称作UART,读音juart/) 是一种异步收发传输器,将数据由串行传输(Serial communication)与并行传输(Parallelcommunication) 间作传输转换。UART通常用在与其他通讯协议(如EIARS-232)的连结上。 RS-232C是标准的串行传输标准。 RS(Recommended standard)代表推荐标准,232是标识号,C代表RS232的 第三次修改(1969
2、年)。IBM PC机上的COM1、COM2接口,就是RS-232C接口。简介 STC12C5410AD系列单片机具有1个采用UART(Universal Asychronous Receiver/Transmitter)工作方式的全双工 串行通信接口。串行口由2个数据缓冲器、一个移位寄存器、一个串行控 制寄存器和一个波特率发生器等组成。串行口的数据缓冲器由2个互相独立的接收、发送缓冲器 构成,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而 不能写入,因而两个缓冲器可以共享一个地址码。串行口的两个缓冲器统称为串行通信特殊功能寄存器SBUF, 其共享的地址码是99H。简
3、介STC12C5410AD系列单片机的两个串行口都有4种工作方式, 其中两种方式的波特率是可变的,另两种是固定的, 以供不同应用场合选用。用户可用软件设置不同的波特率和选择不同的工 作方式。主机可通过查询或中断方式对接收/发送进行程序处理。STC-12C5410AD系列单片机串行口对应的硬件部分是 TxD/P3.1和RxD/P3.0引脚。STC12C5410AD系列单片机的串行通信口,除用于数据通信 外,还可方便地构成一个或多个并行I/O口,或作串并 转换,或用于扩展串行外设等。串行口的相关寄存器PCON : 电源控制寄存器(不可位寻址)AddressbitB7B6B5B4B3B2B1B087
4、HnameSMODSMOD0LVDFPOFGF1GF0PDIDLSMOD:波特率选择位。复位时SMOD=0。 SMOD=1,则使串行通信方式1、2、3的波特率 加倍;SMOD=0,则各工作方式的波特率不变。SMOD0:帧错误检测有效控制位。复位时SMOD0=0 当SMOD0=1,SCON寄存器中的SM0/FE位用于FE(帧错 误检测)功能;当SMOD0=0,SCON寄存器中的SM0/FE位用于SM0功能, 和SM1一起指定串行口的工作方式。串行控制寄存器SCONAddressbitB7B6B5B4B3B2B1B098HnameSM0/FESM1SM2RENTB8RB8TIRI用于选择串行通信的
5、工作方式和某些控制功能。SM0、SM1确定串行口1的工作方式REN:允许/禁止串行接收控制位。 REN=1为允许串行接收状态TI:发送中断请求中断标志位。 由硬件自动设定TI=1,用软件设定TI=0RI:接收中断请求标志位。 由硬件自动设定RI=1,用软件设定RI=0串行控制寄存器SCONAddressbitB7B6B5B4B3B2B1B098HnameSM0/FESM1SM2RENTB8RB8TIRI用于选择串行通信的工作方式和某些控制功能。SM0/FE:若SMOD0=1,当检测到一个无效停止位时,设定 SM0/FE=1,必须用软件清除。SM2:允许方式2或方式3多机通信控制位。TB8:用在
6、方式2或方式3,发送第9位,使用软件设定。RB8:用在方式2或方式3,接收第9位。SM0、SM1确定串行口的工作方式SM0SM1工作方式功能说明波特率00方式0同步移位元元串行方式:移位寄存器当UART_M0x6=0时,波特率是SYSclk/12, 当UART_M0x6=1,波特率是 SYSclk/201方式18位UART,串行传输速率可变(2SMOD/32)×(定时器1的溢出率)10方式29位UART(2SMOD/64)xSYSclk系统工作时钟频率11方式39位UART,串行传输速 率可变(2SMOD/32)x(定时器1的溢出率)当T1x12 = 0时,定时器1的溢出率 = SY
7、Sclk/12/( 256 - TH1);当T1x12 = 1时,定时器1的溢出率 = SYSclk / ( 256 - TH1)数据缓冲寄存器SBUF缓冲寄存器(SBUF)的地址是99H,对应两个不同的寄存器,1个是只写寄存器,1个是只读寄存器。 接收寄存器:在方式0时它的字长为8位元,其他方式时 为9位元。第9位装入SCON寄存器中的RB8位。 接收后,将数据由移位寄存器装入SBUF,可立即开始接收 下一个信息,主机应在该帧接收结束前从SBUF缓冲器中将 数据取走,否则前一帧资料将丢失。辅助寄存器AUXRAddressB7B6B5B4B3B2B1B08EHT0x12T1x12UART_M0
8、x6EADCIESPIELVDI-T1x12: 定时器1速度设置位元 如果UART串口用定时器1做波特率发生器,T1x12 位就可以控制UART串口是12T还是1T了。UART_M0x6:串行口模式0的通信速度设置位元 0,UART串口的模式0的速度是12分频;1,UART串口的模式0的速度是2分频;IE : 中断允许寄存器 (可位寻址)AddressB7B6B5B4B3B2B1B0A8HEAEPCA_LVDEADC_SPIESET1EX1ET0EX0EA:CPU的总中断允许控制位, EA=1,CPU开放中断, EA=0,CPU屏蔽所有的中断申请。ES :串行口中断允许位, ES=1,允许串行
9、口中断, ES=0,禁止串行口中断。IPH : 中断优先级控制寄存器PSH, PS: 串行口中断优先级控制位。当PSH=0且PS=0时,为最低优先级中断(优先级0)当PSH=0且PS=1时,为较低优先级中断(优先级1)当PSH=1且PS=0时,为较高优先级中断(优先级2)当PSH=1且PS=1时,为最高优先级中断(优先级3)串行口工作模式0:同步移位寄存器串行口数据由RxD/P3.0端输入/输出,同步移位脉冲(SHIFTCLOCK)由TxD/P3.1输出。RITI接收SBUFRXD脚串行数据 频率信号TXD脚发送、接收的是8位数据,低位在先。D7D6D5D4D3D2D1D0移位寄存器D7D6D
10、5D4D3D2D1D0发射SBUFD7D6D5D4D3D2D1D0模式0的发送过程:当主机执行将数据写入发送缓冲器 SBUF指令时启动发送,串行口即将8位数据从RxD管脚输 出,发送完中断标志TI置“1”。TxD管脚输出同步移位脉 冲(SHIFTCLOCK)。模式0接收过程:启动接收过程后,RxD为串行输入端,TxD为同步脉冲输出端。波特率固定为SYSclk/12或SYSclk/2,无需定时器 提供UART_M0x6/AUXR.5=0,SYSclk/12(12分频) UART_M0x6/AUXR.5=1,SYSclk/2(2分频)由TX和RX控制单元分别产生中断请求信号,并置TI=1或RI=1
11、,经“或门 “送主机请求中断,所以主机响应中断后 必须软件判别是TI还是RI请求中断,必须软件清0插断要 求标志位TI或RI。串行口工作模式1:8位UART,波特率可变SM0、SM1=01一帧信息为10位:1位起始位,8位数据位(低 位在先)和1位停止位。TxD/P3.1为发送信息,RxD/P3.0为接收端接收信息串行模式1的波特率=2SMOD×(TIMER1溢出率)/32T1x12 =0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 = 1, TIMER1的溢出率 = SYSclk / ( 256 - TH1)UART串行埠传输格式串行端口模式1串行
12、传输RI接收 SBUFD7D6D5D4D3D2D1D0startD0D1D2D3D4D5D6D7移位 缓存器stopRXD脚串行 数据串行 数据stopD7D6D5D4D3D2D1D0 startTXD脚TI发射 SBUFD7D6D5D4D3D2D1D0串行口工作模式2:9位UART,波特率固定SM0、SM1=10一帧信息由11字节成:1位起始位,8位数据 位(低位在先),1位可程序设计位(第9位资 料)和1位停止位。TxD/P3.1为发送埠,RxD/P3.0为接收埠模式2的波特率为:=2SMOD×(SYSclk系统工作时钟频率) /64串行口工作模式2:9位UART,波特率固定第9
13、数据位,TB8(SCON.3)可指定为0或1;或将同位检查旗标(P,PSW.0) 存放到TB8。在接收周期时,第9数据位会被存放到RB8。RITI接收SBUFD7D6D5D4D3D2D1D0RXD脚startD0D1D2D3D4D5D6D7RB8stop串行数据移位寄存器stopTB9串行数据D7D6D5D4D3D2D1D0 startTXD脚发射SBUFD7D6D5D4D3D2D1D0串行口工作模式3:9位UART,波特率可变一帧的信息由11字节成:1位起始位,8位数据位元(低位在先),1位可程序设计位和1位停止位。发送时可程序设计第9位数据,由SCON中的TB8提供,可 软件设置为1或0,
14、或者可将PSW中的奇/偶校验位P值装入 TB8。模式3的波特率为:=2SMOD×(TIMER1的溢出率)/32T1x12 =0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 =1,TIMER1的溢出率 =SYSclk/(256 -TH1)传输速率的设置串行通信模式0UART_M0x6/AUXR.5 =0时,其波特率 =SYSclk/12。UART_M0x6/AUXR.5 =1时,其波特率 =SYSclk/2。串行通信工作模式2SMOD=1,传输速率=(SYSclk)/32;SMOD=0,传输速率=(SYSclk)/64。串行通信模式1、3传输速率=2S
15、MOD×(TIMER1的溢出率)/32T1x12=0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 = 1, TIMER1的溢出率 = SYSclk /(256 - TH1)传输速率的设置UART在Mode1模式下,使用Timer1工作于Mode2(自动重新加载模式)计算传输率公式如下:9600 =2 SMOD振荡器频率 ?3212 ? 256 - (TH1)配合9600传输率,使用11.0592MHz石英晶体振荡器,且SMOD=0,得出TH1为:TH1 =256 -2 ? 11.0592 ? 10 6384 ? 9600= 253 =FDH传输速率的
16、设置T1x12=0,TIMER1的溢出率=SYSclk×(28-N)/12T1x12=1,TIMER1的溢出率=SYSclk×(28-N)常用波特率系统时钟频率(MHz)SMOD定时器1C/T方式重新装入值方式0MAX:1M12××××方式2MAX:375K121×××方式1和362.5K12102FFH19.2K11 .059102FDH9.6K11 .059002FDH4.8K11 .059002FAH2.4K11 .059002F4H1.2K11 .059002F8H137.511 .9860021
17、DH110600272H11012001FFFBH双机通信 如果两个8051应用系统距离很近,可将它们的串行埠直接 相连(TXDRXD,RXDTXD,GNDGND地),即可实现 双机通信。RS232的串行信号UART串行埠传输格式StartD0D1D2D3D4D5D6D7ParityStop018051与RS232的串行信号电压转换80515V信号0V+10VRS232信号-10VGND15串行端口UART电路IC122 u2C 1 +1162738495V+ +22 uJ 62C 1 - 3 J 62710 P3 1P3 0C 2 +R S23 222 u6V- C 2 -5C ON 622
18、 uVCC16V CC1214 T1 OU TT1 IN11 TX D123413 R 1 INR 1 O UT12 R XD34568T2 OU TT2 IN9R 2 INR 2 O UT4RS-232C接脚594837261 ,UART电路 8051的RXD与TXD与EIA 界面ICL232连接,做讯 号准位转换-准位0V转换为-8V-15V-准位5V转换为8V-15V使用9PIN的RS-232 接头PIN2(RXD)接脚接收 PIN 3(TXD)接脚传送 PIN5(GND)接地。双机异步通信软件协议甲机发送数据,乙机接收数据。在双机开始通信时,先由甲机发送一个呼叫信号(例如 “06H”)
19、,以询问乙机是否可以接收数据;乙机接收到呼叫信号后,若同意接收资料,则发回“00H” 作为应答信号,否则发“05H”表示暂不能接收资料,;甲机只有在接收到乙机的应答信号“00H”后才可将存储 在外部数据存储器中的内容逐一发送给乙机,否则继续向 乙机发呼叫信号,直到乙机同意接收。字节数n资料1资料2资料3资料n累加校验和发送数据格式如上:字节数n:甲机向乙机发送的资料个数;数据1数据n:甲机将向乙机发送的n帧资料;累加校验和:为字节数n、数据1、数据n,这(n+1)个字节内容的算术累相加的和. 乙机根据接收到的“校验和”判断已接收到的n个数据是 否正确。若接收正确,向甲机回发“0FH”信号,否则
20、回发 “F0H”信号。甲机只有在接收到乙机发回的“0FH”信号才算完成发送 任务,返回被调用的程序,否则继续呼叫,重发数据。双机通信软件(查询方式)甲机发送子程序双机通信软件(查询方式)乙机接收子程序段双机通信软件(中断方式)由于STC-12C5410AD系列单片机的串行通信是双工的,且 中断系统只提供一个中断向量入口地址,所以实际上是中 断和查询必须相结合,即接收/发送均可各自请求中断, 响应中断时主机并不知道是谁请求中断,统一转入同一个 中断向量入口,必须由中断服务程序查询确定并转入对应 的服务程序进行处理。甲方(发送方)任以查询方式通信(从略),乙方(接收方)则改用中断查询方式进行通信。
21、常用的串行端口函数stdio.h内定函数格式串行埠输出入说明getkey (void)接收一个按键数据getchar (void)接收一个字符数据putchar (char)发射一个字符数据printf(const char , .)发射字符、字符串及数值数据gets (char , int n)接收一个字符串字符数据scanf (const char , .)接收字符串数据puts (const char)发射一个字符串字符常数数据常用显示格式字符表字符动作%d显示有符号10进制数据%u显示无符号10进制数据%f显示浮点数10进制资料%e显示指数10进制数据%g先以浮点数显示,若不行则以指数
22、显示数据%o显示8进制数据%x显示16进制数据%6d10进制数据占用6格,数据右移%06d10进制数据占用6格,数据右移,前面加0%-6d10进制数据占用6格,数据左移%c显示字符数据%6c显示字符数据,占用6格,资料右移%-6c显示字符数据,占用6格,资料左移%s显示字符串数据常用“”控制字符表控制字符动作ASCII码(16进制)0空字符(NULL)0x00n换行(LF)0x0Ar归位(CR)0x0Dt跳9格(HT)0x09b倒退(BS)0x08f换页(FF)0x0C单引号0x27”双引号0x22反斜杠0x5CUART使用时设定 1.ES 2.EA 3.IP,IPH当串行口接收中断请求标志位RI和串行口发送中断请求 标志位TI中的任何一个被置为1后,串行口中断都会产 生。范例8_1/串行传输模拟的观察与练习/从8051传送字符串Hellokitty到P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟台职业学院《外国文学作品赏析》2023-2024学年第二学期期末试卷
- 学生美术作品评价标准计划
- 从同行学习借鉴提升自我竞争力计划
- 社团组织文化培养计划
- 如何选择适合自己的理财产品计划
- 班级课外活动的丰富与多样化计划
- 加强仓库安全管理的个人思考计划
- 社区服务社团公益活动计划
- 2025年广州货运上岗资格证模拟考试
- 苏教版三上第8课《蒲公英》第二课时教学设计
- 2025年全国低压电工作业证(复审)考试练习题库(600题)附答案
- 2025年上海市闵行区初三中考语文二模调研试卷
- 2025年《职业病防治法》宣传周知识考试题(附答案)
- 2024年潍坊市技师学院招聘笔试真题
- 2025年中考道德与法治一轮复习:专题4 我与他人 和谐相处 课件79张
- 无人机飞手培训班合作合同协议范本模板
- 港口智能运维系统-全面剖析
- 康复治疗士测试题及答案
- VDA6.3-2023版培训教材课件
- 皮瓣移植护理与病例介绍课件
- 河北新化股份有限公司锅炉技改项目(噪声、固体废物)竣工环境保护验收报告
评论
0/150
提交评论