本设计由STC89C52单片机电路+红外对管传感器+LCD1602液晶显示电路+蓝牙模块电路+LED指示灯电路+电源电路组成。
1、通过红外对管模块实时检测车位是否占用,车位分为1车位,2车位,3车位。如果车位被占用,则系统通过蓝牙模块向手机APP发送占用信息,如:NO1 Parking、NO2 Parking、NO3 Parking、NO1 void、NO2 void、NO3 void。
2、液晶实时显示车位被占用数、空车位数。并且把显示车位被占用数、空车位数实时上传到手机APP。
3、通过手机APP可以控制3路黄灯的亮灭。
资料下载地址
https://pan.baidu.com/s/1BVE8CwzHjnDdUknlzcJrMw?pwd=8888
部分代码
unsigned char weiFlag01 = 0; //位置标志
unsigned char weiFlag02 = 0; //位置标志
unsigned char weiFlag03 = 0; //位置标志
unsigned char ZYNum = 0; //占用总数
void Init_Timer0(void); //函数声明
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);
void main(void)
{
Init_Timer0(); //定时器0初始化
UART_Init();
DelayMs(100); //延时有助于稳定
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear(); //清屏
wei01 = 1;//初始化
wei02 = 1;
wei03 = 1;
while(1)
{
if(disFlag==1) //定时读取ds1302 定时时间到 则标志位置1,处理过时间参数标志位清零
{
disFlag=0; //标志位清零
if(weiFlag01 == 1)
{LCD_Write_String(0,1,"P ");}//显示占用
else
{LCD_Write_String(0,1,"N ");}
if(weiFlag02 == 1)
{LCD_Write_String(2,1,"P ");}//显示占用
else
{LCD_Write_String(2,1,"N ");}
}
if(reportFlag == 1) //进球成功上报一次数据
{
reportFlag = 0; //清楚标志
if(weiFlag01 == 1)
{uartSendStr("N01 Parking ",12);}//发送占用
else
{uartSendStr("N01 Void ",12);}
uartSendStr("\r\n",2); //换行
if(weiFlag02 == 1)
{uartSendStr("N02 Parking ",12);}//发送占用
}
}
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
资料下载地址