本文主要是介绍47、基于51单片机超市或人车流量计数器系统设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
毕设帮助、开题指导、技术解答(有偿)见文末。
目录
摘要
一、硬件方案
二、设计功能
三、实物图
四、原理图
五、PCB图
六、Protues仿真
七、程序
部分代码
八、资料包括
摘要
随着科学技术的不断发展,我们的生活也不断的朝智能化方向发展。各种智能化产品频繁出现在我们的生活中,其中单片机是最常用的智能化控制核心,为了能更好的了解单片机,我打算利用单片机设计一个公共场所人流量统计系统。本系统采用STC89C51单片机作为整个系统的控制核心,利用人体红外感应模块来检测是否有人员通过门,有人员通过则输出高电平,再根据实际情况由单片机判断人员是进入还是出去,最后将人员进出情况送液晶屏显示。同时系统还具有显示时间和时间可调的功能,这将使我们能更加直观的了解到各个时段人流量的变化情况。本次设计中的单片机控制程序采用C语言编写,具有结构清楚,便于理解以及改进功能的特点。
关键词:人流量统计;人体红外感应器;51单片机
一、硬件方案
51单片机+最小系统+数码管显示模块+红外接近传感器模块+按键模块
二、设计功能
1. 单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。
2.采用红外壁障传感器检测信号,检测距离3~50cm,灵敏度可调(红外接近传感器的背面旋钮调节)。
3.数码管显示第一位显示数字(1代表进入人数,2代表出去人数、3代表滞留人数),第二位显示当前的人流量。
4.有一个按键切换显示滞留人数。另一个是复位按键。
三、实物图
四、原理图
五、PCB图
六、Protues仿真
七、程序
部分代码
flag_KEY2=0 ; //变量清零count_chuqu++; //出去人数变量加if(count_chuqu>count_jinru) //出去的人数不能大于进入的人数count_chuqu=count_jinru; //所以出去的人数大于进入的人数时,让出去的人数等于进入的人数count_zhiliu = count_jinru-count_chuqu;//更新滞留人数(室内现有人数为进入的人数减去出去的人数)}while(KEY1==0) //按键一直按下(传感器一直有信号)display(); //调用显示函数}}if(KEY2==0) //按键按下(进入的传感器检测到信号){delay(5); //延时去抖if(KEY2==0) //再次判断{flag_KEY2=1; //变量置1if(flag_KEY2==1&&flag_KEY1==1) //判断变量是否都为1{status=1; //切换显示模式到显示进入人数flag_KEY1=0;flag_KEY2=0; //变量清零count_jinru++; //进入人数加count_zhiliu = count_jinru-count_chuqu;//更新滞留人数(室内现有人数为进入的人数减去出去的人数)if(count_jinru>=99) //进入的人数最大99人count_jinru=99; //大于99人,就显示99人} while(KEY2==0) //按键一直按下(传感器一直检测到有人)display(); //调用显示函数}}if(KEY3==0) //按键按下{delay(5); //延时去抖if(KEY3==0) //再次判断按键按下{status++; //切换按键按下,就切换显示模式if(status>3) //变量大于3status=1; P0=~LEDData[10]; //送显示码P2=0xDF; //打开位选delay(2); //延时P2=0xFF; //关闭位选switch (status) //判断是要显示什么内容{case 1: P0=LEDData[count_jinru/10];break;//显示进入人数的十位case 2: P0=LEDData[count_chuqu/10];break;//显示出去人数的十位case 3: P0=LEDData[count_zhiliu/10];break;//显示滞留人数的十位}P2=0xBF; //打开位选delay(2); //下同,注释略P2=0xFF;switch (status) //判断是要显示什么内容{case 1: P0=LEDData[count_jinru%10];break;//显示进入人数的个位
八、资料包括
需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。
这篇关于47、基于51单片机超市或人车流量计数器系统设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!