基于51单片机的电热水器控制系统的设计_毕业设计论文 下载本文

附录A 硬件设计原理图与PCB图

附录B软件程序清单

//ds1302 shuju shuru wei 0 //数据输出 最后一位为0 //上升沿和下降沿的制造

//写数据,数据输入是从低位开始 0位 //读数据从高位开始

#include #include #include\#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;