标题: UART串行通信一些问题 [打印本页]
作者: 无尾熊 时间: 2016-7-12 12:14
标题: UART串行通信一些问题
TMOD &= 0xF0; //清零T0的控制位
TMOD |= 0x02; //配置T0为模式2
老师 TMOD &= 0xF0;→TMOD =TMOD & 0xF0;→TMOD =0X00 //00000000 & 11110000→00000000
TMOD |= 0x02; →TMOD =TMOD | 0x02; →TMOD=0x02 //00000000 | 00000010→00000010
这样理解对吗?
TL0 = 256 - ((256-TH0) >> 1); //接收启动时的T0定时为半个波特率周期
这个怎么理解接收启动时为半个波特率周期 一个周期是9600吗?
作者: kangshufan 时间: 2016-7-12 15:09
TMOD &= 0xF0 的目的是保证原来 时钟1设置不变的情况下 清零T0
作者: 00嘻嘻00 时间: 2016-7-13 15:36
路过

作者: zl2168 时间: 2016-7-14 10:46
本帖最后由 zl2168 于 2016-7-14 10:49 编辑
实例77 双机串行通信方式1
已知甲乙机以串行方式1进行数据传送,fOSC=11.0592MHz,波特率为1200b/s,SMOD=0。甲机发送16个数据(设为16进制数0~9、A~F的共阳字段码),间隔1秒,发送后,输出到P1口显示;乙机接收后输出到P2口显示。
先Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版
书中电路和程序设计有详细说明,程序语句条条有注解。
作者: zl2168 时间: 2016-7-14 10:49
本帖最后由 zl2168 于 2016-7-14 10:51 编辑
实例78 双机串行通信方式2
已知甲乙机以串行方式2进行数据传送,fOSC=12MHz,SMOD=0,TB8/RB8作为奇偶校验位。甲机每发送一帧数据(设为0~9共阳字段码,存在外ROM中),同时在P1口显示;用P2.7(驱动LED灯)显示奇偶校验位(1亮0暗);接到乙机回复信号后,显示暗0.5秒(作为帧间隔);然后发送下一数据,直至10个数据串送完毕;显示再暗0.5秒(作为周期间隔),然后重新开始第二轮重复循环操作。乙机接收甲机发送的一帧数据后,送P2口显示;用P1.1显示第9位数据(1亮0暗),用P1.0显示接收数据的奇偶性(奇亮偶暗);并进行奇偶校验,向甲机发送回复信号(00H表示校验正确,FFH表示出错)。若正确,甲机继续串行发送(共10帧);若出错,甲机再重发一遍,直至乙机发回正确回复信号。
先Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版
书中电路和程序设计有详细说明,程序语句条条有注解。
作者: zl2168 时间: 2016-7-14 10:52
本帖最后由 zl2168 于 2016-7-14 10:54 编辑
实例79 双机串行通信方式3
已知甲乙机以串行方式3进行数据传送,fOSC=11.0592MHz,波特率为4800b/s,SMOD=1,其余要求同上例。
先Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版
书中电路和程序设计有详细说明,程序语句条条有注解。
作者: vision-31 时间: 2018-12-20 17:10
这个有程序吗?
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |