|
目前我正在做有關單片機與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;
}
}
|
|