• 大小: 47KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-07-27
  • 语言: 其他
  • 标签: C代码  

资源简介

本产品采用单片机+最小系统+LCD1602液晶显示模块+MQ-3模块+ADC0832模块+蜂鸣器模块+LED指示灯模块+按键模块设计而成。 附件为C代码。

资源截图

代码片段和文件信息

//程序头函数
#include 
#include  //包含头文件
//显示函数
#include 
#include “eeprom52.h“

//宏定义
#define uint unsigned int 
#define uchar unsigned char
 
//管脚声明
sbit LED_R= P2^2;   //红色指示灯
sbit LED_G= P2^0;   //绿色指示灯
sbit FENG = P2^5;   //蜂鸣器
sbit CS   = P1^4;
sbit Clk = P1^2;
sbit DATI = P1^3;
sbit DATO = P1^3; //ADC0832引脚
//按键
sbit Key1=P2^6;
sbit Key2=P2^7;
sbit Key3=P3^7;
/*******************************定义全局变量********************************/
unsigned char dat = 0;      //AD值
unsigned char CH=0;       //通道变量
unsigned int sum=0;  //平均值计算时的总数
unsigned char m=0;
bit bdata flag;   //定义位变量
uchar set;   //设置变量
uchar   K_ZERO=40;       //传感器零点漂移,约130mV


//函数声明
extern void Key();
/*
void delay(uint z)
{
uint ij;
for(i=0;i for(j=0;j<121;j++);
}
*/

//酒精含量变量
uchar temp=0;

//指示灯变量

uchar 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();    //保存数据
}
}

/****************************************************************************
函数功能:AD转换子程序
入口参数:CH
出口参数:dat
****************************************************************************/
unsigned char adc0832(unsigned char CH)
{
unsigned char itestadval;
adval = 0x00;
test = 0x00;
Clk = 0;       //初始化
DATI = 1;
_nop_();
CS = 0;
_nop_();
Clk = 1;
_nop_();


if ( CH == 0x00 )      //通道选择
{
Clk = 0;
DATI = 1;      //通道0的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 0;      //通道0的第二位
_nop_();
Clk = 1;
_nop_();

else
{
Clk = 0;
DATI = 1;      //通道1的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 1;      //通道1的第二位
_nop_();
Clk = 1;
_nop_();
}

Clk = 0;
DATI = 1;
for( i = 0;i < 8;i++ )      //读取前8位的值
{
_nop_();
adval <<= 1;
Clk = 1;
_nop_();
Clk = 0;
if (DATO)
adval |= 0x01;
else
adval |= 0x00;
}
for (i = 0; i < 8; i++)      //读取后8位的值
{
test >>= 1;
if (DATO)
test |= 0x80;
else 
test |= 0x00;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
}
if (adval == test)      //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉
dat = test;
nop_();
CS = 1;        //释放ADC0832
DATO = 1;
Clk = 1;
return dat;
}

void init() //定时器初始化函数
{
TMOD=0x01; //定时器工作方式
  TL0=0xb0;
  TH0=0x3c; //赋初值50ms
  EA=1; //打开中断总开关
ET0=1; //打开定时器0中断允许开关
  TR0=1; //打开定时器0定时开关
}

void AlcoholCalibration(void)     //酒精初始化校准函数
{
sum = 0;
for(m=0;m<50;m++) //读50次AD值
{
sum = adc0832(0)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-04-12 19:12  1-源程序\
     文件        1303  2014-03-04 13:08  1-源程序\display.bak
     文件        1338  2019-10-11 19:21  1-源程序\display.h
     文件        3057  2013-12-07 15:42  1-源程序\eeprom52.h
     文件        5892  2019-10-11 19:59  1-源程序\yanwu
     文件       13351  2019-10-11 19:59  1-源程序\yanwu.LST
     文件       25418  2019-10-11 19:59  1-源程序\yanwu.M51
     文件        8697  2019-10-11 19:59  1-源程序\yanwu.OBJ
     文件        2087  2014-03-06 18:11  1-源程序\yanwu.Uv2.bak
     文件        2683  2014-03-04 13:37  1-源程序\yanwu.bak
     文件         970  2019-10-11 19:59  1-源程序\yanwu.build_log.htm
     文件        6959  2019-10-11 19:59  1-源程序\yanwu.c
     文件        3827  2019-10-11 19:59  1-源程序\yanwu.hex
     文件          27  2019-10-11 19:59  1-源程序\yanwu.lnp
     文件         995  2014-04-19 09:02  1-源程序\yanwu.opt.bak
     文件         173  2017-10-28 13:54  1-源程序\yanwu.plg
     文件      139936  2019-11-24 22:15  1-源程序\yanwu.uvgui.11734
     文件        5562  2019-07-16 22:17  1-源程序\yanwu.uvopt
     文件       13722  2019-07-16 22:17  1-源程序\yanwu.uvproj
     文件        1004  2014-03-06 18:11  1-源程序\yanwu_Opt.Bak
     文件        1649  2014-03-04 13:16  1-源程序\yanwu_Uv2.Bak
     文件       59131  2017-05-20 01:35  1-源程序\yanwu_uvopt.bak

评论

共有 条评论