///////////////////////////////////////////////////////CONFIG.H引脚配置文件:///////////////////////////////////////////////////////#ifndef_CONFIG_H#define_CONFIG_H/*通用头文件*/#include#include/*数据类型定义*//*typedefsignedcharint8;//8位有符号整型数typedefsignedintint16;//16位有符号整型数typedefsignedlongint32;//32位有符号整型数*/typedefunsignedcharu8;//8位无符号整型数typedefunsignedintu16;//16位无符号整型数typedefunsignedlongu32;//32位无符号整型数/*全局运行参数定义*/#defineSYS_MCLK(11059200/12)//系统主时钟频率,即振荡器频率÷12/*IO引脚分配定义*/sbitKEY_IN_1=P2^4;//矩阵按键的扫描输入引脚1sbitKEY_IN_2=P2^5;//矩阵按键的扫描输入引脚2sbitKEY_IN_3=P2^6;//矩阵按键的扫描输入引脚3sbitKEY_IN_4=P2^7;//矩阵按键的扫描输入引脚4sbitKEY_OUT_1=P2^3;//矩阵按键的扫描输出引脚1sbitKEY_OUT_2=P2^2;//矩阵按键的扫描输出引脚2sbitKEY_OUT_3=P2^1;//矩阵按键的扫描输出引脚3sbitKEY_OUT_4=P2^0;//矩阵按键的扫描输出引脚4sbitADDR0=P1^0;//LED位选译码地址引脚0sbitADDR1=P1^1;//LED位选译码地址引脚1sbitADDR2=P1^2;//LED位选译码地址引脚2sbitADDR3=P1^3;//LED位选译码地址引脚3sbitENLED=P1^4;//LED显示部件的总使能引脚#defineLCD12864_DBP0//1602液晶数据端口sbitLCD12864_RES=P1^0;//1602液晶指令/数据选择引脚sbitLCD12864_RW=P1^1;//1602液晶读写引脚sbitLCD12864_EN=P1^5;//1602液晶使能引脚sbitDS1302_CE=P1^7;//DS1302片选引脚sbitDS1302_CK=P3^5;//DS1302通信时钟引脚sbitDS1302_IO=P3^4;//DS1302通信数据引脚sbitI2C_SCL=P3^7;//I2C总线时钟引脚sbitI2C_SDA=P3^6;//I2C总线数据引脚sbitBUZZER=P1^6;//蜂鸣器控制引脚sbitIO_18B20=P3^2;//DS18B20通信引脚sbitIR_INPUT=P3^3;//红外接收引脚#include"LCD12864.H"#include"TIME.H"#include"DHT21.h"#endif//////////////////////////////////////////////////////////////LCD12864.C源码/////////////////////////////////////////////////////////////#include"config.h"u8zhbuf[]={"预览"};//中文数组u8ehbuf[]={"yulan"};//英文字符数组u8codeimbuf[]={//图片码128*64宽16,高320x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*写等待*/voidWrite_Ready(){u8sta=0;LCD12864_RES=0;LCD12864_RW=1;do{LCD12864_EN=1;sta=P0;LCD12864_EN=0;}while(sta&0x80);}/*读RAM中数据*/u8Read_12864_RAM(){u8ram=0;LCD12864_RES=1;LCD12864_RW=1;LCD12864_EN=1;ram=P0;LCD12864_EN=0;returnram;}/*写指令*/voidWrite_12864_Cmd(u8cmd){Write_Ready();LCD12864_RES=0;LCD12864_RW=0;P0=cmd;LCD12864_EN=1;LCD12864_EN=0;}/*写数据*/voidWrite_12864_Dat(u8dat){Write_Ready();LCD12864_RES=1;LCD12864_RW=0;P0=dat;LCD12864_EN=1;LCD12864_EN=0;}/*设置起始坐标*/voidSet_DDRAM_XY(u8x,u8y){if(x>=7)x=7;if(y>=3)y=3;switch(y){case0:Write_12864_Cmd(0x80+x);break;case1:Write_12864_Cmd(0x90+x);break;case2:Write_12864_Cmd(0x88+x);break;case3:Write_12864_Cmd(0x98+x);break;default:break;}}/*显示连续的2个字符*/voidShow_Double_12864_Char(u8x,u8y,u8*c){Set_DDRAM_XY(x,y);Write_12864_Dat(*c);Write_12864_Dat(*(c+1));}/*显示单个字符*/voidShow_Single_12864_Char(u8x,u8y,u8*c){Set_DDRAM_XY(x,y);Write_12864_Dat(*c);}/*显示中文字符串*/voidShow_12864_ZH(u8x,u8y,u8*zh){u8*p=zh;Set_DDRAM_XY(x,y);while((*p)!='\0'){Write_12864_Dat(*p++);}}/*显示一串数值*//*u8dec小数位为0不显示小数*/voidShow_12864_NUM(u8x,u8y,u8dec,u16num){u8i;u8numbuf[6];for(i=0;num;i++){numbuf[i]=num%10+'0';num/=10;}Set_DDRAM_XY(x,y);for(;i;i--){if(i==dec){Write_12864_Dat(0X2E);//显示小数点}Write_12864_Dat(*(numbuf+(i-1)));//显示数值}}/*显示英文字符串*/voidShow_12864_EH(u8x,u8y,u8*eh){u8*p=eh;Set...