硬件设计

(末尾附文件)

仿真文件中的酒精传感器均是用滑动变阻器来模拟
基于数码管显示:

基于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显示相关推荐

  1. 基于51单片机的自动售货机proteus仿真程序原理图设计数码管液晶LCD1602显示

    硬件设计 (末尾附文件) 方案1: 仿真图 方案2 仿真图: #include<reg51.h>/*******************define******************** ...

  2. 基于51单片机的酒精浓度检测仪设计

    本设计仅供参考 基于51单片机的酒精浓度检测仪设计(proteus仿真+程序+原理图+报告) 原理图:Altium Designer 仿真:proteus 8.9 程序编译器:keil 4/keil ...

  3. 基于51单片机的多功能时钟温度计proteus仿真原理图

    本系统是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压环境中工作:时钟电路由内部时钟电路外接晶振提供,它是一种高性能.低功耗.带RAM的可随时调整时钟电路,工作电压为3V- ...

  4. 基于51单片机超声波的停车场车位管理系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前车位状态 2.当超声波探头检测到距离小于500mm时,判断为当前车位有车,否则无车 3.超声波传感器型号采用HC ...

  5. 基于51单片机的数字音乐彩灯电子琴proteus仿真原理图PCB

    0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前工作模式或曲目编号 2.支持电子琴模式和歌曲模式(内置8首歌曲) 3.按'切换'键可切换工作模式 4.电子琴模式下,按矩阵键 ...

  6. 基于51单片机的恒温箱水温温度控制系统报警器方案原理图设计

    硬件电路的设计 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+数字温度传感器DS18B20电路+按键电路+蜂鸣器报警电路+继电器控制电路+LCD1602液晶 ...

  7. T027基于51单片机的智能窗帘窗户控制系统proteus仿真原理图PCB

    功能: 0.本系统采用单片机STC89C52作为系统的主控芯片 1.系统采用LCD1602液晶实时显示当前时间/窗帘状态/光照强度 2.系统具有四个功能按键,支持手动按键/定时/遥控三种模式控制窗帘 ...

  8. 基于51单片机的教室车辆计数器报警proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示进出计数和当前总数 2.系统设计有四个功能按键,按键可设定总数上限阈值,超过上限,系统将报警 3.报警电路由蜂鸣器和LE ...

  9. 基于51单片机的水位水质检测系统Proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示水位.水质百分比 2.按键设置水位水质阈值并通过液晶显示 3.具备4个LED分别作为水位水质的上下限指示灯 4.具备声光 ...

最新文章

  1. Java集合知识:TreeMap
  2. kafka 丢弃数据_20条关于Kafka集群应对高吞吐量的避坑指南
  3. centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
  4. 有关 iOS 的开发证书、应用标识、设备标识、配置文件以及密钥 #DF...
  5. Linux kernel 同步机制(下篇)
  6. python手绘教学_Python实现手绘功能
  7. oschina git服务, 如何生成并部署ssh key
  8. poj 3278 Catch That Cow (bfs 搜索)
  9. HDU 1181.变形课-并查集
  10. Android中注册一个 BroadcastReceiver的代码
  11. Origin 2022b | 更新及安装 | 中英文切换
  12. 小米手机的专用计算机连接软件,小米手机怎么连接电脑?这些方法值得收藏!...
  13. Origin图复制到Word后有大片空白
  14. vue3实现电子实时时钟(动态时钟)
  15. 小程序踩坑之地图定位不精准的问题
  16. 使用moment计算两个日期的相差天数
  17. 一个好的PS笔刷(笔触)下载论坛
  18. 利用Mininet环境-交换机转发实验整个过程
  19. MacBook(m1) 通过brew安装PHP环境
  20. 22年5月14日面试随笔

热门文章

  1. FOSB|FOUP晶圆盒RF插件读写器CK-S650系列1协议说明
  2. (模块化)Finding and evaluating community structure in net work
  3. 格式化存储装置成为 Ext2/Ext3/Ext4 档案系统
  4. 基于matlab人,基于MATLAB的人口预测研究
  5. Facebook不同账户类型的投放格式【Facebook企业户】
  6. 知识图谱brat标注工具的用法
  7. linux安装weblogic出现主清单位置 /data/oracle/oraInventory 无效 (无法读取/执行)
  8. yolov8训练筷子点数数据集
  9. 图片优化须知的8个小技巧
  10. 计算机常见问题解答大全,计算机原理常见问题大全.doc