本设计由STC89C52单片机电路+红外避障传感器电路+wifi模块电路+电源电路。
1、通过2路红外避障传感器分别检测公交车前门进人数A和后门出人数B。
2、通过wifi将前门进人数A、后门出人数B、汽车当前总人数即(A-B)。实时传送到手机app。
资料下载地址
https://pan.baidu.com/s/1ljVQQd0ll84_MulnQxC2cw?pwd=8888
部分代码
void Init_Timer0(void);//函数命令
void UART_Init(void);
void SendByte(unsigned char dat);
void SendStr(unsigned char *s,unsigned char length);
void main (void)
{
EX0=1; //外部中断0开
IT0=1; //边沿触发
EX1=1; //外部中断1开
IT1=1; //IT1=1表示边沿触发
Init_Timer0(); //定时器0初始化
UART_Init(); //串口初始化
for(i=0;i<50;i++)
{DelayMs(100);}
SendStr("AT+CIPMUX=1\r\n",13); //打开多连接
for(i=0;i<7;i++)
{DelayMs(100);}
SendStr("AT+CIPSERVER=1,8080\r\n",21); //建立服务 端口号为8080
for(i=0;i<7;i++)
{DelayMs(100);}
while(1) //主循环
{
SendStr(dis0,21); //发送
SendStr("\r\n",2); //回应发送数据
DelayMs(200);
DelayMs(200);
DelayMs(200);
}
}
void ISR_Key(void) interrupt 0 using 1
{
Num++; //有人进入
jNum++;
}
void ISR_INT1(void) interrupt 2
{
if(Num>0) Num--; //有人出去
if(cNum<jNum)cNum++; //保证出人数小于进人数
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
void UART_Init(void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TL1 = TH1;
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
ES = 1; //打开串口中断
}
资料下载地址