单片机是stc89c52
二维码测试程序
#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;
}
}
}
|