一、功能描述
讓8個(gè)LEE燈發(fā)光
二熏瞄、程序
/****
**********************************************************************/
#include "reg52.h"
sbit D1 = P1^0;
sbit D2 = P1^1;
sbit D3 = P1^2;
sbit D4 = P1^3;
sbit D5 = P1^4;
sbit D6 = P1^5;
sbit D7 = P1^6;
sbit D8 = P1^7;
unsigned char cmd = 0;
unsigned char F_Recv = 0;
/*=======================′??ú3?ê??ˉoˉêy========================*/
void Init_Uart()
{
//ì?±eìáD?£oè?1?òaê1ó?9600±èì??ê£?±?D?ía?ó11.0596MHz?§??
//1-éè??2¨ì??ê£o12M,2400
TMOD = 0x20;
TH1 = 0xF3;
TL1 = 0xF3;
TR1 = 1;
//2-éè??′??úμ?1¤×÷·?ê?
SCON = 0x50;?? //?£ê?1£o8??UART?£ê?£??êDí?óê?
//3-ê1?ü′??ú?à1?μ??D??
ES = 1;
EA = 1;
}
/*======================′??ú?D??·t??oˉêy=======================*/
void Service_Uart() interrupt 4
{
if(RI == 1 ) //è?1??a?óê?êy?Y?D??
{
RI = 0 ; //??3yêy?Y?óê??D??±ê????
cmd = SBUF; //?ó?óê?μ?μ?êy?Y?á3?
F_Recv = 1; //±ê??3é1|?á3?ò???′??ú?óê?êy?Y
}
}
/*======================′??ú×??ú·¢?íoˉêy=======================*/
void SendByte(unsigned char dat)
{
SBUF = dat;
while(TI == 0);
TI = 0;
}
/*======================′??ú×?·?′?·¢?íoˉêy=====================*/
void SendString(unsigned char *str)
{
while(*str != '\0')
{
SendByte(*str++);
}
}
/*===================?üá??a??ó?μ?1a????oˉêy====================*/
void Control_LED()
{
switch(cmd)
{
case 0xa1:
D1 = 0;
SendString("LEDμ?D1μ?ááá?£?\r\n");
break;
case 0xa2:
D2 = 0;
SendString("LEDμ?D2μ?ááá?£?\r\n");
break;
case 0xa3:
D3 = 0;
SendString("LEDμ?D3μ?ááá?£?\r\n");
break;
case 0xa4:
D4 = 0;
SendString("LEDμ?D4μ?ááá?£?\r\n");
break;
case 0xa5:
D5 = 0;
SendString("LEDμ?D5μ?ááá?£?\r\n");
break;
case 0xa6:
D6 = 0;
SendString("LEDμ?D6μ?ááá?£?\r\n");
break;
case 0xa7:
D7 = 0;
SendString("LEDμ?D7μ?ááá?£?\r\n");
break;
case 0xa8:
D8 = 0;
SendString("LEDμ?D8μ?ááá?£?\r\n");
break;
}
}
/*==========================?÷oˉêy============================*/
void main()
{
Init_Uart() ; //3?ê??ˉ′??ú
while(1)
{
if(F_Recv == 1) //3é1|?á3?ò???′??ú?óê?êy?Y
{
F_Recv = 0;
Control_LED(); //?a???üá?2¢????LEDμ?
}
}
}
三针余、電路圖