南昌大学单片机chapter7.docx
- 文档编号:28838964
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:12
- 大小:121.15KB
南昌大学单片机chapter7.docx
《南昌大学单片机chapter7.docx》由会员分享,可在线阅读,更多相关《南昌大学单片机chapter7.docx(12页珍藏版)》请在冰豆网上搜索。
南昌大学单片机chapter7
89C51串行口
串行口结构:
串行口有两个物理上独立的接受、发送缓冲期SBUF(属于特殊功能寄存器),可同时发送、接受数据,发送缓冲期只能写不能读,而接收缓冲器则相反,两个缓冲器共用一个特殊功能功能寄存器字节地址
串行口控制寄存器:
1>特殊寄存器SCON2>特殊功能寄存器PCON
SCON
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H
0
0
模式0
同步移位寄存器
0
1
模式1
8位异步收发,波特率可变(定时器控制)
1
0
模式2
9位异步收发,波特率为fosc/64或fosc/32
1
1
模式3
9位异步收发,波特率可变(定时器控制)
1)方式0的时候必须为0
2)方式1的时候如果=1则收到有效停止位的时候才会激活RI
3)多级通讯在2/3方式下的时候SM2=1则只有收到第九位才把前八位送入SBUF中切RI置1,产生中断;当第九位RB8为0的时候则丢弃前八位。
当SM2=0的时候将前八位送入SBUF中且RI置1产生中断无论第九位数据的值
=1,串行口允许接收数据
=0,串行口禁止接收数据
1)奇偶校验位
2)方式2方式3的时候作为发送的第九位数据
3)多级通讯中用来表示主机发送数据类型,若=1则是地址帧若=0则是数据帧
1.)方式2/3存放接收到的第九位数据
2.)方式1的时候SM2=0则是停止位.方式0不使用
发送中断标志
接收中断标志
PCON
PCON就一个SMOD的第八位,是波特率选择位,PCON不可以位寻址
串行口的4种工作方式:
方式0:
……
D0
D1
D2
D3
D4
D5
D6
D7
……
方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。
波特率固定为fosc/12
方式0发送:
方式0接收:
当REN=0的时候,禁止接受
当REN=1的时候,允许接收
SCON置于相应的控制字SM0SM1置为00REN置0RI置0
当接受了八位数据的时候,RI置1,表示一帧数据接收完毕
方式1:
此时串行口为波特率可变的8位异步通信接口。
方式1发送:
发送一帧信息为10位,1位起始位0,8位数据为(由低到高),一位停止位
当TI=1的时候
失效
方式1接收:
类似于方式0注意的是接收每一位数据的时候进行三次连续的采样,若至少两次相同的值,以保证接收到的数据准确性
接收完毕一帧的数据后,满足此条件才有效:
1.RO=0,即上一帧数据接收完成时,RI=1发出的中断请求被相应,SBUF已经空了
2.SM2=0或者受到的停止位=1(RB8=1)
方式1接受16字节ASCII码,若校验正确,存入30-3FH,否则置F0为校验出错标志点,并停止接收
MOVTMOD,#20HT1设置于方式2
MOVTH1,#0F4H
MOVTL1,#0F4H设置溢出率
SETBTR1启动T1
MOVSCON,#50H设置SCON为01010000B则表示方式1允许串行口接收
MOVR7,#10H设置接收次数
MOVR0,#30H设置初始地址
MOVPCON,#00H设置波特率
LOOP:
JNBRI,$等待接收数据完毕
CLRRI接收中断标志位清零
MOVA,SBUF开始接收
JNBP,RIGHT偶校验
SETBF0校验错误F0置1
CLRREN关串行口
SJMP$自身跳转等待中断
RIGHT:
MOV@R0,A校验正确将数据存入指定地址
INCRO地址位指向下一位
DJNZR7,LOOP验证是否接收完毕没有则继续
CLRF0接收完毕无校验错误F0置0
SJMP$
89C51以方式1发送RAM30—3FHASCII码最高位为偶校验位
MOVTMOD,#20H(设置为T1的方式2)
MOVTH1,#0F4H
MOVTL1,#0F4H(设置溢出率)
SETBTR1启动T1
MOVSCON,#40H设置为方式1串行接收口置0
MOVPCON,#00H设置波特率
MOVR7,#10H接收次数16
MOVR0,#30H初始地址
LOOPMOVA,@R0读数据
MOVC,PP为PSW的PSW.0奇偶标志位
MOVACC.7,C校验位送C,采用偶校验
MOVSBUF,A发送
JNBTI,$若发送中断标志为0则表明还没有结束,等待数据传送完毕
CLRTI数据传送完毕TI被硬件自动置1这里由软件清零为下一次做准备
INCR0地址指向下一个
DJNZR7,LOOP
SJMP$
方式2:
方式2比方式1多了一个TB8位,发送前要由通信协议软件设置TB8
方式2发送30~3FH,TB8为奇偶校验波特率为fosc/23
MOVSCON,#80H设置方式
MOVR7,#10H发送次数
MOVR0,#30H发送初始地址
LOOP:
MOVA,@R0数据存入A中
MOVC,P
MOVTB8,C校验位送TB8
MOVSBUF,A数据写入发送缓冲期,启动发送
JNBTI,$为接收完毕则等待
CLRTITI清零为下一次初始化
INCR0指针指向下一个数据
DJNZR7,LOOP
SJMP$
方式2接收:
为了接受正确要满足2个条件,否则数据丢失:
(1)RI=0接收缓冲器为空
(2)SM2=0或接收到的第九位数据为RB8=1
MOVSCON,#80H设置方式
MOVR7,#10H发送次数
MOVR0,#30H发送初始地址
SETBREN开启串行接收口
LOOP:
JNBRI,$等待接收完毕
CLRRI清零为下次初始化
MOVA,SBUF接收到的数据送入A
JNBRB8,PER第九位为1则出错跳转错误处理单元(这个是上面的两个条件)
SJMPRIGHT跳转正确处理子程序
RIGHT:
MOV@R0,A收到的数据存入
INCR0指向下一个数据
DJNZR7,LOOP
SJMP$
PRE:
XXXXXXXXX
方式3与方式2的差别就是可以设置波特率设置TMODTL1TH1即可其他一样
双机通讯可以参考P128~130的双机通讯程序
练习思考题:
1.
与并行数据传输相比,串行口数据传送主要优点是硬件接口简单,接口连线少,可用于多个单片机系统之间的数据通信,且连线简单
2.
发送:
方式
发送1帧的位数
发送特点
0
8个数据位
同
异
都需要输入SBUF写入一个脉冲
每一个时钟脉冲产生一个移位脉冲并且由TXD输出
接收完毕TI变高电平
波特率的不同
方式0无需
控制而方式1,2均需要而且方式1,2都有起始位和停止位
1
1起始位+8数据位+1停止位=10位=1帧
2
1起始位+8数据位+1奇偶校验位TB8+1位停止位=11位=1帧
接收:
方式
一帧的位数
发送特点
0
8个数据位
同
异
接收完毕RI变高电平,表示接收完毕
波特率的不同
方式0写入SCON后开始接收数据
方式1/2在RXD负跳变后开始接收并且方式1/2在每接收一位数据的时候连续三次采样保证准确性
1
1起始位+8数据位+1停止位=10位=1帧
2
1起始位+8数据位+1奇偶校验位TB8+1位停止位=11位=1帧
3.由上表可得,方式1
4.
串行口有方式0123四种工作方式3种帧格式分别属于方式012/3
方式0波特率为fosc/12
方式1波特率为
方式2波特率为
方式3波特率为
5.
因为A的ACSII码十进制的时候为65所以二进制的时候为01000001
在条件下为
起始位
1
0
0
0
0
0
1
0
校验位
停止位
6.
A.对TB8RB8为第九位,可以由用户通过设置方式的不同选择不同的功能
B.对在方式2/3的条件下,TB8为发送的第九位数据,其值可以由软件置1或清0,双机通讯的时候作为奇偶校验位使用,多级通讯代表帧类型
C.错CPU执行一条将数据写入发送缓冲器SBUF的指令的时候产生一个正脉冲,发送才开始
D.对在方式2/3条件下RB8的作用就是接受第九位数据方式1作用是接受停止位方式0不使用(方式0一帧才8位)
E.对只有方式0方式2不可
7.
A.基址寄存器加变址寄存器简直寻址方式查表指令
B.累加器与外部数据存储器传输
C.数据传输指令
D.半字节交换指令
8.
因为方式2可以自动填装初值,可以简化程序的重新填装初值操作
9.
由上面某个表格得C
10.相等
P1237.4中
在串行通信中,收发双方发送或接收的波特率必须一致
11.
题中波特率为4800b/s按照答案反推(由表7-2P124)得SMOD为0
这里需要注意的是11.0592MHZ需要转化为11.0592*10^6HZ来计算
最后计算出X=2^16-6=FFFFH-6=FFFAH
所以TH1=0FFHTL1=0FAH
MOVTMOD,#20H(不晓得答案写什么乱七八糟的)
MOVTH1,#0FFH
MOVTL1,#0FAH(计数器初始化设置波特率)
MOVSCON.#40H(方式1)
12.
P123123一共三点
151800/MIN=30/S=300b/Sw
16参考答案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 单片机 chapter7