




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
80C51系列单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。,6-2 80C51串行口,一、串行口特殊功能寄存器,1、串行数据缓冲器SBUF 在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。,2、串行控制寄存器SCON,3、电源控制寄存器PCON,1) SM0 SM1 串行口工作方式选择位。 2) SM2 多机通信控制位。 3) REN 允许接收控制位。REN=1,允许接收。 4) TB8 方式2和方式3中要发送的第9位数据。 5) RB8 方式2和方式3中要接收的第9位数据。 6) TI 发送中断标志。 7) RI 接收中断标志。,SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。,二、串行工作方式 80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SM0 SM1决定。 1、串行工作方式0(同步移位寄存器工作方式) 以RXD(P3.0)端作为数据移位的输入/输出端, 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。 其帧格式为:,方式0可将串行输入输出数据转换成并行输入输出数据。, 数据发送,在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移入74HC164 SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被自动置1。其后74HC164的内容即可并行输出。74HC164 CLR为清0端,输出时CLR必须为1,否则74HC164 Q0Q7输出为0。,串行口作为并行输出口使用时,要有“串入并出”移位寄存器配合。,(2) 数据接收,串行口作为并行输入口使用时,要有“并入串出”的移位寄存器配合。,74HC165 S/L端为移位/置入端,当S/L=0时,从Q0Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数据D7后,置位中断标志RI,表示一帧数据接收完成。, 波特率 方式0 波特率固定,为单片机晶振频率的十二分之一。 应用举例 【例6-1】电路如图所示,试编制程序按下列顺序要求每隔0.5秒循环操作。,。,1) 8个发光二极管全部点亮; 2) 从左向右依次暗灭,每次减少一个,直至全灭;,3) 从左向右依次点亮, 每次亮一个; 4) 从右向左依次点亮,每次亮一个; 5) 从左向右依次点亮,每次增加一个, 直至全部点亮; 6) 返回从2)不断循环,解:编程如下:,LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行中断 MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址 LP1: MOV R7,#0 ;置顺序编号0 LP2: MOV A,R7 ;读顺序编号 MOVC A,A+DPTR ;读控制字 CLR P1.0 ;关闭并行输出 MOV SBUF,A ;启动串行发送 JNB TI,$ ;等待发送完毕 CLR TI ;清发送中断标志 SETB P1.0 ;开启并行输出 LCALL DLY500ms ;调用延时0.5秒子程序(参阅例4-13) INC R7 ;指向下一控制字 CJNE R7,#30,LP2 ;判循环操作完否?未完继续 SJMP LP1 ;顺序编号029依次操作完毕,从0开始重新循环 TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次暗灭, 每次减少一个,直至全灭; DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮,每次亮一个 DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮,每次亮一个 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮, 每次增加一个,直至全部点亮;,【例】电路如图所示,试编制程序输入K1K8状态数据,并存入内RAM 40H。,解:编程如下: KIN: MOV SCON,#00H;串行口方式0 CLR ES ;禁止串行中断 CLR P1.0 ;锁存并行输入数据 SETB P1.0 ;允许串行移位操作 SETB REN ;允许并启动接收(TXD发送移位脉冲) JNB RI,$ ;等待接收完毕 MOV 40H,SBUF ;存入K1K8状态数据 RET ;,2、串行工作方式1 方式1是一帧10位的异步串行通信方式,包括1个起始位,8个数据位和一个停止位。 其帧格式为:, 数据发送 发送时只要将数据写入SBUF,在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由TXD端串行输出。一帧数据发送完毕,将SCON中的TI置1。 数据接收 接收时,在REN=1前提下,当采样到RXD从1向0跳变状态时,就认定为已接收到起始位。随后在移位脉冲的控制下,将串行接收数据移入SBUF中。一帧数据接收完毕,将SCON中的RI置1,表示可以从SBUF取走接收到的一个字符。,2SMOD,32,fosc,12 波特率,在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为:, 波特率,方式1波特率可变,由定时/计数器T1的计数溢出率来决定。,波特率 = 2SMOD(T1溢出率)/ 32,其中SMOD为PCON寄存器中最高位的值,SMOD=1表示波特率倍增。,T1初值 = 256 , 应用举例,【例6-3】设甲乙机以串行方式1进行数据传送,fosc=11.0592MHz,波特率为1200b/s。甲机发送的16个数据存在内RAM 40H4FH单元中,乙机接收后存在内RAM 50H为首地址的区域中。,T1初值 = 256 - = 232 = E8H,32,121200,解: 串行方式1波特率取决于T1溢出率(设SMOD=0),计算T1定时初值:,11059200,20,甲机发送子程序:,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(SMOD不能位操作) CLR ES ;禁止串行中断 MOV R0,#40H ;置发送数据区首地址 MOV R2,#16 ;置发送数据长度 A,R0 ;读一个数据 MOV SBUF,A ;发送 JNB TI,$ ;等待一帧数据发送完毕 CLR TI ;清发送中断标志 INC R0 ;指向下一字节单元 DJNZ R2,TRSA ;判16个数据发完否?未完继续 RET ;,TXDA:,TRSA:,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(SMOD不能位操作) CLR ES ;禁止串行中断 MOV R0,#50H ;置接收数据区首地址 MOV R2,#16 ;置接收数据长度 SETB REN ;启动接收 JNB RI,$ ;等待一帧数据接收完毕 CLR RI ;清接收中断标志 MOV A,SBUF ;读接收数据 MOV R0,A ;存接收数据 INC R0 ;指向下一数据存储单元 DJNZ R2,RDSB ;判16个数据接收完否?未完继续 RET ;,乙机接收子程序:,RXDB:,RDSB:,方式2是一帧11位的串行通信方式,即1个起始位,8个数据位,1个可编程位TB8/RB8和1个停止位, 其帧格式为:,3、 串行工作方式2,波特率=2SMOD fosc/64,可编程位TB8/RB8既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。,数据发送和接收与方式1基本相同,区别在于方式2把发送/接收到的第9位内容送入TB8/RB8。,波特率:方式2波特率固定,即fosc/32和fosc/64。 如用公式表示则为:,【例6-4】 设计一个串行方式2发送子程序(SMOD=1),将片内RAM 50H5FH中的数据串行发送,第9数据位作为奇偶校验位。接到接收方核对正确的回复信号(用FFH表示)后,再发送下一字节数据,否则再重发一遍。,解:程序如下:,MOV A,R0 ;读数据 MOV C,PSW.0 ;奇偶标志送TB8 MOV TB8,C ; MOV SBUF,A ;启动发送 JNB TI,$ ;等待一帧数据发送完毕 CLR TI ;清发送中断标志 SETB REN ;允许接收 CLR RI ;清接收中断标志 JNB RI,$ ;等待接收回复信号 MOV A,SBUF ;读回复信号 CPL A ;回复信号取反 JNZ TRLP ;非全0(回复信号FFH,错误),转重发 INC R0 ;全0(回复信号=FFH,正确), 指向下一数据存储单元 CJNE R0,#60H,TRLP ;判16个数据发送完否?未完继续 RET ;,TRLP:,MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#50H ;置发送数据区首址,TRS2:,【例6-5】 编制一个串行方式2接收子程序,接收上例发送的16个数据,存首址为40H的内RAM中,并核对奇偶校验位,接收核对正确,发出回复信号FFH;发现错误,发出回复信号00H,并等待重新接收。,RXD2: MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#40H ;置接收数据区首址 SETB REN ;启动接收 RWAP: JNB RI,$ ;等待一帧数据接收完毕 CLR RI ;清接收中断标志 MOV A,SBUF ;读接收数据,并在PSW中产生接收数据的奇偶值 JB PSW.0,ONE ;P=1,转另判 JB RB8,ERR ;P=0,RB8=1,接收有错; ;P=0,RB8=0,接收正确,继续接收 RLOP: MOV R0,A ;存接收数据 INC R0 ;指向下一数据存储单元 RIT: MOV A,#0FFH ;置回复信号正确 FDBK: MOV SBUF,A ;发送回复信号 CJNE R0,#50H,RWAP ;判16个数据接收完否?未完继续 CLR REN ;16个数据正确接收完毕,禁止接收 RET ; ONE: JNB RB8,ERR ;P=1,RB8=0,接收有错 SJMP RIT ;P=1,RB8=1,接收正确,继续接收 ERR: CLR A ;接收有错,置回复信号错误标志 SJMP FDBK ;转发送回复信号,解:程序如下:,方式3同样是一帧11位的串行通信方式,其通信过程与方式2完全相同,所不同的仅在于波特率。方式2的波特率只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中数学教学设计每课件
- 电信冬季安全知识培训课件
- 电仪维修基础知识培训课件
- 2025年餐饮连锁企业人力资源总监招聘面试模拟题及解析
- 2025年物业高级管理面试热点解析模拟题及应对策略
- 甲状腺穿刺术课件
- 甲状腺切除术手术课件
- 低段识字教学试讲课件
- 用色彩表达情感课件
- 2024年江苏省徐州市行政管理、人事管理等管理人员综合技能知识考试库【基础题】
- 浙江省中小学心理健康教育课程标准
- 广东省深圳市龙岗区2024年八年级下学期期末英语试卷附答案
- 甲状腺术后出院健康宣教
- 现场施工环境保护应急预案
- 施工现场临电方案
- 防汛设备租赁合同
- FKYXII温控旋流风口
- 《共情的力量》课件
- 《实验数据分析方法》课件
- 《小鸭子学游泳》
- 钢面镁质风管施工方案
评论
0/150
提交评论