版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微控制器系统设计与应用,刘燎原,江苏建筑职业技术学院,徐州建筑职业技术学院,项目久 串行收发模块制作 -学习串行通信,徐州建筑职业技术学院,知识目标: 1.理解异步通信 2.理解发送、接受过程 3.掌握串行通信的寄存器、工作方式 技能目标: 1.掌握双机通信的接口,徐州建筑职业技术学院,一、基础知识 1.数据通信,图 通信的两种基本方式 (a)并行通信; (b)串行通信,徐州建筑职业技术学院,2.串行通信可分为异步传送和同步传送两种基本方式,徐州建筑职业技术学院,3.串行通信的数据传送方向有3种形式。,图 串行通信的三种方式 (a)单工方式;(b)半双工方式;(c)全双工方式,徐州建筑职业技术
2、学院,二、单片机中的串行通信1.51单片机有一个串行通信口:(P3.0,P3.1),数据接收端RXD :(P3.0)串行数据接收端数据发送端TXD :(P3.1)串行数据发送端,该口是全双工异步通信口,可以同时发送、接收数据,徐州建筑职业技术学院,2.SBUF(数据发送、接收寄存器),MCS-51有两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器,地址为99H),一个用作发送,一个用作接收。,发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入, 两者共用一个字节地址(99H)。,串行接口结构图,徐州建筑职业技术学院,发送时: (1)CPU由一条写发送缓冲器的指令 SBUF=m ,把数
3、据(字符)写入串行口的发送缓冲器SBUF(发)中 (2)TI=0,然后从TXD端一位位地向外发送。 (3)发送完毕后,自动把TI(发送结束中断标志)置1,请求中断,通知CPU继续发送下一个数据. (4)在再次发送数据之前,必须用软件将TI清零。 接收时: (1)在满足REN=1和RI=0的条件下,接收端RXD一位位地接收数据 (2)直到一个完整的字符数据送到SBUF后,自动把RI (接收结束中断标志)置1,请求中断,通知CPU到SBUF读取接受的数据。 (3)用一条指令把接收缓冲器SBUF(收)的内容读出 m=SBUF (4)在再次接收数据之前,必须用软件将RI清零。 编程方法:(如何知道什么
4、时候发送或接收完?) 中断方式、查询方式,徐州建筑职业技术学院,3.串口的工作模式,(1). 方式0 串行接口工作方式0为同步移位寄存器方式,其波特率是固定的,为fosc(振荡频率)的1/12。 (1) 方式0发送 数据从RxD引脚串行输出,TxD引脚输出同步脉冲。当一个数据写入串行口发送缓冲器时,串行口将8位数据以fosc/12的固定波特率从RxD引脚输出,从低位到高位。发送后置中断标志TI为1,请求中断,在再次发送数据之前,必须用软件将TI清零。 (2) 方式0接收 在满足REN=1和RI=0的条件下,串行口处于方式0输入。此时,RxD为数据输入端,TXD为同步信号输出端,接收器也以fos
5、c/12的波特率对RxD引脚输入的数据信息采样。当接收器接收完8位数据后,置中断标志RI=1为请求中断,在再次接收之前,必须用软件将RI清零。 可外接移位寄存器,以扩展I/O口。,(1),徐州建筑职业技术学院,(2). 方式1 工作方式1时,串行口被设置为波特率可变的8位异步通信接口。 (1) 方式l发送 串行口以方式1发送数据时,数据位由TxD端输出,1帧信息包含10位,即一位起始位、八位数据位(先低位后高位)和一个停止位“1”。 CPU执行一条数据写入发送缓冲器SBUF的指令,就启动发送器发送数据:发送完数据后,就置中断标志TI为1。 方式1所传送的波特率取决于定时器T的溢出率和特殊功能寄
6、存器PCON中SMOD的值。 (2) 方式1接收 前提是REN=1,串行口处于方式1的输入状态。 它对RxD引脚状态采样。当采样到由1到0的负跳变时,启动接收器。当检测到起始位时,开始接收一帧的其余信息。一帧信息包含10位,即一位起始位、八位数据位(先低位后高位)和一个停止位“1”。接收数据进入SBUF,停止位进入RB8,并置中断请求标志RI为1,通知CPU到SBUF中取走数据。 中断标志也必须由用户在中断服务程序中软件清零。,徐州建筑职业技术学院,(3). 方式2 串行口工作在方式2下时,被定义为波特率固定的9位异步通信接口。 (1) 方式2发送 发送数据由TxD端输出,一帧信息包含11位,
7、即一位起始位(0)、八位数据位(先低位后高位)、一位附加可控位(1或0)和一位停止位“1”。 附加的第9位数据为SCON中的TB8,它由软件置位或清零,可作为多机通信中地址数据信息的标志位,也可作为数据的奇偶校验位。其他同方式1 (2)方式2接受 数据由RxD端输入,接收11位信息,其中,一位起始位(0)、八位数据位(先低位后高位)、一位附加可控位(1或0)和一位停止位“1”。其他同方式1,徐州建筑职业技术学院,(4). 方式3 方式3为波特率可变的9位异步通信方式,除了波特率有所区别之外,其余都与方式2相同。,徐州建筑职业技术学院,4.串行通信相关寄存器,SCON寄存器用来控制串行口的工作方
8、式和状态,字地址为98H,它可以是位寻址。 其格式如下:各位定义如下: SM0、SM1:串行口工作方式选择位 其状态组合所对应的工作方式为: SM0 SM1 工作方式 功能说明 波特率 0 0 0 8位同步移位寄存器 fosc/12 0 1 1 8位异步收发 由定时器控制 1 0 2 9位异步收发 fosc/32或fosc/64 1 1 3 9位异步收发 由定时器控制,(2)串口控制寄存器SCON,(1)SBUF,徐州建筑职业技术学院,SM2:多机通信控制位。 多机通信时用到该位, SM2=1;平时双机通信,SM2=0 REN:允许接收控制位,接收前该位应置1. REN=0时禁止串行口接收。
9、REN=1时允许串行口接收。 该位由软件置位或复位。 TB8:在方式2或方式3时,发送数据的第9位 根据发送数据的需要由软件置位或复位。 双机通信时,可作为奇偶校验位(单机通信)。 多机通信时,可作为发送地址帧或数据帧的标志位 RB8:在方式2和方式3时,接收数据的第9位 根据发送数据的需要由软件置位或复位。 双机通信时,可作为奇偶校验位(单机通信)。 多机通信时,可作为发送地址帧或数据帧的标志位,徐州建筑职业技术学院,TI:发送中断标志位 用于指示一帧数据发送完否。 在方式0下,发送电路发送完第8位数据时,TI由硬件置位。 在其他方式下,TI在发送前必须由软件复位,发送完一帧后由硬件置位。因
10、此,CPU查询TI状态便可知一帧信息是否已发送完毕。 RI:接收中断标志位 用于指示一帧信息是否接收完。 在方式0下,RI在接收电路接收到第8位数据时由硬件置位。 在其他方式下,当接收到停止位或第九位数据时,硬件置位RI,RI也可供CPU查询,以决定CPU是否需要从“SBUF(接收)”中提取接收到的字符或数据。RI也由软件复位。,徐州建筑职业技术学院,(3).电源控制器PCON,PCON寄存器主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能位寻址。 其格式如下: 各位定义如下: SMOD:串行口波特率的倍增位。 在HMOS单片机中,该寄存器中除最高位之外,其他位都是
11、虚设的。在单片机工作在方式1、方式2和方式3时, SMOD=1,串行口波特率提高一倍。 SMOD=0,则波特率不加倍。系统复位时SMOD=0,徐州建筑职业技术学院,5.波特率,串行口的通信波特率恰到好处地反映了串行传输数据的速率。通信波特率的选用,不仅和所选通信设备、传输距离有关,还受传输线状况所制约。用户应根据实际需要加以正确选用。 1. 方式0下的波特率 在方式0下,串行口通信的波特率是固定的,其值为fosc/12(fosc为主机频率)。 2. 方式2下的波特率 在方式2下,通信波特率固定的,为fosc/32或fosc/64。用户可以根据PCON中SMOD位的状态来驱使串行口在哪个波特率下
12、工作。选定公式为: 这就是说,若SMOD=0,则所选波特率为fosc/64;若SMOD=1,则波特率为fosc/32。,徐州建筑职业技术学院,3. 方式1或方式3下的波特率 在这两种方式下,串行口波特率是可变的,由定时器的溢出率(1s溢出多少次)决定的。相应公式为: T1溢出率(1s溢出多少次)-T1定时时间倒数 定时器T1溢出率的计算公式为: 式中,K为定时器T1的位数,它和定时器T1的设定方式有关。我们常取k=8。因为定时器T1工作于方式2时,TH1和TLl分别设定为两个8位重装计数器(当TL1从全“1”变为全“0”时,TH1重装TLl)。使用这种方式,不仅可使操作方便,也可避免因重装初值
13、(时间常数初值)而带来的定时误差。 若定时器T1为方式0,则K=13;若定时器T1为方式1,则K=16;若定时器T1为方式2或3,则K=8。 由上两式可知,方式1或方式3下所选波特率常常需要通过计算来确定初值,因为该初值是要在定时器T1初值化时使用的(见书上)。,徐州建筑职业技术学院,串行收发模块制作 (2) -软件编程,徐州建筑职业技术学院,例:甲机与乙机串行通信,甲机接一键盘,接一数码管,乙机接一数码管。甲机把自己键盘按键的键值发送给乙机的数码管显示;乙机将接受的数据加1后再发送给甲机的数码管显示。 电路,徐州建筑职业技术学院,甲机程序: #include #include unsigne
14、d char code sz1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e; unsigned char code jp=0 xee,0 xde,0 xbe,0 x7e,0 xed,0 xdd,0 xbd,0 x7d,0 xeb,0 xdb,0 xbb,0 x7b,0 xe7,0 xd7,0 xb7,0 x77; unsigned char c=0; void delay(unsigned int t) unsigned char i; while
15、(t-) for(i=0;i125;i+); void sm() unsigned char k,j,n,a,m=0 xfe; P2=0 xf0;k=P2;k=k,徐州建筑职业技术学院,if(k!=0 xf0) delay(5); if(k!=0 xf0) for(j=0;j4;j+) P2=m;n=P2; for(a=0;a16;a+) if(jpa=n) c=a; m=_crol_(m,1); void main() SCON=0 x50; /设定串口工作方式 PCON=0 x00; /波特率不倍增 TMOD=0 x20; /定时器1工作于8位自动重载模式, 用于产生波特率 EA=1; E
16、S = 1; /允许串口中断 TL1=0 xfd; TH1=0 xfd; /波特率9600 TR1=1; while(1) sm(); SBUF=c; while(TI=0); TI=0; while(RI=0); RI=0;P1=sz1SBUF; ,徐州建筑职业技术学院,乙机程序: #include unsigned char code sz1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e; void delay(unsigned int t) unsigned char i; while(t-) for(i=0;i125;i+); void main() unsigned char m; SCON=0 x50; /设定串口工作方式 PCON=0 x00; /波特率不倍增 TMOD=0 x20; /定时器1工作于8位自动重载模式, 用于产生波特率 EA=1; ES = 1; /允许串口中断 TL1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业内部员工福利制度及实施细则
- 会计上岗证会计财经法规总结
- 新疆阿克苏沙雅县2026届中考四模语文试题含解析
- 2026 学龄前自闭症教师培训课件
- 六年级语文上册线上教学工作总结(32篇)
- 六年级英语个人教学教案
- 初三物理备课组教学计划(15篇)
- 湖北省宜昌市长阳县2026届中考冲刺卷英语试题含答案
- 2026 学龄前自闭症公交车干预课件
- 数据库设计优化方法与技巧分享
- 眉山小升初分班数学试卷
- 2025届北京市海淀区六年级上学期期中考试(五十七)语文试卷
- 体育课(军体拳)教案pdf
- 夏季猪只降温方法
- 2025年行政管理专升本真题汇编试卷(含答案)
- GB/T 223.11-2025钢铁及合金铬含量的测定滴定法和分光光度法
- 2025年考试题库装饰装修施工员试题及答案
- 第二节 数据及其价值教学设计-2025-2026学年初中信息技术(信息科技)七年级下册甘教版
- 多元化纠纷解决机制研究-洞察与解读
- 道路工程安全生产管理体系及保证措施
- 酶制剂发酵工作业指导书
评论
0/150
提交评论