#include <reg52.h>
unsigned char date;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P2^4;
sbit key2=P2^5;
sbit key3=P2^6;
sbit LED1=P1^0;
sbit LED2=P1^1;
void delay(uint z);
void Initial_com(void);
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void Initial_com(void)
{
EA=1; //開總中斷
ES=1; //允許串口中斷
ET1=1; //允許定時器T1的中斷
TMOD=0x20; //定時器T1,在方式2中斷產生波特率
PCON=0x00; //SMOD=0
SCON=0x50; // 方式1 由定時器控制
TH1=0xfd; //波特率設置為9600
TL1=0xfd;
TR1=1; //開定時器T1運行控制位
}
void main()
{
Initial_com();
while(1)
{
if(key1==0)
{
delay(5); //消抖動
if(key1==0) //確認觸發
{
LED1=0;
SBUF=0XA0;
delay(1000);
}
if(key1==1)
{
delay(5); //消抖動
if(key1==1) //確認觸發
{
LED1=1;
SBUF=0X21;
delay(500);
}
if(key2==0)
{
delay(10);
if(key2==0)
{
LED2=0;
SBUF=0X20;
delay(1000);
}
if(key2==1)
{
delay(10);
{
LED2=1;
SBUF=0X30;
delay(500);
}
}
}
if(RI)
{
date=SBUF; //單片機接收
SBUF=date; //單片機發送
RI=0;
}
}
}}}
|