一、设计介绍
模块说明:
- STC89C52:主控芯片 单片机
- LCD12864(带字库版本):用于显示数据信息
- 独立按键:用于设置系统数据或控制
- DS1302实时时钟:获取当前实时时钟,模块内置纽扣电池,单片机关机后能自动给模块供电
- 红外光电开关:该模块可监测是否有遮挡,基于此功能可衍生其他作用
功能介绍:
- 统计图书馆内人数以及空闲座位
- 可以设置当前图书馆可容纳人数以及当前时钟,设置是通过矩阵键盘输入数字实现的
- 在有人进入时显示“人员进入”,当有人出去时显示“人员外出“
- 可以手动切换至时间显示界面
- 人员外出和进入通过两个光电开关同时进行判断,使用一定逻辑可以监测人员通行的方向。
硬件框图:
软件流程图:
原理图:
使用立创EDA格式打开,打开方式为将文件夹内 .json 后缀文件拖入嘉立创EDA(标准版) - 免费、易用、强大的在线电路设计软件 立创EDA编辑网站中即可
本次原理图使用立创EDA画出的,对于新手较为方便,全中文易上手,不需要安装任何软件。另,Altium Designer 格式打开后标注会有所丢失,建议使用立创EDA
Proteus仿真图:
实物图:
元器件清单:
如果您不能独自完成焊接,我这边也提供付费焊接服务以及调试,完成后第一时间通过快递寄给您。
二、代码资料展示
主要代码展示:
/********************* 函数声明 *******************/
//显示界面 每个菜单的结构
void Dis_menu();
//显示 数据
void Dis_Dat();
//获取数据
void Get_Dat();
//按键扫描
void Key_Scan();
//刷新设置后的数据
void Dis_Set_Dat();
//定时器0初始化
void timer0_init();
//初始化外部中断0 监测的P3^2 引脚
void init_Ex0();
//初始化外部中断1 监测的P3^3 引脚
void init_Ex1();
//通过两个红外光电开关判断进入还是出去
void Detection_Number_People();
void main()
{
DelayMs(100);//等待系统稳定
lcd12864_init();//初始化12864液晶显示模块
lcd12864_show_string(0, 0, " 图书馆人流量 ");
lcd12864_show_string(0, 2, " 监控系统 ");
DelayMs(1000);//延迟1秒
DelayMs(1000);//延迟1秒
init_ds1302();//初始化时钟模块
timer0_init();//定时器0初始化
while (1)
{
Get_Dat();//获取数据
Key_Scan();//按键扫描及处理函数
}
}
工程管理展示:
下载内容展示:
更多详细功能与代码视频讲解请B站搜索:易佳电子设计 主页搜索该设计编号或名称