#include <reg52.h> //51頭文件
#include <..\document\QXA51.h>//QX-A51智能小車配置文件
#include<..\document\STC89C51RC_EEPROM.h>
void delay(unsigned int z)//毫秒級延時
{
unsigned int x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
//STC89C52芯片初始化
void UART_init()
{
TMOD = 0x20; //T1工作模式2 8位自動重裝
TH1 = 0xfd;
TL1 = 0xfd; //比特率9600
TR1 = 1; //啟動T1定時器
SM0 = 0;
SM1 = 1; //串口工作方式1 10位異步
REN = 1; //串口允許接收
EA = 1; //開總中斷
ES = 1; //串口中斷打開
}
void main()
{
int a = 0;
int b,c;
c=2;
b=0xfe;
UART_init();
while(1)
{
if(RI != 0) //RI不等于0表示有信號傳入單片機
{
beep = 0;
delay(1000);
P1=0xfc;
a=SBUF; //SBUF為通過P30接口傳入單片機的數據的值(當單片機需要傳出數據時也是通過SBUF的)
RI=0; //需要再次接收信號時需要將RI置0
beep = 1;
for(;a>=0;a--)
{
beep=0; //蜂鳴器響起
delay(1000);
beep=1; //蜂鳴器停響
delay(5000);
}
P1 = 0xfd;
delay(3000);
RI = 0; //需要再次接收信號時需要將RI置0
}
else
{
for(;c>0;c--)
{
P1=b; //P1 = 0xfe 表示LED1(紅色)指示燈亮
delay(1000); //延遲1s,表示使LED1燈亮1s
b--; //P1 = 0xfd 表示LED2(黃色)指示燈亮
}
b=0xfe;
c=2;
}
}
}
這個是程序 單片機是stc89c52 |