永发信息网

写出配置8051串行口为异步通信口,通信规约为:8位数据位,1位起始位,1位停止位,波特率为960

答案:2  悬赏:40  手机版
解决时间 2021-02-07 00:07
  • 提问者网友:我们很暧昧
  • 2021-02-05 23:41
写出配置8051串行口为异步通信口,通信规约为:8位数据位,1位起始位,1位停止位,波特率为9600bps的初始化代码,石英晶体的频率11.0592MHz。
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-02-06 01:21
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}

UARTINIT: ;9600bps@11.0592MHz
ANL PCON,#7FH ;波特率不倍速
MOV SCON,#50H ;8位数据,可变波特率
ANL AUXR,#0BFH ;定时器1时钟为Fosc/12,即12T
ANL AUXR,#0FEH ;串口1选择定时器1为波特率发生器
ANL TMOD,#0FH ;清除定时器1模式位
ORL TMOD,#20H ;设定定时器1为8位自动重装方式
MOV TL1,#0FDH ;设定定时初值
MOV TH1,#0FDH ;设定定时器重装值
CLR ET1 ;禁止定时器1中断
SETB TR1 ;启动定时器1
RET
全部回答
  • 1楼网友:洎扰庸人
  • 2021-02-06 02:12
原题大概是这样: 在异步通信中,1位起始位,7位数据位,2位停止位,波特率位2400baud,采用nrz编码,有效数据速率是__(22)__kb/s。 (22)a. 9.60 b. 2.40 c. 1.72 d. 1.68 应该选 d. 1.68。 理由:有效数据速率是 7/10,2400×10分之7 = 1680bps,等于1.68kb/s。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯