資源簡介
基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)。#include
#include "XPT2046.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rs=P2^6; // 數(shù)據(jù)命令選擇
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) //寫數(shù)據(jù)
{
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); //功能設(shè)置命令,選擇8位總線,雙行顯示 5*7點(diǎn)陣字符
wrc(0x38);
wrc(0x06); //光標(biāo)和顯示模式設(shè)置 光標(biāo)右移 整屏不移動
wrc(0x0c); //顯示開關(guān)控制 開顯示 無光標(biāo) 光標(biāo)不閃爍
wrc(0x01); //清零指令 固定的
}
void key_pros() //按鍵處理函數(shù)
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
mode++;
flag=0;
if(mode==2)
{
mode=0;
flag=1;
}
}
while(!k1);
}
if(mode==1) //對空氣檢測報(bào)警值設(shè)定
{
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() //數(shù)據(jù)處理函數(shù)
{
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; ?//?數(shù)據(jù)命令選擇
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) ??//寫數(shù)據(jù)
{
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); ?//功能設(shè)置命令,選擇8位總線,雙行顯示??5*7點(diǎn)陣字符
wrc(0x38);
wrc(0x06); //光標(biāo)和顯示模式設(shè)置??光標(biāo)右移??整屏不移動
wrc(0x0c); //顯示開關(guān)控制??開顯示??無光標(biāo)?光標(biāo)不閃爍
wrc(0x01); //清零指令??固定的
}
void?key_pros()??//按鍵處理函數(shù)
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
mode++;
flag=0;
if(mode==2)
{
mode=0;
flag=1;
}
}
while(!k1);
}
if(mode==1) ??//對空氣檢測報(bào)警值設(shè)定
{
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() //數(shù)據(jù)處理函數(shù)
{
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() //報(bào)警處理
{
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;
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-22?12:15??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\
?????文件???????54788??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\原理圖截圖.png
?????文件?????????253??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\必看.txt
?????目錄???????????0??2018-11-22?12:15??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\
?????文件???????11831??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1
?????文件????????2533??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1.c
?????文件????????2627??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1.hex
?????文件?????????230??2018-06-08?22:24??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1.plg
?????文件???????56854??2018-06-08?22:24??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1.uvopt
?????文件???????13384??2018-06-08?22:24??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1.uvproj
?????文件????????7062??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1_uvopt.bak
?????文件???????13414??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\1_uvproj.bak
?????文件????????1745??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\XPT2046.c
?????文件?????????542??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\程序設(shè)計(jì)\XPT2046.h
?????目錄???????????0??2018-11-22?12:15??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\芯片資料和清單\
?????文件??????352446??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\芯片資料和清單\LCD1602液晶完整中文資料.pdf
?????文件?????4849748??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\芯片資料和清單\STC90C51?52RC-RD?_GUIDE-CHINESE.pdf
?????文件?????1326108??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\芯片資料和清單\xpt2046中文.pdf
?????文件???????10336??2016-10-11?09:00??基于單片機(jī)的室內(nèi)空氣凈化系統(tǒng)\芯片資料和清單\元件清單
評論
共有 條評論