基于51单片机的酒精浓度检测量仪proteus仿真程序原理图设计数码管液晶LCD1602显示
硬件设计
(末尾附文件)
仿真文件中的酒精传感器均是用滑动变阻器来模拟
基于数码管显示:
基于LCD1602显示:
程序设计
//程序头函数
#include <reg52.h>
//显示函数
#include <display.h>
#include <intrins.h>
#include "eeprom52.h"
#include "temp.h"//宏定义
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1//管脚声明
sbit P34=P3^4;//温度
sbit LED_R= P2^2; //红指示灯
sbit LED_G= P2^0; //绿色指示灯
sbit FENG = P2^5; //蜂鸣器
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^6;
sbit OE=P3^2;
//按键
sbit Key1=P2^6; //设置按键
sbit Key2=P2^7; //加
sbit Key3=P3^7; //减
bit bdata flag;//指示灯和蜂鸣器闪烁报警标志位
uchar set; //设置标志位//函数声明
extern uchar ADC0809();
extern void Key();//酒精含量变量
unsigned int temp=0;
unsigned int WARNING=25; // 初始报警值
/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{SectorErase(0x2000);byte_write(0x2000, WARNING);byte_write(0x2060, a_a);
}/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{WARNING = byte_read(0x2000);a_a = byte_read(0x2060);
}/**************开机自检eeprom初始化*****************/
void init_eeprom()
{read_eeprom(); //先读if(a_a != 1) //新的单片机初始单片机内问eeprom{WARNING=25;a_a = 1;write_eeprom(); //保存数据}
}
//初始化函数
void init()
{TMOD=0x01; //定时器0方式1TL0=0xb0;TH0=0x3c;TL1=65000/256;TH1=65000/256; //赋初值EA=1; //开总中断ET0=1; //允许定时器0中断TR0=1; //定时器0开
}//主函数
void main()
{Init1602(); //1602初始化init_eeprom(); //开始初始化保存的数据init(); //初始化函数while(1)//主循环{if(set==0) //如果没有按下设置(默认set是0,就是正常显示状态){temp=ADC0809(); //读取酒精值Display_1602(temp,WARNING,ReadTemperature()); //显示酒精值}if(temp<WARNING&&set==0) //如果实际的酒精值小于报警值且在正常显示状态下{flag=0; //执行下面flag=0的(主要就是绿灯闪,关蜂鸣器和继电器)}else if(temp>WARNING&&set==0) //如果实际的酒精值大于报警值且在正常显示状态下{flag=1; //执行下面flag=1的(主要就是红灯闪,开蜂鸣器和继电器)}Key();//按键扫描}
}
//ADC0809读取信息
uchar ADC0809()
{uchar temp_=0x00;//初始化高阻太OE=0;//转化初始化ST=0;//开始转换ST=1;ST=0;//外部中断等待AD转换结束while(EOC==0)//读取转换的AD值OE=1;temp_=Data_ADC0809;OE=0;return temp_;
}
//按键函数
void Key()
{if(Key1==0) //如果设置按键按下{while(Key1==0);//等待按键释放FENG=0; //蜂鸣器响set++; //设置的变量加1flag=0; //绿灯闪TR0=0; //关定时器0write_com(0x0f);//打开显示 无光标 光标闪烁write_com(0x80+15);//位置
// write_com(0x06);//当读或写一个字符是指针后一一位FENG=1; //蜂鸣器关}if(set>=2) //又按了下设置{set=0; //正常显示状态
// write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁FENG=1; //蜂鸣器关flag=1; //红灯闪TR0=1; //定时器0开}if(Key2==0&&set!=0) //在设置的状态下按下加{while(Key2==0); //等待按键释放FENG=0; //蜂鸣器响WARNING++; //报警值加1if(WARNING>=255) //如果报警值大于等于255WARNING=0; //报警值归零write_com(0x80+13);write_data('0'+WARNING/100); write_data('0'+WARNING/10%10);write_data('0'+WARNING%10); //显示报警值//write_com(0x80+0x40+13);//调整位置FENG=1; //蜂鸣器关write_eeprom(); //保存数据}if(Key3==0&&set!=0) //在设置的状态下按下减{while(Key3==0); //等待按键释放FENG=0; //蜂鸣器响WARNING--; //报警值减1if(WARNING<=0) //如果报警值小于等于0WARNING=255; //那么报警值为255write_com(0x80+13);write_data('0'+WARNING/100);write_data('0'+WARNING/10%10);write_data('0'+WARNING%10);//write_com(0x80+0x40+13);//调整位置FENG=1; //蜂鸣器关write_eeprom(); //保存数据}
}
.
文件仅供参考:
链接:https://pan.baidu.com/s/1Gi9sVhC4MtSSqMjhYM5CKg
提取码:i5tt
.
基于51单片机的酒精浓度检测量仪proteus仿真程序原理图设计数码管液晶LCD1602显示相关推荐
- 基于51单片机的自动售货机proteus仿真程序原理图设计数码管液晶LCD1602显示
硬件设计 (末尾附文件) 方案1: 仿真图 方案2 仿真图: #include<reg51.h>/*******************define******************** ...
- 基于51单片机的酒精浓度检测仪设计
本设计仅供参考 基于51单片机的酒精浓度检测仪设计(proteus仿真+程序+原理图+报告) 原理图:Altium Designer 仿真:proteus 8.9 程序编译器:keil 4/keil ...
- 基于51单片机的多功能时钟温度计proteus仿真原理图
本系统是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压环境中工作:时钟电路由内部时钟电路外接晶振提供,它是一种高性能.低功耗.带RAM的可随时调整时钟电路,工作电压为3V- ...
- 基于51单片机超声波的停车场车位管理系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前车位状态 2.当超声波探头检测到距离小于500mm时,判断为当前车位有车,否则无车 3.超声波传感器型号采用HC ...
- 基于51单片机的数字音乐彩灯电子琴proteus仿真原理图PCB
0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前工作模式或曲目编号 2.支持电子琴模式和歌曲模式(内置8首歌曲) 3.按'切换'键可切换工作模式 4.电子琴模式下,按矩阵键 ...
- 基于51单片机的恒温箱水温温度控制系统报警器方案原理图设计
硬件电路的设计 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+数字温度传感器DS18B20电路+按键电路+蜂鸣器报警电路+继电器控制电路+LCD1602液晶 ...
- T027基于51单片机的智能窗帘窗户控制系统proteus仿真原理图PCB
功能: 0.本系统采用单片机STC89C52作为系统的主控芯片 1.系统采用LCD1602液晶实时显示当前时间/窗帘状态/光照强度 2.系统具有四个功能按键,支持手动按键/定时/遥控三种模式控制窗帘 ...
- 基于51单片机的教室车辆计数器报警proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示进出计数和当前总数 2.系统设计有四个功能按键,按键可设定总数上限阈值,超过上限,系统将报警 3.报警电路由蜂鸣器和LE ...
- 基于51单片机的水位水质检测系统Proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示水位.水质百分比 2.按键设置水位水质阈值并通过液晶显示 3.具备4个LED分别作为水位水质的上下限指示灯 4.具备声光 ...
最新文章
- Java集合知识:TreeMap
- kafka 丢弃数据_20条关于Kafka集群应对高吞吐量的避坑指南
- centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
- 有关 iOS 的开发证书、应用标识、设备标识、配置文件以及密钥 #DF...
- Linux kernel 同步机制(下篇)
- python手绘教学_Python实现手绘功能
- oschina git服务, 如何生成并部署ssh key
- poj 3278 Catch That Cow (bfs 搜索)
- HDU 1181.变形课-并查集
- Android中注册一个 BroadcastReceiver的代码
- Origin 2022b | 更新及安装 | 中英文切换
- 小米手机的专用计算机连接软件,小米手机怎么连接电脑?这些方法值得收藏!...
- Origin图复制到Word后有大片空白
- vue3实现电子实时时钟(动态时钟)
- 小程序踩坑之地图定位不精准的问题
- 使用moment计算两个日期的相差天数
- 一个好的PS笔刷(笔触)下载论坛
- 利用Mininet环境-交换机转发实验整个过程
- MacBook(m1) 通过brew安装PHP环境
- 22年5月14日面试随笔
热门文章
- FOSB|FOUP晶圆盒RF插件读写器CK-S650系列1协议说明
- (模块化)Finding and evaluating community structure in net work
- 格式化存储装置成为 Ext2/Ext3/Ext4 档案系统
- 基于matlab人,基于MATLAB的人口预测研究
- Facebook不同账户类型的投放格式【Facebook企业户】
- 知识图谱brat标注工具的用法
- linux安装weblogic出现主清单位置 /data/oracle/oraInventory 无效 (无法读取/执行)
- yolov8训练筷子点数数据集
- 图片优化须知的8个小技巧
- 计算机常见问题解答大全,计算机原理常见问题大全.doc