写了一个简单的电脑上位机和51单片机串口进行通信,功能可以查看进行串口发送和接收数据,并且可以实现单片机系统的开关。
单片机串口接收到数据0x01,单片机IO口输出高电平,继电器打开,用电器工作;
单片机串口接收到数据0x81,单片机IO口输出低电平,继电器关断,用电器停止工作。
上位机图:
下位机代码:
#include
#define HEAD 0x00
sbit J1 = P2 ^ 3;
void DELAY_MS (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
void UART_init (void){
TMOD = 0x20;
SCON = 0x50;
TH1 = 0x64;
TL1 = 0x64;
PCON = 0x80;
TR1 = 1;
}
void main (void){
unsigned char UART_data1,UART_data2;
unsigned int s;
P2=0X0f;
DELAY_MS(8000);
UART_init();
while(1)
{
if (RI == 1)
{
UART_data1 = SBUF;
RI = 0;
s=0;
while(s<2000&&UART_data1==HEAD)
{
s++;
if (RI == 1){
UART_data2 = SBUF;
RI = 0;
switch (UART_data2){
case 0x01:P2=0xff;break;
case 0x81:P2=0x00;break;
default:break;
}
}
}
}
}
}