找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7669|回复: 13
打印 上一主题 下一主题
收起左侧

基于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, 下载次数: 486)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:833323 发表于 2020-11-9 16:25 来自手机 | 只看该作者
如果是用汉字显示要如何编写呢
回复

使用道具 举报

板凳
ID:841129 发表于 2020-11-9 18:01 | 只看该作者
太好了,解决了我的问题!!!!!!
回复

使用道具 举报

地板
ID:830316 发表于 2020-11-9 22:08 | 只看该作者
要购买带中文字库的1602以及相应的中文取模软件
回复

使用道具 举报

5#
ID:787274 发表于 2020-11-18 16:19 | 只看该作者
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?
回复

使用道具 举报

6#
ID:328014 发表于 2020-11-18 16:27 | 只看该作者
呆呆啊啊啊 发表于 2020-11-18 16:19
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?

pretues7.8不行的,.pdsprj文件要8.8版本可以成功打开
回复

使用道具 举报

7#
ID:830316 发表于 2020-11-19 23:36 | 只看该作者
呆呆啊啊啊 发表于 2020-11-18 16:19
我用pretues7.8好像打不开,新手不知道怎么回事,有解答的吗?

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

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

8#
ID:886143 发表于 2021-3-2 17:15 | 只看该作者
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?
回复

使用道具 举报

9#
ID:830316 发表于 2021-3-15 00:29 | 只看该作者
cfgvbjk 发表于 2021-3-2 17:15
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?

不太清楚,应该不可以
回复

使用道具 举报

10#
ID:886143 发表于 2021-3-15 18:06 | 只看该作者
Unique。 发表于 2020-11-9 16:25
如果是用汉字显示要如何编写呢

还就换个LCD吧,可以用LCD12864
回复

使用道具 举报

11#
ID:336823 发表于 2021-4-8 09:30 | 只看该作者
请问有ADC0832的补丁吗,仿真时报错显示找不到这个模型
回复

使用道具 举报

12#
ID:911990 发表于 2021-5-15 23:04 来自手机 | 只看该作者
cfgvbjk 发表于 2021-3-2 17:15
请问,一个ADC0832可以连接两个传感器吗,一个压力传感器检测超载,一个烟雾传感器?

可以的
回复

使用道具 举报

13#
ID:440028 发表于 2022-1-12 08:46 | 只看该作者
下载后有能正常工作的吗?我用的是8.9版本
回复

使用道具 举报

14#
ID:1007525 发表于 2022-4-22 10:50 | 只看该作者
有没有人做成实物验证,我想做一个出来看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表