
才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是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)