51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几?

51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几?本来想用串口的模式1,可是仔细一看,模式1是10异步通信方式,1起始位,8数据位,1停止位?
首先感谢一楼的回答。我还有些疑问,刚才用示波器看了下,当发送0xFF时,示波器显示一位低电平,其余为高电平,这点应该是对的,因为起始位是0.可是为什么发送0xAA时,示波器的(起始位+数据位+停止位)序列是:0 + 0101 0101 + 1,而0x55的序列为:0 +1010 1010 + 1,这两个值好像不对,是相反了,要是调一下刚好对?

用串口的模式1,是10位异步通信方式。
1起始位,8数据位,1停止位,没有奇偶校验位。
这种模式就是:8-n-1(8数据位,无奇偶校验位,1停止位)的模式。
完全符合你的要求。
--------------------
带奇偶校验位的,要用方式2或方式3。
把奇偶校验位,放到TB8上,就可以发送了,这就是偶校验。
接收的奇偶校验位,在RB8中。
--------------------
呵呵,你还用上了示波器!奢侈
你观察的很正确。
记住:串行通信,是“低位在前”。这就对了。
你补充的提问太多了,都足够再开一、二个问题了,这20分,真值!
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-11-30
void uart_init(void)
{
SCON = 0x50 ;//串行方式1, 8-bit数据位,允许接收
TMOD |= 0x21;//定时器1使用模式2,8-bit自动重装用于产生波特率
// PCON |= 0x80;//SMOD=1;波特率增倍
PCON &= 0x7f;//SMOD=0;波特率不增倍
TH1 = 0xfd; //Baud:19200(SMOD=1)或9600(SMOD=0),11.0592MHz
IE |= 0x90; //全局中断开,允许串口中断
TR1 = 1; //定时器1运行,开始产生波特率
}
你可以用串口监视工具来查看单片机发出的数据是否正确,祝你成功
第2个回答  2009-11-30
学习靠自己,知道吗?

51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是...
用串口的模式1,是10位异步通信方式。1起始位,8数据位,1停止位,没有奇偶校验位。这种模式就是:8-n-1(8数据位,无奇偶校验位,1停止位)的模式。完全符合你的要求。--- 带奇偶校验位的,要用方式2或方式3。把奇偶校验位,放到TB8上,就可以发送了,这就是偶校验。接收的奇偶校验位,在RB...

单片机串口通信,发送了无法收到数据(新手求教 )
如果使用串口调试助手调试,检查一下波特是否设置为4800,数据格式是否为8-N-1,即无校验位,8位数据和1位停止位。看看调试助手是否勾选了自动清除功能。同时可以查看Rx和Tx计数,如果这两个数字都不是0,证明串口收发正常,只是数据没被隐藏了。另外需要检查串口电缆是否损坏。

RS-232串口通信起始位,数据位,停止位怎么区分
1、n的意思是无“奇偶校验”,即起始位;2、8的意思是数据是8位的,即数据位;3、1的意思是1个“停止位”,即停车位。在这种情况下一个数据帧总共包括10位:1个起始位(低电平,用于同步),8个数据位(这是要传送的信息),以及1个停止位(高电平,用于表示数据帧结束)。当突然采样到连续的...

串行通信中,9600,8,N,1表示什么意思?
综上所述,9600,8,N,1是串行通信中常用的参数设置,表示以9600bps的速率传输8位数据,不使用校验位,并使用1位停止位。这种设置适用于许多不需要高速传输和对错误率要求不高的应用场景。

MCS-51单片机的串行接口有几种工作方式?请简述各种方式的功能.
89系列单片机的串行通信有4种工作方式:方式0是同步移位寄存器方式,帧格式8位,波特率固定为fosc\/12。方式1是8位异步通信方式,帧格式10位,波特率可变:T溢出率\/n(n= :32或16)。方式2是9位异步通信方式,帧格式11位,波特率固定: fosc\/n(n=32 或16)。方式3是9位异步通信方式,帧格式11位,...

利用串口实现单片机与PC超级终端通信
\/ 函数名:UART串口初始化函数 调 用:UART_init();参 数:无 返回值:无 结 果:启动UART串口接收中断,允许串口接收,启动T\/C1产生波特率(占用)备 注:振荡晶体为12MHz,PC串口端设置 [ 4800,8,无,1,无 ]\/***\/ void UART_init (void){ EA = 1; \/\/允许总中断(如不使用...

rs232接口定义
8\/N\/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验可以使用数据中的比特(bit),所以8\/E\/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的...

微控制器中预设波特率设定为(9600,n,8,1)是什么意思?
51微控制器 8M晶振 9600波特率设定 定时器1为16位自动重灌方式,按以下方式初始化, 波特率误差2%左右,可以接受。 void UartInit(void) 9600bps@8MHz { SCON = 0x50; 8位资料,可变波特率 TMOD &= 0x0F; 设定定时器1为16位自动重灌方式 TL1 = 0xEF; 设定定时初值 TH1 = 0xFF;...

用单片机控制一个8段数码管,其循环显示数字0到9,每位数字显示时间为一秒...
include<reg51.h> sbit Axs=P1^3;\/\/数码管位选端口 char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\/\/数码管显示编码 unsigned int h,m,s,t,n;\/***\/ void YS(char hs)\/\/延时函数 {char hk;for(;hs>0;hs--){for(hk=200;hk>0;hk--);}} \/*...

用51单片机控制1602液晶显示10进制数字~~
WriteInstruction(0x38); \/\/显示模式设置:16×2显示,5×7点阵,8位数据接口 delay(5); \/\/延时5ms ,给硬件一点反应时间 WriteInstruction(0x38);delay(5);WriteInstruction(0x38); \/\/连续三次,确保初始化成功 delay(5);WriteInstruction(0x0c); \/\/显示模式设置:显示开,无光标,光标不闪烁 delay(5);Write...

相似回答