|
#include <reg52.h> //51頭文件
#include <..\document\QXA51.h>//QX-A51智能小車配置文件
#include<..\document\STC89C51RC_EEPROM.h>
void delay(unsigned int z)//毫秒級(jí)延時(shí)
{
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位自動(dòng)重裝
TH1 = 0xfd;
TL1 = 0xfd; //比特率9600
TR1 = 1; //啟動(dòng)T1定時(shí)器
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表示有信號(hào)傳入單片機(jī)
{
beep = 0;
delay(1000);
P1=0xfc;
a=SBUF; //SBUF為通過(guò)P30接口傳入單片機(jī)的數(shù)據(jù)的值(當(dāng)單片機(jī)需要傳出數(shù)據(jù)時(shí)也是通過(guò)SBUF的)
RI=0; //需要再次接收信號(hào)時(shí)需要將RI置0
beep = 1;
for(;a>=0;a--)
{
beep=0; //蜂鳴器響起
delay(1000);
beep=1; //蜂鳴器停響
delay(5000);
}
P1 = 0xfd;
delay(3000);
RI = 0; //需要再次接收信號(hào)時(shí)需要將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;
}
}
}
這個(gè)是程序 單片機(jī)是stc89c52 |
|