完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
本人单片机学习小白。最近在学习单片机的异步串行通信,遇到了几个问题,需要大神给与指导,希望大神不吝赐教。
问题是这样的: (1)在进行异步通信的时候,我们经常使用的是MOV SBUF,A或者是MOV A,SBUF这两个指令。但是A寄存器只有8位,如果我要传输一个8位的数据DATA,如果不加奇偶校验位P,这样的传输原理我能理解。但是如果加上奇偶校验位,那就是8位了,那应该怎么传输?是将原来8位的数据DATA进行拆分,分为两次传送吗? (2)更深入的问题,书上说,串行通信方式1中,串行口发送/接受的共10位信息,第0位是起始位“0”,1~8位位数据位,最后是停止位“1”,SBUF和A都是8位的寄存器,该怎么传送?这是怎样的传送原理? (3)同(2)中,方式2和3都是数据字位9位的异步通讯接口。一位起始位“0”,8位数据位,第9位是可程控位“1”或"0",最后是停止位”1“,共有11位信息,这样的话是怎么样传输过去?MOV SBUF,A可以吗?对于非数据位是怎样传送的? 希望大神不吝赐教! |
|
相关推荐
5 个讨论
|
|
|
异步通信也可以是以帧作为发送单位。接收端必须随时做好接收帧的准备。这时,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。
|
|
|
|
|
|
|
|
|
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。
采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。 同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3631 浏览 3 评论
1870 浏览 3 评论
5270 浏览 1 评论
2432 浏览 1 评论
3630 浏览 2 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 01:28 , Processed in 0.759280 second(s), Total 49, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2081