永发信息网

mcs-51单片机,串行口主要由那几部分组成?

答案:2  悬赏:50  手机版
解决时间 2021-04-07 12:13
mcs-51单片机,串行口主要由那几部分组成?
最佳答案
通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。
  测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。

//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收
//和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的

#include
#include

#define INBUF_LEN 4 //数据长度

unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag= 0 ;

void init_serialcomm( void )
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80 ; //SMOD=1;
TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
// TI=1;
}

//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0 );
TI= 0 ;
}

//向串口发送一个字符串,strlen为该字符串长度
void send_string_com( unsigned char *str, unsigned int strlen)
{
unsigned int k= 0 ;
do
{
send_char_com(*(str + k));
k++;
} while (k < strlen);
}

//串口接收中断函数
void serial () interrupt 4 using 3
{
if (RI)
{
unsigned char ch;
RI = 0 ;
ch=SBUF;
if (ch> 127 )
{
count3= 0 ;
inbuf1[count3]=ch;
checksum= ch- 128 ;
}
else
{
count3++;
inbuf1[count3]=ch;
checksum ^= ch;
if ( (count3==(INBUF_LEN- 1 )) && (!checksum) )
{
read_flag= 1 ; //如果串口接收的数据达到INBUF_LEN个,且校验没错,
//就置位取数标志
}
}
}
}

main()
{
init_serialcomm(); //初始化串口
while ( 1 )
{
if (read_flag) //如果取数标志已置位,就将读到的数从串口发出
{
read_flag= 0 ; //取数标志清0
send_string_com(inbuf1,INBUF_LEN);
}
}

}
全部回答
特殊功能寄存器SCON和PCON,前者控制工作方式,后者控制波特率系数
2个物理上独立的发送和接收缓冲器SBUF
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求几本现代的宠文甜文,最好是豪门高干的,总
YY个人资料上退出的工会为什么还有白灰色,怎
白三字词语有哪些
我昨晚梦见青辣椒叻,自己不知道全是烂的,别
侯勇主演的电视剧,说的是侯勇的角色在国外受
如何在苹果电脑上安装虚拟windows系统
qq三国偏将怎样才叫做好,这个偏将值多少?
3Dmax 床外边黄色的框怎么去掉啊,恶心死了
请帮忙翻译成英文“请注意这个货的包装规格是
飞亚达手表官网丅802023丅W丅
DD桌游在哪里啊,我有事要去这个地方
精加工是什么意思
醋膜有些什么效果
《谜案追凶》txt全集下载
永恒之柱 控制台作弊代码一览 永恒之柱怎么使
推荐资讯
钳工在功取螺纹时,如何解决排屑问题
澳桦园在什么地方啊,我要过去处理事情
何为朋友,家人
携程,艺龙,去哪儿,途牛,哪个做得更好呢?
求正交表5因素4水平表的设计
请教大神5.1音箱怎么连接7.1声卡?谢谢了,急
自己在哭又不想让别人知道自己在哭该怎么办
我国财政部和税务总局表示,对1.6升及以下排
单选题Proper first aid can
聊天时说呵呵不好吗?为什么很多人讨厌?
哪有专门教相声的学校
减档时一脚离合,怎么轰油
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?