标题: 基于51单片机的1602+ADC0832烟雾报警系统Proteus仿真程序设计 [打印本页]

作者: 电子电子小宅神    时间: 2020-10-17 10:42
标题: 基于51单片机的1602+ADC0832烟雾报警系统Proteus仿真程序设计
本设计基于51单片机,共有ADC0832数模转换模块,1602液晶显示模块,按键控制与声光报警模块4大模块组成!可实现对烟雾浓度的实时监测与反应

之后是仿真目录

下面是部分代码,想要了解,可以下载文末完整附件!
//基于1602+ADC0832的烟雾/温度报警系统
//作者:科技小宅神
//创作时间:2020/09/20
//版权:科技小宅神原创!抄袭必究,仅供参考学习!
#include <reg51.h>//包含51单片机寄存器的头文件
#include <1602.h>//调用1602.h文件
#include <intrins.h>//包含_nop_函数定义的头文件
#define uchar unsigned char
#define uint unsigned int

//ADC0832引脚定义
sbit CS = P1^0;//片选使能位,定义为P1^0引脚
sbit CLK = P1^1;//时钟脉冲输入位,定义为P1^1引脚
sbit DIO = P1^2;//数据信号输入/输出,并联使用。定义为P1^2引脚
//有害气体含量变量
uchar temp;        //用于读取ADC数据
uchar yushe_yanwu= 255;  //烟雾预设值
//按钮模式
uchar mode=0;
//管脚声明
sbit led_yanwu= P2^3;   //烟雾报警灯
sbit baojing= P2^4;    //蜂鸣器接口
//按键
sbit key1=P2^5;     //设置键
sbit key2=P2^6;     //加按键
sbit key3=P2^7;     //减按键

//1毫秒延时程序(不精确)
void delayms(uint ms)
{
uchar t;
while(ms--)
{
  for(t=0;t<120;t++);
}
}
//ADC0832函数
uchar AD()
{
uchar i,dat1 = 0,dat2 = 0;
//第一个周期:转换开始
CS = 0;
CLK = 0;
DIO = 1;
_nop_(); _nop_();//短暂定时2us——也可以写成delay2us();,那么程序就要有delay2us();的定义了。
CLK = 1; _nop_(); _nop_();


//第二个周期:选择选择单通道还是双通道  DIO=0双通道差分 或 DIO=1单通道
CLK = 0; DIO=1; _nop_();_nop_();
CLK = 1;        _nop_();_nop_();

//第三个周期:DIO选择CH1-->如果DIO=0 选择CH0
CLK = 0;DIO = 0; _nop_();_nop_();
CLK = 1;DIO = 1; _nop_();_nop_();

//等待
CLK = 0; DIO = 1; _nop_();_nop_();

//4-11,共8个下降沿读取数据(MSB->LSB) 先进来的为最高位,后进来为最低位
for(i=0;i<8;i++)
{
  CLK = 1;  _nop_();_nop_();
  CLK = 0;  _nop_();_nop_();
  dat1 = dat1<<1|DIO;
}
//11-18 共8个下降沿读取数据(LSB->MSB) 先进来的为最低位,后进来为最高位
for(i=0;i<8;i++)
{
  dat2 = dat2|((uchar)(DIO)<<i);
  CLK = 1;  _nop_();_nop_();
  CLK = 0;  _nop_();_nop_();
}

//禁止片选
CS = 1;
//如果MSB->LSB和LSB->MSB读取数据结果相同,返回读取结果,否者0
return (dat1==dat2) ? dat1 : 0 ;
}

下面是文件夹里的总目录

全部资料51hei下载地址:
基于1602+ADC0832的烟雾报警系统.zip (121.56 KB, 下载次数: 497)


作者: Unique。    时间: 2020-11-9 16:25
如果是用汉字显示要如何编写呢
作者: ccxniubi    时间: 2020-11-9 18:01
太好了,解决了我的问题!!!!!!
作者: 电子电子小宅神    时间: 2020-11-9 22:08
要购买带中文字库的1602以及相应的中文取模软件
作者: 呆呆啊啊啊    时间: 2020-11-18 16:19
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?
作者: 51hei团团    时间: 2020-11-18 16:27
呆呆啊啊啊 发表于 2020-11-18 16:19
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?

pretues7.8不行的,.pdsprj文件要8.8版本可以成功打开
作者: 电子电子小宅神    时间: 2020-11-19 23:36
呆呆啊啊啊 发表于 2020-11-18 16:19
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?

我这是8.6的,建议升级一下

作者: cfgvbjk    时间: 2021-3-2 17:15
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?
作者: 电子电子小宅神    时间: 2021-3-15 00:29
cfgvbjk 发表于 2021-3-2 17:15
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?

不太清楚,应该不可以
作者: cfgvbjk    时间: 2021-3-15 18:06
Unique。 发表于 2020-11-9 16:25
如果是用汉字显示要如何编写呢

还就换个LCD吧,可以用LCD12864

作者: 幻夜行    时间: 2021-4-8 09:30
请问有ADC0832的补丁吗,仿真时报错显示找不到这个模型
作者: Zhzhzhzh    时间: 2021-5-15 23:04
cfgvbjk 发表于 2021-3-2 17:15
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?

可以的
作者: liuyiyi    时间: 2022-1-12 08:46
下载后有能正常工作的吗?我用的是8.9版本
作者: blueleafsky    时间: 2022-4-22 10:50
有没有人做成实物验证,我想做一个出来看看




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1