资源简介
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
- 上一篇:QT实现抗锯齿圆形头像
- 下一篇:安卓客户端与服务端交互源代码包括安卓端和web端)
相关资源
- stc单片机AD 8位和10位数值通过1602液晶
- LDMicro梯形图编译软件1.9版支持AVR/PI
- 51单片机红外收发程序
- 51单片机作为i2c从设备加密芯片+红外
- STC89C51单片机RC522读卡程序,Keil文件,
- 电子称 51单片机 1602显示 HX710AD芯片
- 51单片机驱动160160液晶显示程序
- MAX7219显示时间的交通灯系统
- L298控制直流电机加减速的89c51单片机
- 读取STC单片机ID号,用CRC-ITU算法加密
- PROTEUS仿真单片机最小系统
- 蜂鸣器播放音乐-小星星亮晶晶.rar
- 基于单片机的数字化语音存储与回放
- C8051F120带按键时钟
- STC90C516RD+ 5min切换点阵LED显示
- 24c04系列读写代码
- 分时操作系统在单片机中的实现
- MSP430单片机通过proteus仿真DS18B20程序
- 基于单片机和红外接近开关的图书馆
- 51 单片机 汇编 花样流水灯 经典连续
- 51单片机 RTL8019AS 网卡驱动程序(有
- 8bd41aa69cfd0ca155ebcfa513c37e1c.txt
- MSP430g2553单片机实现的输出三路PWM,
- 单片机原理及接口技术 期末考试题
- 基于单片机的十字路口红绿灯控制系
- 基于单片机的便携式电子称的设计
- 2e83751335d93e769646a4a9a6da9c3d.slx
- 为淘宝TM1638数码管模块8LED8按键8位数
- TLC5615+可调频率正弦波.zip
- TLC5615C+输出三角波+仿真.zip
评论
共有 条评论