资源简介

1.采用单片机作为控制器,用户通过键盘输入设定水温,LCD显示器显示当前温度与设定温度;2.采用温度传感器检测出水温度,当温度与设定温度不符时,由单片机输出控制步进电动机,带动混水阀转动,调节混水阀,直至水温达到要求;3.设置温度保护区间,当设置温度高于46℃或低于35℃,LCD显示“温度过高”或“温度过低”,保护用户安全;

资源截图

代码片段和文件信息

#include 
#include 
#define key_port  P0  //键盘接口定义
//--------------------------stepper motor----------------
sbit pulse = P2^1;                    
sbit dir   = P2^2;

//-----------------------------------------STC  EEPROM------------------------------------------------------------------------
//--------------------------------------------------------------
void EEPROM_Byte_Program(unsigned char strunsigned char address_hunsigned char address_l);
void EEPROM_Sector_Program(unsigned char address_hunsigned char address_l);
unsigned char  EEPROM_Byte_Read(unsigned char address_hunsigned char address_l);

sfr ISP_DATA=0xe2;//ISP/IAP操作寄存器-----------------------------------------
sfr ISP_ADDRH=0xe3;//ISP/IAP操作地址寄存器高位-----------------------------------------
sfr ISP_ADDRL=0xe4;//ISP/IAP操作地址寄存器低位-----------------------------------------
sfr ISP_CMD=0xe5;//ISP/IAP操作命令寄存器-----------------------------------------
sfr ISP_TRIG=0xe6;//ISP/IAP操作命令触发寄存器-----------------------------------------
sfr ISP_CONTRL=0xe7;//ISP/IAP操作控制寄存器-----------------------------------------
     //       |bit7 |bit6 |bit5 |bit4 |bit3  |bit2 |bit1 |bit0 |  
     //       |ISPEN |SWBS   |SWRST |-*- |-*-  |WT2- |WT1- |WT0-   | 
#define ISP_BYTE_READ  1      //字节读
#define ISP_BYTE_PROGRAM 2   //字节写
#define ISP_SECTOR_ERASE 3   //扇区擦除
#define WAIT_TIME_40  0   //等待时间 40MHz以下是0;20MHz以下是1;10MHz以下是2;5MHz以下是3
#define WAIT_TIME_20  1   //等待时间 40MHz以下是0;20MHz以下是1;10MHz以下是2;5MHz以下是3
#define WAIT_TIME_10  2   //等待时间 40MHz以下是0;20MHz以下是1;10MHz以下是2;5MHz以下是3
#define WAIT_TIME_5   3   //等待时间 40MHz以下是0;20MHz以下是1;10MHz以下是2;5MHz以下是3
#define ISPEN    0X80
#define SWBS    0X40
#define SWRST    0X20
/*************************************************************************
  ** 函数名称: void EEPROM_Byte_Program(unsigned char strunsigned char address_hunsigned char address_l)
  ** 功能描述: EEPROM 字节写,如果写入地址的数据不是空(0xff),需要先经行扇区擦除
  ** 输 入:   str 输入数据,address_h 写入地址高位,address_l 写入数据低位 
  ** 输出  :  无
  ** 全局变量: 无
  ** 调用模块: 
  ** 说明:
  ** 注意:    如果写入地址数据不为空(0xff),需要先经行扇区擦除
**************************************************************************/
void EEPROM_Byte_Program(unsigned char strunsigned char address_hunsigned char address_l)
{
 ISP_DATA=str;    //送入写入数据
 ISP_ADDRH=address_h; //送入写入地址高位 
 ISP_ADDRL=address_l; //送入写入地址低位
 EA=0;     //希望在写入EEPROM过程中不允许外部中断
 ISP_CONTRL=(WAIT_TIME_40|ISPEN);//使能ISP,同时设置等待时间
 ISP_CMD=ISP_BYTE_PROGRAM;    //写入字节写命令
 ISP_TRIG=0X46;     //先写0X46 然后写0xb9到ISP触发寄存器
 ISP_TRIG=0XB9;
 _nop_();
 ISP_CONTRL=0X00;    //禁止ISP操作
 ISP_CMD =0X00;     //去除ISP命令
 ISP_TRIG=0X00;     //防止ISP命令误触发
 ISP_ADDRH=0X00;     //让地址指向非EEPROM区,防止意外
 ISP_ADDRL=0X00;
 EA=1;       //使能全局中断
}
/*************************************************************************
  ** 函数名称: void EEPROM_Sector_Program(unsigned char address_hunsigned char address_l)
  ** 功能描述: EEPROM 扇区擦除,如果写入地址的数据不是空(0xff),需要先经行扇区擦除
  ** 输 入:   address

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34424  2011-04-17 15:31  混水阀成品code\main.c

     文件      56157  2011-04-17 15:31  混水阀成品code\main.LST

     文件      40201  2011-04-17 15:31  混水阀成品code\main.OBJ

     文件      34227  2011-04-17 15:31  混水阀成品code\watermixingvalve

     文件      10001  2011-04-17 15:31  混水阀成品code\watermixingvalve.hex

     文件         52  2011-04-17 15:31  混水阀成品code\watermixingvalve.lnp

     文件      45607  2011-04-17 15:31  混水阀成品code\watermixingvalve.M51

     文件       1030  2011-04-17 11:58  混水阀成品code\watermixingvalve.Opt

     文件       5955  2011-04-17 15:31  混水阀成品code\watermixingvalve.plg

     文件       2156  2011-04-13 16:45  混水阀成品code\watermixingvalve.Uv2

     文件       1022  2011-04-17 11:41  混水阀成品code\watermixingvalve_Opt.Bak

     文件       2152  2011-04-10 14:40  混水阀成品code\watermixingvalve_Uv2.Bak

     目录          0  2011-06-01 00:12  混水阀成品code

----------- ---------  ---------- -----  ----

               232984                    13


评论

共有 条评论