当前位置: 首页 > news >正文

基于单片机教室人数实时检测系统

一、系统方案
主程序中main函数主要是引脚的初始化,给单片机引脚初始化,初始化LCD1602,初始化红外对管,通过对LCD1602赋值,采集进入教室的人数,显示在LCD1602上面进出人数我们采用按键的形式,检测完毕后按下确认键确认是否在我们需要的人数范围内,当少于我们需要的人数时,蜂鸣器会报警三秒,反之,则会LED亮三秒。
在这里插入图片描述
二、硬件设计
原理图如下:
在这里插入图片描述
三、单片机软件设计
1、首先是系统初始化
/****
*******1602初始化函数
*****/
void lcd_init()
{
lcd_write_com(0x38);
lcd_write_com(0x0c);
lcd_write_com(0x06);
lcd_write_com(0x01);

}
2、液晶显示程序
/****
*******1602写数据忙函数
*/
void lcd_write_date(uchar date)
{
check_busy();
en=0;
LCD_PORT=date;
rs=1;
wr=0;
en=1;
en=0;
}
/

*******1602写命令函数
*/
void lcd_write_com(uchar com)
{
check_busy();
en=0;
LCD_PORT=com;
rs=0;
wr=0;
en=1;
en=0;
}
/

*******1602写温度函数
*****/
void lcd_wendu(uchar add,uchar date)
{
uchar shi,ge;
shi=date/10;
ge=date%10;
lcd_write_com(add);
lcd_write_date(shi+‘0’);
lcd_write_date(ge+‘0’);
}
3、按键程序
void keyscan()
{

if(K1==0)		//检测按键K1(正转)是否按下
{delayms(10);	//消除抖动if(K1==0){ZZ(0x01);count++;buf_3[0]=count/10+'0';buf_3[1]=count%10+'0';lcd_write_str(0x80+0x40+8,buf_3);}while(!K1);	 //检测按键是否松开}
if(K2==0)		//检测按键K2(反转)是否按下
{delayms(10);	//消除抖动if(K2==0){ZZ_1(0x01);count--;buf_3[0]=count/10+'0';buf_3[1]=count%10+'0';lcd_write_str(0x80+0x40+8,buf_3);}while(!K2);	 //检测按键是否松开}	

if(K30) //检测按键K2(反转)是否按下
{
delayms(10); //消除抖动
if(K3
0)
{
if(count >= 80)
LED = 0;
else
{
BUZ = 0;
delayms(500);
BUZ = 1;
delayms(500);
BUZ = 0;
delayms(500);
BUZ = 1;
delayms(500);
}
}
while(!K3) //检测按键是否松开
{
delayms(3000);
BUZ = 1;
LED = 1;
}

}		

}
4、核心算法程序
/┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数功能:主函数
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
/
void main(void)
{
uint i;
count = 70;
TMOD = 0x01; //T0 16位工作方式
IR_1=1; //发射端口常态为高电平

lcd_init();
lcd_write_str(0x80,buf_1);
lcd_write_str(0x80+0x40,buf_2);
lcd_write_str(0x80+0x40+8,"70");

while(1)
{
keyscan();
}
}

四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

http://www.lryc.cn/news/147410.html

相关文章:

  • alibabacloud的简单使用,nacos配置中心+服务中心。作者直接给自己写的源码
  • Python爬虫:一个爬取豆瓣电影人像的小案例
  • STM32CubeMX配置STM32G0 Standby模式停止IWDG(HAL库开发)
  • 39.RESTful案例
  • Power Pivot 实现数据建模
  • Ansible自动化运维之playbooks剧本
  • Docker - Docker安装MySql并启动
  • SQL Server 2019导入txt数据
  • 科研 | Zotero导入无PDF的参考文献、书籍
  • 【Docker】docker入门之dockerfile编写
  • javaee之黑马乐优商城1
  • 滴滴前端一面面经(已挂)
  • 靠谱的适合上班族做的副业,这几种一定要试试!
  • VSCode连接服务器
  • Python爬虫网络安全:优劣势和适用范围分析
  • swift APP缓存
  • Linux中的dpkg指令(dpkg -l | grep XXX等)
  • import type {} from ‘module‘ 具体解释
  • 十年JAVA搬砖路——数据结构线性结构
  • Mybatis为什么需要预编译等一系列问题
  • 【JVM基础】JVM入门基础
  • 【SpringBoot】详细介绍Spring Boot中@Component
  • Redis执行lua脚本-Time函数-获取当前时间
  • 前端无需install快速调试npm包,Console-Import使用
  • 构建稳定的爬虫系统:如何选择合适的HTTP代理服务商
  • Python爬虫基础:使用Scrapy库初步探索
  • MacBookPro重装系统图文教程
  • Android 6.0长按电源键添加重启菜单
  • Python股票交易---均值回归
  • 机器人制作开源方案 | 桌面级机械臂--本体说明+驱动及控制