资源简介
基于单片机的室内空气净化系统。#include
#include "XPT2046.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rs=P2^6; // 数据命令选择
sbit rw=P2^5; //读写选择
sbit e=P2^7; //使能
sbit k1=P3^3; //模式
sbit k2=P2^1; //加
sbit k3=P2^2; //减
sbit moto=P3^6;
sbit beep=P3^7;
uint8 mode=0;
char temph=20;
uint8 temp,flag;
uint8 code num[10]="0123456789";
uint8 code str1[]="GAS:";
uint8 code str2[]="SET:";
void delay(uint16 i)
{
while(i--);
}
void wrc(uint8 c) //写命令
{
delay(1000);
rs=0;
rw=0;
e=0;
P0=c;
e=1;
delay(10);
e=0;
}
void wrd(uint8 dat) //写数据
{
delay(1000);
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
delay(10);
e=0;
rs=0;
}
void lcd_init() // LCD1602初始化
{
delay(1000);
wrc(0x38);
wrc(0x38); //功能设置命令,选择8位总线,双行显示 5*7点阵字符
wrc(0x38);
wrc(0x06); //光标和显示模式设置 光标右移 整屏不移动
wrc(0x0c); //显示开关控制 开显示 无光标 光标不闪烁
wrc(0x01); //清零指令 固定的
}
void key_pros() //按键处理函数
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
mode++;
flag=0;
if(mode==2)
{
mode=0;
flag=1;
}
}
while(!k1);
}
if(mode==1) //对空气检测报警值设定
{
if(k2==0) //加
{
delay(1000);
if(k2==0)
{
temph+=1;
if(temph>=100)temph=100;
}
while(!k2);
}
if(k3==0) //减
{
delay(1000);
if(k3==0)
{
temph-=1;
if(temph<=0)temph=0;
}
while(!k3);
}
}
}
void lcd_init_display() //LCD初始化显示
{
uint8 i;
for(i=0;i<4;i++)
{
wrc(0x80+i);
wrd(str1[i]);
}
for(i=0;i<4;i++)
{
wrc(0xc0+i);
wrd(str2[i]);
}
}
void data_pros() //数据处理函数
{
uint8 tempbuf[3],temp_buf[3],i;
tempbuf[0]=temp/100+0x30;
tempbuf[1]=temp0/10+0x30;
tempbuf[2]=temp0+0x30;
temp_buf[0]=temph/100+0x30;
temp_buf[1]=temph0/10+0x30;
temp_buf[2]=temph0+0x30;
for(i=0;i<3;i++)
{
wrc(0x84+i);
wrd(tempbuf[i]);
}
for(i=0;i=temph&&flag;==1)
{
moto=0;
sound();
}
代码片段和文件信息
#include
#include “XPT2046.h“
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rs=P2^6; // 数据命令选择
sbit rw=P2^5; //读写选择
sbit e=P2^7; //使能
sbit k1=P3^3; //模式
sbit k2=P2^1; //加
sbit k3=P2^2; //减
sbit moto=P3^6;
sbit beep=P3^7;
uint8 mode=0;
char temph=20;
uint8 tempflag;
uint8 code num[10]=“0123456789“;
uint8 code str1[]=“GAS:“;
uint8 code str2[]=“SET:“;
void delay(uint16 i)
{
while(i--);
}
void wrc(uint8 c) //写命令
{
delay(1000);
rs=0;
rw=0;
e=0;
P0=c;
e=1;
delay(10);
e=0;
}
void wrd(uint8 dat) //写数据
{
delay(1000);
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
delay(10);
e=0;
rs=0;
}
void lcd_init() // LCD1602初始化
{
delay(1000);
wrc(0x38);
wrc(0x38); //功能设置命令,选择8位总线,双行显示 5*7点阵字符
wrc(0x38);
wrc(0x06); //光标和显示模式设置 光标右移 整屏不移动
wrc(0x0c); //显示开关控制 开显示 无光标 光标不闪烁
wrc(0x01); //清零指令 固定的
}
void key_pros() //按键处理函数
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
mode++;
flag=0;
if(mode==2)
{
mode=0;
flag=1;
}
}
while(!k1);
}
if(mode==1) //对空气检测报警值设定
{
if(k2==0) //加
{
delay(1000);
if(k2==0)
{
temph+=1;
if(temph>=100)temph=100;
}
while(!k2);
}
if(k3==0) //减
{
delay(1000);
if(k3==0)
{
temph-=1;
if(temph<=0)temph=0;
}
while(!k3);
}
}
}
void lcd_init_display() //LCD初始化显示
{
uint8 i;
for(i=0;i<4;i++)
{
wrc(0x80+i);
wrd(str1[i]);
}
for(i=0;i<4;i++)
{
wrc(0xc0+i);
wrd(str2[i]);
}
}
void data_pros() //数据处理函数
{
uint8 tempbuf[3]temp_buf[3]i;
tempbuf[0]=temp/100+0x30;
tempbuf[1]=temp%100/10+0x30;
tempbuf[2]=temp%100%10+0x30;
temp_buf[0]=temph/100+0x30;
temp_buf[1]=temph%100/10+0x30;
temp_buf[2]=temph%100%10+0x30;
for(i=0;i<3;i++)
{
wrc(0x84+i);
wrd(tempbuf[i]);
}
for(i=0;i<3;i++)
{
wrc(0xc4+i);
wrd(temp_buf[i]);
}
}
void sound()
{
uint8 i=100;
while(i--)
{
beep=~beep;
delay(100);
}
}
void baojinpros() //报警处理
{
if(temp>=temph&&flag==1)
{
moto=0;
sound();
}
else
{
moto=1;
beep=1;
}
}
void main()
{
moto=1;
beep=1;
lcd_init();
lcd_init_display(); //LCD初始化显示
while(1)
{
key_pros();
data_pros();
baojinpros();
temp = Read_AD_Data(0x94)/40;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-22 12:15 基于单片机的室内空气净化系统\
文件 54788 2016-10-11 09:00 基于单片机的室内空气净化系统\原理图截图.png
文件 253 2016-10-11 09:00 基于单片机的室内空气净化系统\必看.txt
目录 0 2018-11-22 12:15 基于单片机的室内空气净化系统\程序设计\
文件 11831 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\1
文件 2533 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\1.c
文件 2627 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\1.hex
文件 230 2018-06-08 22:24 基于单片机的室内空气净化系统\程序设计\1.plg
文件 56854 2018-06-08 22:24 基于单片机的室内空气净化系统\程序设计\1.uvopt
文件 13384 2018-06-08 22:24 基于单片机的室内空气净化系统\程序设计\1.uvproj
文件 7062 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\1_uvopt.bak
文件 13414 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\1_uvproj.bak
文件 1745 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\XPT2046.c
文件 542 2016-10-11 09:00 基于单片机的室内空气净化系统\程序设计\XPT2046.h
目录 0 2018-11-22 12:15 基于单片机的室内空气净化系统\芯片资料和清单\
文件 352446 2016-10-11 09:00 基于单片机的室内空气净化系统\芯片资料和清单\LCD1602液晶完整中文资料.pdf
文件 4849748 2016-10-11 09:00 基于单片机的室内空气净化系统\芯片资料和清单\STC90C51 52RC-RD _GUIDE-CHINESE.pdf
文件 1326108 2016-10-11 09:00 基于单片机的室内空气净化系统\芯片资料和清单\xpt2046中文.pdf
文件 10336 2016-10-11 09:00 基于单片机的室内空气净化系统\芯片资料和清单\元件清单
相关资源
- C程序设计语言 第二版新 PDf (绝对超
- 基于STM32单片机的空气净化器毕业设计
- 基于Linux的设备分配及磁盘调度
- 基于Linux系统的航班信息与订票系统
- C安全编码标准中文版
- 动态称重,四节称 源码,
- C程序设计第四版.谭浩强(带详细书签
- [BUPT]计算导论OJ上机题参考源代码 +
- STM32F103+四个VL53L0代码2020新.zip
- 高级语言程序设计.迟成文
- C程序设计语言第2版·新版习题解答
- 固高控制例程
- OpenGL编程指南原书第9版高清完整版
- STM32与ZigBee串口通信LCD显示程序
- stm32智能安防系统
- 华为公司各种设计规范
- 深入理解C指针(带书签完整版)
- OPENCV中团块跟踪
- 用51单片机与LCD12864实现俄罗斯方块游
- C程序设计语言(第2版 新版) 带书签
- 基于arm的开发
- STM32F103C8T6开发参考例程代码
- Linux设备驱动开发详解:基于最新的
- cmake-3.16.2-win32-x86.msi
- 深入理解计算机系统上交大课程材料
- IMXRT1064RM.pdf
- 《学习OpenCV(中文版)》-于仕琪
- 图解数据结构 使用C
- C指针基本概念核心技术及最佳实践
- STM32F407中文手册(完全版) 高清完整
评论
共有 条评论