附录A 硬件设计原理图与PCB图
附录B软件程序清单
//ds1302 shuju shuru wei 0 //数据输出 最后一位为0 //上升沿和下降沿的制造
//写数据,数据输入是从低位开始 0位 //读数据从高位开始
#include
#include\#include\
#include\
sbit fm=P1^3; sbit jd=P1^2; sbit de=P1^1;
unsigned char tt[]=%unsigned char t[]=\
unsigned char fw[]=\ -> 00:30%unsigned char sj=70;
unsigned char dfen,dmiao=30;
unsigned char aj=0; //按键返回值 unsigned char gb=0; //显示光标
void main() {
bit bz=0; float ttt; char we[6]; unsigned int i; int te;
delayms(1);
chushishizhong(); //初始时钟 chushishijian(); //初始时间
//writetime();
kaishi:
writecom(0x01); while(1) { readtime(); //读取时间 t[0]=shijian[4]/10+0x30; //时间数据处理 t[1]=shijian[4]+0x30; t[3]=shijian[5]/10+0x30; t[4]=shijian[5]+0x30; t[6]=shijian[6]/10+0x30; t[7]=shijian[6]+0x30; tt[2]=shijian[1]/10+0x30; tt[3]=shijian[1]+0x30; tt[5]=shijian[2]/10+0x30; tt[6]=shijian[2]+0x30; tt[8]=shijian[3]/10+0x30; tt[9]=shijian[3]+0x30; writestr(0,0,tt); //显示时间 处理 writestr(0,10,\ writestr(1,0,t); writestr(1,10,\ aj=keyscan(); //检测按键函数
/**********************按键2 按下表示进入加热控制模式*******************************/ if(aj==2) { fm=0; // 0 表示闭合继电器 闭合 de=0; delayms(100); fm=1; jd=0; //打开自动烧水 writecom(0x01); //清除屏幕 while(1) { if(i==500) { i=0; //温度读取函数 以及 温度的处理 te=duwendu(); ttt=(float)te*0.0625; sprintf(we,\
writestr(0,0,\ //显示 温度值 writestr(0,5,we); writestr(1,0,fw); } i++; aj=keyscan();
//检测按键
if(aj==2)
{ de=1; //熄灭led灯 jd=1;//断开继电器 fm=0; delayms(100); //蜂鸣器响一声 fm=1; writecom(0x01);
}
break; //用于 退出当前的模式
if(aj==3) //调节设定的温度值 { fm=0; delayms(100); fm=1; jd=1; de=1; delayms(20); writecom(0x0f); writecom(0xc0+12); //光标显示位子 while(1) { aj=keyscan(); if(aj==3) { writecom(0x0c); delayms(20); writecom(0x01); fm=0; delayms(100); fm=1;
jd=0; de=0;