基于AT89C51单片机烟雾传感器

#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char           //宏定义无符号字符型
#define uint  unsigned  int           //宏定义无符号整型

sbit ST=P3^0;   //A/D启动转换信号
sbit OE=P3^1;   //数据输出允许信号
sbit EOC=P3^2;  //A/D转换结束信号
sbit CLK=P3^3;  //时钟脉冲
uint i,j,AD0809;        //定义数据类型

//延时子函数
void delay()
{
   i = 1000;
   while(i--);
}
/*************************************************************************
                                CLK振荡信号
**************************************************************************/
void timer0( ) interrupt 1 //定时器0工作方式1
{

TH0=(65536-2)/256;          //重装计数初值
TL0=(65536-2)%256;          //重装计数初值
CLK=!CLK;                          //取反
}

 /*************************************************************************
                                主函数
**************************************************************************/
 void main()
{
TMOD=0X01;                          //定时器中断0

CLK=0;                                  //脉冲信号初始值为0
TH0=(65536-2)/256;          //定时时间高八位初值
TL0=(65536-2)%256;          //定时时间低八位初值
EA=1;                                  //开CPU中断
ET0=1;                                  //开T/C0中断
TR0=1;
 while(1)                           //无限循环
       {
        ST=0;                                //使采集信号为低
        ST=1;                                //开始数据转换
        ST=0;                                //停止数据转换
        while(!EOC);                //等待数据转换完毕
        OE=1;                                //允许数据输出信号
        AD0809=P1;                    //读取数据
        OE=0;                                //关闭数据输出允许信号
        if(AD0809>=251)                //电压显示不能超过5V
    {
        AD0809=250;
       P2 = 0xE0;//报警闪烁LED灯
      delay();
      P2 =~0xE0;
      delay();
      P0 = ~0x06;//数码管报警显示1
      delay();
      P0 = ~0x00;
      delay();
    }
  }

}
时间: 2024-11-08 07:56:13

基于AT89C51单片机烟雾传感器的相关文章

[每日电路图] 1、基于AT89C52单片机最小系统接口电路【转】

:http://www.21ic.com/dianlu/ :http://www.elecfans.com/soft/49/ :http://www.wuyazi.com/ come from:http://www.21ic.com/dianlu/basis/interface/2015-04-21/621607.htm AT89C52是美国Atmel公司生产的低电压.高性能CMOS 8位单片机,片内含8KB的可反复擦写的程序存储器和256B的随机存取数据存储器(RAM),器件采用Atmel公司

基于51单片机的万年历(算法实现)

基于51单片机的万年历,用到了单片机独立键盘.数码管.LED灯模块实现. 想要简单还是DS1302好用. 1 /************************************************** 2 3 作者:纟彖氵戋 博客:http://www.cnblogs.com/yllinux/ 4 5 时间:2017年6月7日 6 7 目标:利用单片机独立键盘.数码管.LED灯模块实现万年历(算法实现) 8 9 ************************************

基于51单片机的12864驱动

/**************dis_12864.h***************/ #include <reg52.h> #ifndef __DIS_12864_H__ #define __DIS_12864_H__ #define uchar unsigned char #define uint  unsigned int /*12864端口定义*/ #define LCD_data  P0             //数据口 sbit LCD_RS  =  P1^0;          

单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准.具有走时精确,功耗低,显示直观,调整简单方便等优点. 功能描述 基本显示: 第一行为日期,依次为:年-月-日-星期 第二行为时间,依次为:时:分:秒 说明: 每月的天数,闰年的天数可自动调整 蓝牙校准日期: 命令d+年月日星期+#,如设置2016年12月8日星期四,手机发送命令:d16120804

[原创]基于51单片机的红外遥控课程设计

[注]: 一眨眼,大学接近尾声,具有找工作需要,所以把大学做的电子设计“劣作”放上来.希望考研失意,还能赶上“好工作”的春招班车.如果大伙有什么工作推荐也可以联系我哦,因为一年考研少接触了这方面,所以难免有些生疏.但请相信我!给我机会我会很认真学的! 邮箱:[email protected] 转载请注明出处呀! 基于51单片机的红外遥控课程设计 目录 第一章 设计简介... 3 第二章 系统方案... 3 一.设计方案对比... 3 二.方案设计... 4 第三章 硬件设计... 5 一.红外遥

基于51单片机的温度控制系统毕设

分享一下单片机毕设课程计参考资料33个,献给大四的朋友,毕业设计就不用愁了,如果有什么不懂的地方可以加群大家一起交流:813238832资料下载的地址:https://bbs.usoftchina.com/thread-208012-1-1.html 1.CDMA通信系统中的接入信道部分进行仿真与分析2.USB接口设计3.毕业设计(论文)OFDM通信系统基带数据4.电气工程系毕业设计开题报告5.电信运营商收入保障系统设计与实现6.基于51单片机的16×16点阵(滚动显示)7.基于51单片机的LE

基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目

一.前言 1.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目包括用Keil软件编写单片机C语言程序和用Proteus软件仿真单片机外围电路 2.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目构思 (1).声明程序变量思维导图 (2).程序子函数思维导图 (3).程序主函数思维导图 二.基于51单片机DS18B20测温LCD1602显示可设时设温调时的项目的Keil软件编写的单片机C语言程序 1 #include<reg52.h>//声明51单片机

sst15vf016bFlash芯片的驱动基于msp430F149单片机

恶心啦好几个星期啦 ,今天终于实现对flash芯片的驱动啦.心情舒服多拉. 所以在这里想记下点东西,供大家分享,被像我一样恶心这么久...废话少说,进入正题把: 首先介绍一下芯片,这是一款SPI接口的2Mbyte大小的存储芯片. 我的硬件电路连接: #hold  #wp vdd都是高电平, so si clk   用与spi CE片选 #wp接高电平,就可以随意读寄存器啦,BPL位的功能被禁止 #hold接高电平,可以随意传输数据,不会中断. 而且开机默认是全部块都保护的. 这是Flash中寄存

基于51单片机的无线测温系统

本51项目基于STC89C52MCU,温度传感器为DS18B20,显示模块用的是LCD1602,无线模块用的是Nodemcu. 项目用到的编程语言:C,C++,Lua. 实现思路是这样,DS18B20测温,然后数据串行传送给51单片机,然后51通过串口将数据传送给Nodemcu,Nodemcu通过其WIFI模块将数据发送给上位机,上位机上的程序是用Qt编写的GUI.(这里无线传输采用的是无连接的UDP协议) 1.DS18B20温度测量模块 DS18B20是单总线器件,所以时序要求非常严格,程序编