单片机通过串口RS232同时(最多相互之间0.5S的时间差)发送四个不同的数据给上位机,这程序该怎么写,

单片机通过串口RS232同时(最多相互之间0.5S的时间差)发送四个不同的数据给上位机,这程序该怎么写,,第1张

才4个数据,直接连续发送就行了,根本不需要预留500毫秒那么长的时间。

QT不是很懂,你可以你找一些别人做好的例子来看看。

想识别四个不同的数据,加一些特定的数据在帧头或者帧尾咯,这样就可以识别了

#include<reg51h> //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

}

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

图需要你自己画,代码没问题。能实现你的要求,延时要根据你的单片机晶振频率来确定。

a是一个结构体数组,s是结构体中的一个成员变量!

普通的数组int b[3]里面包含3个整型的元素!但是结构体数组a[n]里面是n个结构体元素!结构体里面是什么类型的变量,有几个变量,要看是如何定义结构体。这一题中每个结构体里面有有一个字符数组num[10]和double s。所以a[n]中就有n和num[10]和n个s。a[i]就是第i+1个结构体,a[i]s就是第i个结构体中的双精度变量s。

设定定时时间为50ms,关闭定时器中断,起动定时器T0或T1。查询TF0或TF1定时器中断标致位,如果为1将P1高四位取反并清零TF0或TF1。查寻到五次TF0或TF1为1时取反一次P1低四位

#include<reg51h>

#define Frequency 12 //晶振几M的就改成几

#define Time 5000(Frequency/12)

unsigned char counter=0;

void initT0()

{ TMOD=0x01;

TH0=-Time/256;

TL0=-Time%256;

ET0=1;

EA=1;

TR0=1;

}void intT0(void)interrupt 1

{

counter++;

TH0=-Time/256;

TL0=-Time%256;

if(counter==100)

{ P1=~P1;

counter=0; //定时器计5000次,counter 计100次,总计500000=500ms

}

}

void main(void)

{

P1=0;

initT0();

while(1);

}//实测图。如下:

以上就是关于单片机通过串口RS232同时(最多相互之间0.5S的时间差)发送四个不同的数据给上位机,这程序该怎么写,全部的内容,包括:单片机通过串口RS232同时(最多相互之间0.5S的时间差)发送四个不同的数据给上位机,这程序该怎么写,、编程实现间隔0.5S循环流水灯效果,8个LED灯接在P2口上。 谁帮我解答下 急要、程序中的.s是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9481957.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存