资源简介
021 酒精浓度检测 仿真 显示 51单片机

代码片段和文件信息
#include
#include
#include “lcd1602.h“
/************端口定义********************/
sbit CS=P1^0; //ADC0832片选
sbit CLK=P1^1; //ADC0832时钟
sbit DIO=P1^2; //ADC0832输入输出
/*****************************************/
/********ADC0832的A/D转换程序************************/
unsigned char Get_AD_Result(unsigned char ch)
{
unsigned char idat1=0dat2=0;
CS = 0; _nop_(); _nop_(); //片选使能,低电平有效
CLK = 0; _nop_(); _nop_(); //芯片时钟输入
DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
//第1个下降沿之前,设DI=1/0
//选择单端/差分(SGL/DIF)模式中的单端输入模式
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
//第2个下降沿之前设置DI=0/1选择CHO/CH1
CLK = 0;
if(ch==0)
DIO = 0; //通道0 内部电压测试
else DIO = 1; //通道1
_nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
//第3个下降沿之前设置DI=1
CLK = 0;DIO = 1; _nop_(); _nop_();
//第4-11个下降沿读数据(MSB->LSB)
for(i=0;i<8;i++)
{
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
dat1 = dat1 << 1 | DIO;
}
//第11-18个下降沿读数据(LSB->MSB)
for(i=0;i<8;i++)
{
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
dat2 = dat2 << ((unsigned char)(DIO)< }
CS = 1;//取消片选一个周期结束
//如果MSB->LSB和LSB->MSB读取的结果相同则返回读取的结果否则返回0
return dat1;
// return (dat1 == dat2) ? dat1:0;//取消校验
}
sbit ADDkey=P3^4;
sbit SECkey=P3^5;
sbit beep=P3^7;
//酒精检测相关定义
#define K_MG_MV 160/128 //传感器灵敏度系数,可自行校准 60 62 68 128
#define K_ZERO 30 //传感器零点漂移
int alcohol_alarm_value; //酒精浓度报警值 一般为80mg/L为酒驾检准
int alcohol_temp=0;
int alcohol_value=0;
void main()
{
LCD_init();
alcohol_alarm_value=80;
LCD_write_str(00“alcohol: mg/L“);
LCD_write_str(01“Alarm : mg/L“);
LCD_write_num(80alcohol_value);
LCD_write_num(71alcohol_alarm_value);
while(1)
{
//酒精检测 50mg/L=62.5ppm,传感器灵敏度应事先校准
// alcohol_temp=500.0*Get_AD_Result(0)/256;//获取AD转换值 计算电压值,单位10毫伏
// alcohol_temp=alcohol_temp-K_ZERO; //减去0点漂移 130mV
// if(alcohol_temp<0) alcohol_temp=0;
// else
// alcohol_temp=alcohol_temp*K_MG_MV;//将mV转成mg/LK_MG_MV系数需校准
// alcohol_value=alcohol_temp; //得到酒精值
alcohol_value=500.0*Get_AD_Result(0)/256; //得到酒精值
LCD_write_num(80alcohol_value); //刷新显示
LCD_write_num(71alcohol_alarm_value); //刷新显示
if(ADDkey==0) //加
{
while(ADDkey==0);
alcohol_alarm_value++;
}
if(SECkey==0)//减
{
while(SECkey==0);
alcohol_alarm_value--;
}
if(alcohol_value>alcohol_alarm_value) //判断报警
{
beep=0;
}else
{
beep=1;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-04-24 16:01 021 酒精浓度检测\
目录 0 2019-04-24 16:01 021 酒精浓度检测\proteus仿真\
文件 121274 2018-03-31 19:05 021 酒精浓度检测\proteus仿真\alcohol.DSN
文件 22095 2019-04-24 16:01 021 酒精浓度检测\proteus仿真\alcohol.pdsprj
文件 872 2019-04-24 16:01 021 酒精浓度检测\proteus仿真\alcohol.pdsprj.ANOOP.PC1.workspace
文件 1102 2018-03-31 19:05 021 酒精浓度检测\proteus仿真\alcohol.PWI
文件 121274 2018-03-31 19:05 021 酒精浓度检测\proteus仿真\Last Loaded alcohol.DBK
文件 21535 2018-12-30 16:44 021 酒精浓度检测\proteus仿真\Last Loaded alcohol.pdsbak
文件 21471 2018-12-30 16:45 021 酒精浓度检测\proteus仿真\仿真图.pdsprj
文件 2198 2018-12-30 16:53 021 酒精浓度检测\proteus仿真\仿真图.pdsprj.ANOOP.PC1.workspace
目录 0 2019-04-24 16:01 021 酒精浓度检测\proteus仿真\源程序\
文件 17808 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol
文件 1288 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.build_log.htm
文件 2937 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.c
文件 9813 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.hex
文件 46 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.lnp
文件 5806 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.LST
文件 17510 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.M51
文件 15852 2018-12-30 16:46 021 酒精浓度检测\proteus仿真\源程序\alcohol.OBJ
文件 402 2018-03-31 19:05 021 酒精浓度检测\proteus仿真\源程序\alcohol.plg
文件 71646 2018-12-30 16:54 021 酒精浓度检测\proteus仿真\源程序\alcohol.uvgui.PC1
文件 5443 2018-12-30 16:24 021 酒精浓度检测\proteus仿真\源程序\alcohol.uvopt
文件 13791 2018-12-30 16:24 021 酒精浓度检测\proteus仿真\源程序\alcohol.uvproj
文件 996 2018-03-31 19:04 021 酒精浓度检测\proteus仿真\源程序\alcohol_Opt.Bak
文件 0 2016-11-21 17:33 021 酒精浓度检测\proteus仿真\源程序\alcohol_Uv2.Bak
文件 4031 2018-12-30 16:39 021 酒精浓度检测\proteus仿真\源程序\lcd1602.h
文件 274617 2018-11-21 20:51 如何运行仿真.docx
文件 691 2019-04-24 15:13 说明书.txt
相关资源
- 51单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
- 00
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 51多机通信(内附Proteus及.hex文件)
- IIC proteus仿真实验
- 8086交通灯 Proteus原理图及程序
- 单片机仿真软件proteus6.7免安装绿色版
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机驱动4相步进电机proteus仿真
- proteus元件库对照表 (整理清晰)
- 微机原理 十字路口交通灯控制 prot
- 中央空调室内智能温控器设计论文、
- 基于51单片机的交通灯设计
- 基于AT89C51的十字路口交通灯设计pro
- Proteus单片机仿真大全几百个part4
- Proteus升压电路仿真
- keil调试仿真技巧-从入门到精通
- 十字路口交通灯.pdsprj
- 12864液晶Proteus模型
- 数电设计 交通灯控制逻辑电路设计
- Proteus仿真的单片机控制步进电机及液
评论
共有 条评论