• 大小: 183KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-09-01
  • 语言: 其他
  • 标签:

资源简介

基于单片机的甲烷监测系统。这是protues软件仿真资料。

资源截图

代码片段和文件信息

#include 
/*-----------------*/
#define Up_level 256*0.7 //设置报警上限是70%的浓度
/*-----------------*/
sbit ADC_ALE = P3^5; //AD采集控制引脚
sbit ADC_STR = P3^4;
sbit ADC_EOC = P3^3;
sbit ADC_OE  = P3^2;
#define ADC_DAT P1
/*-----------------*/
sbit LED1 = P2^7; //数码管控制引脚
sbit LED2 = P2^6;
sbit LED3 = P2^4;
sbit LED4 = P2^3;
#define DPY P0
/*-----------------*/
sbit LED_R = P2^1; //指示灯引脚
sbit LED_G = P2^0;
/*-----------------*/
void delay(unsigned int a)
{ //延时函数 1MS/次
unsigned char data i;
while( --a != 0)
for(i = 0; i < 125; i++);   //i 从0加到125,CPU大概就耗时1毫秒
}
unsigned char ADC_convert(void)
{ //对固定通道7进行采集
unsigned char data shuju;
ADC_ALE=1; //锁存地址
ADC_STR=1; //启动转换
ADC_ALE=0; //
ADC_STR=0; //
delay(5); //延时
while(!ADC_EOC); //等待转换结束
ADC_OE=1; //打开输出使能
shuju=ADC_DAT; //读转换数据
ADC_OE=0; //关闭输出使能
return shuju; //返回结果
}
void display(unsigned char ptr[])
{
static unsigned char data i;
unsigned char code hang[4]={0x800x400x200x10};
//显示数值的字码
unsigned char code duan[10]={0x5F0x440x9D0xD50xC60xD30xDB0x450xDF0xD7};
P0=0; //关显示
P2=P2 & 0x27; //关闭当前行
if(i<3) //i在0-3循环计数
i=i+1;
else
i=0;
P2=P2 | hang[i]; //切换到要显示的位
if (i==2)
P0=duan[ptr[i]] | 0x20; //送显示数据 加小数点
else
P0=duan[ptr[i]]; //送显示数据
}
void main(void)
{
unsigned char data ad_shuju;
unsigned char data baifenshu[4]; //保存显示百分比的数组
unsigned char data cnt; //显示的计扫描数器
unsigned int data tmp; //计算百分比的临时变量
P0=0x00; //关闭显示
//端口初始化
P2=0xff;
P3=0xff;
ADC_ALE=0; //
ADC_STR=0; //
ADC_OE=0; //
while(1)
{
for(cnt=0;cnt<12;cnt++) //扫描显示12次,读一次AD
{
display(&baifenshu);
delay(5);
}
ad_shuju=ADC_convert(); //读AD数据
tmp=((unsigned int)ad_shuju)*200/51;//计算 放大到0-1000,注意化简,不然会计算溢出得不到正确结果 //ad_shuju*1000/255;
baifenshu[0]=tmp/1000%10; //取百分比百位
baifenshu[1]=tmp/100%10; //取百分比十位
baifenshu[2]=tmp/10%10; //取百分比个位(带小数点)
baifenshu[3]=tmp%10; //取百分比十分位
if (ad_shuju > Up_level) //浓度很高,超过上限
{
LED_R=0; //红灯亮
LED_G=1;
}
else //低,低于下限
{
LED_R=1; //绿灯亮
LED_G=0;
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      52224  2010-05-20 18:00  甲烷检测\AD采集.vsd

     文件      10752  2010-05-20 17:41  甲烷检测\Backup of Sheet1.XLS

     文件     241664  2010-05-21 21:42  甲烷检测\jiawan.ddb

     文件      34816  2007-12-24 10:10  甲烷检测\QM-N5.doc

     文件      35127  2010-05-20 16:09  甲烷检测\QM-N5.jpg

     文件      51200  2010-05-20 17:54  甲烷检测\主程序.vsd

     文件      52224  2010-05-20 18:09  甲烷检测\数码显示.vsd

     文件     143493  2010-05-20 16:46  甲烷检测\软件及仿真\Last Loaded 仿真.DBK

     文件       5115  2002-04-16 14:32  甲烷检测\软件及仿真\STARTUP.A51

     文件      11665  2010-05-20 16:42  甲烷检测\软件及仿真\STARTUP.LST

     文件        749  2010-05-20 16:42  甲烷检测\软件及仿真\STARTUP.OBJ

     文件       5786  2010-05-20 16:42  甲烷检测\软件及仿真\test

     文件       1957  2010-05-20 16:42  甲烷检测\软件及仿真\test.hex

     文件         56  2010-05-20 16:42  甲烷检测\软件及仿真\test.lnp

     文件       9322  2010-05-20 16:42  甲烷检测\软件及仿真\test.M51

     文件       1523  2010-05-21 13:20  甲烷检测\软件及仿真\test.Opt

     文件        192  2010-05-21 13:20  甲烷检测\软件及仿真\test.plg

     文件       2037  2010-05-21 13:20  甲烷检测\软件及仿真\test.Uv2

    .......      1523  2010-05-20 18:15  甲烷检测\软件及仿真\test_Opt.Bak

    .......      2144  2010-05-20 18:15  甲烷检测\软件及仿真\test_Uv2.Bak

     文件     143493  2010-05-20 18:15  甲烷检测\软件及仿真\仿真.DSN

     文件        742  2010-05-21 13:19  甲烷检测\软件及仿真\仿真.PWI

     文件       2495  2010-05-20 18:15  甲烷检测\软件及仿真\甲烷.c

     文件       6427  2010-05-20 16:42  甲烷检测\软件及仿真\甲烷.LST

     文件       5231  2010-05-20 16:42  甲烷检测\软件及仿真\甲烷.OBJ

     目录          0  2010-05-21 13:20  甲烷检测\软件及仿真

     目录          0  2010-05-21 21:43  甲烷检测

----------- ---------  ---------- -----  ----

               821957                    27



............此处省略0个文件信息

评论

共有 条评论

相关资源