标题:
单片机与PC机的互相通信
[打印本页]
作者:
薄情yi
时间:
2017-5-4 13:09
标题:
单片机与PC机的互相通信
目前我正在做有关单片机与PC机相互通信的小项目,我想在一个程序里面同时实现电脑发送数据控制单片机LED灯 ,单片机通过按一个键向电脑发送数据并在PC机上显示。这两个小程序我都分别实现出来了,可是不知道如何合并来实现这个功能
求大神解答 谢谢
《这是单片机通过按键向电脑发送数据》
#include <STC15Fxxxx.h>
unsigned char ad = -1;
bit Flag=1;
unsigned char code key_code[]={0x7e,0x7d,0x7b,0x77,0xbe,0xbd,0xbb,0xb7,0xde,0xdd,0xdb,0xd7,0xee,0xed,0xeb,0xe7};
void delay_ms(unsigned int xms)
{
u8 i,j;
for(i=xms;i>0;i--)
for(j=100;j>0;j++);
}
char keyscan()
{
char scan1,scan2,keycode,j,key;
key=-1;
P0=0xf0;
scan1=P0;
if(scan1!= 0xf0)
{
delay_ms(1200);
scan1=P0;
if(scan1!=0xf0)
{
delay_ms(1200);
P0=0x0f;
scan2=P0;
keycode=scan1|scan2;
for(j=0;j<16;j++)
{
if(keycode ==key_code[j])
{
key=j;
while(P0!=0x0f);
break;
}
}
}
}
return (key);
}
void init()
{
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xFE;
TMOD &= 0x0F;
TL1 = 0xE0;
TH1 = 0xFE;
ET1 = 0;
TR1 = 1;
ES =1;
EA = 1;
REN=1;
}
void main (void)
{
P0M1 = 0; P0M0 = 0;
P1M1 = 0; P1M0 = 0;
P2M1 = 0; P2M0 = 0;
P3M1 = 0; P3M0 = 0;
P4M1 = 0; P4M0 = 0;
P5M1 = 0; P5M0 = 0;
P6M1 = 0; P6M0 = 0;
P7M1 = 0; P7M0 = 0;
init();
while(1)
{
ad = keyscan();
if(ad!=-1)
{
SBUF = ad;
}
}
}
void ddd() interrupt 4
{
if(RI)
{
RI =0;
}
if(TI)
TI =0;
}
《这是电脑控制单片机LED灯》
#include <STC15Fxxxx.h>
unsigned char a = 0x20;
void init()
{
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xFE;
TMOD &= 0x0F;
TL1 = 0xE0;
TH1 = 0xFE;
ET1 = 0;
TR1 = 1;
ES =1;
EA = 1;
REN=1;
}
void main()
{
init();
while(1)
{
if(a==0x00)
P6 = 0x00;
if(a==0x01)
P6 = 0xff;
}
}
void te() interrupt 4
{
if(RI)
{
a = SBUF;
RI = 0;
}
if(TI)
{
TI =0;
}
}
作者:
w1179benp
时间:
2017-5-4 20:28
我想应该在PC机上写个管理程序(俗称上位机程序),通过串口或PCI接口等,连接你的下位机。
作者:
lidengjing
时间:
2017-5-4 20:41
一个MIAN()函数,然后把两个功能合并实现就可以
作者:
yzwzfyz
时间:
2017-5-5 11:16
主程序:
初始化
START:
检测是否有功能1的标记,有则调功能1;
检测是否有功能2的标记,有则调功能2;
……
检测是否有功能N的标记,有则调功能N;
进行入休眠(可不要此步)
返回到:START
子程序:
功能1;
功能2;
……
功能N;
事件发生(可在中断发生):
事件1发生,置功能1标记;
事件2发生,置功能2标记;
……
事件N发生,置功能N标记;
作者:
薄情yi
时间:
2017-5-7 15:12
lidengjing 发表于 2017-5-4 20:41
一个MIAN()函数,然后把两个功能合并实现就可以
恩对 就是这样 刚开始试了不行 后来又行了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1