单片机串口通信程序

时间:2023-03-19作者:佚名

单片机串口通信是单片机非常好用的一项功能,可以和电脑和其他的单片机进行通信和交换数据从而达到某种效果。近期我们做了个程序:利用单片机串口通信编译一个程序在打开时向电脑发送问候语“hello”,然后电脑输入一个“start”,之后单片机将电脑输入任何字符都显示出来,除非是电脑输入为“end”。起初我们是想用字符串和数组来做这个题目的,但是在开始做的时候才发现,单片机的传输使用八位的一个一个的传输数据的,然后在传输之前还得将端口软件置零、这时候我们就选用了嵌套语句一个一个字符串的来判断,但是因为嵌套的对于单片机通信说不是很适合。如:在用五个if语句检测start是,如果其中少了一个(只有四个字符),这个程序就会卡住,不执行下一条:

#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar tang[20]="woshitangqun";
uint i,j;uint count=0;
uchar temp,qun,bao,m,n;
void t();void a();
void main()
{j=0;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SM0=0;SM1=1;
ET0=1;
TR1=1;ES=1;
REN=1;
while(1)
{
if(j==0) //单片机问候,向电脑发送一个字符串,表示单片机已经准备好工作了
{
for(i=0;i<20;)
{
SBUF=tang[i];
while(TI==0);
i ;
TI=0;
j ;
}
}
t();
}
}
void t()
{ while(RI==0);
RI=0;
if(SBUF=='s')
{ /* SBUF='s';
while(TI==0);
TI=0;*/
while(RI==0);RI=0;
if(SBUF=='s')a(); //调用a(),是为了解决ssstart和sstart的问题
if(SBUF=='t')
{
/*SBUF='t'; //发送到屏幕
while(TI==0);TI=0;*/
while(RI==0);RI=0;
if(SBUF=='a')
{
/*SBUF='a'; //发送到屏幕
while(TI==0);
TI=0;*/
while(RI==0);RI=0; //接收字符,并用下面的if语句判断
if(SBUF=='r')
{
/*SBUF='r'; //发送到屏幕,如果想要讲命令显示在屏幕上的话,就可以将这一句用上
while(TI==0);TI=0;*/
while(RI==0);RI=0;
if(SBUF=='t')
{
/*SBUF='t'; //发送到屏幕
while(TI==0);TI=0;*/
while(1)
{n=0;

while(RI==0);RI=0;temp=SBUF; //接收一个字符,赋值给temp;
if(SBUF=='e') //判断是否是e,若否则用else输出,是则近入if语句
{
while(RI==0)
{for(m=0;m<100;m );count ;}
RI=0; //若传输完毕,则给RI赋值,
bao=SBUF; //把传入的值赋给bao

相关阅读

同一供电系统不能同时采用保护接地与保护接零的原因

同一供电系统中,为什么不能同时采用保护接地与保护接零? 原因: 保护接地时将电气设备的金属外壳接地,避免负载绕组绝缘层破坏引起人体单相触电,而保护接零是将设备的外壳...
2024-03-18

LED灯带

  LED灯带简称灯带,它是一种将LED(发光二极管)组装在带状FPC(柔性线路板)或PCB硬板上而构成的形似带子一样的光源。LED灯带具有节能环保、使用寿命长(可达8万~10万h)等优点。   ...
2023-06-27
LED灯带

液位浮球开关在给排水系统

液位浮球开关在给排水系统中比较常用,一般液位浮球开关有两线制和三线制得。 液位浮球开关是一种结构简单,使用方便的液位控制零件,它设有复杂的电路,不会受到干扰,只要材...
2023-03-29
液位浮球开关在给排水系统

“低压断路器”,电力系统中必备电气设备,来认识下

低压断路器,是低压配电网和电力拖动系统中非常重要的一种电器,除能完成接通和分断电路外,还能对电路或电气设备的短路、过载及失压等进行保护,同时也可用于不频繁地启停电...
2023-06-13
“低压断路器”,电力系统中必备电气设备,来认识下

三相电压不稳定怎么解决?老师傅教你解决方法

定解决办法"/> 导致三相电压的不稳定,主要是用电负荷的增大,以及线路的原因(如线路过小、老化等)。所以电压不稳是跟大量用大功率设备有关系,但还有一些问题你没注意到,单...
2023-05-04
三相电压不稳定怎么解决?老师傅教你解决方法

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

公牛开关插座面板全屋定制全屋配齐家装报价单官方正品付款链接Q9

公牛开关插座面板,为您的全屋定制家装提供一站式解决方案。我们提供全屋配齐的家装报价单,确保您的家装项目完美无缺。所有产品均为官方正品,品质保证,让您用得放心。...
¥ 1

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目