#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;
}
}
}}}
|