水温加热系统DS18B20+1602+按键+蜂鸣器_第1页
水温加热系统DS18B20+1602+按键+蜂鸣器_第2页
水温加热系统DS18B20+1602+按键+蜂鸣器_第3页
水温加热系统DS18B20+1602+按键+蜂鸣器_第4页
水温加热系统DS18B20+1602+按键+蜂鸣器_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学生创新项目 项目名称 水温加热系统 项目内容 DS18B20 温度采集 1602 液晶显示 蜂鸣器报警 继电器控制加热开关 按键输入报警温度指令 创建者 Li 创建日期 14 年 5 月 1 日 头文件 include define uchar unsigned char define uint unsigned int uchar table1 welcome uchar table2 lvliang xueyuan uchar table3 temp C uchar table4 max min uchar num tempmax 40 tempmin 10 uint tempwarn d 0 h 0 IO 引脚定义 sbit rs P2 6 1602 rw sbit rw P2 5 1602 rs sbit en P2 7 1602 en sbit dq P3 7 DS18B20 sbit k1 P1 1 按键 1 sbit k2 P1 2 按键 2 sbit k3 P1 3 按键 3 sbit k4 P1 4 按键 4 sbit beep P1 5 蜂鸣器 sbit RELAY P1 6 继电器 蜂鸣器延时程序 void delaybeep unsigned int i 蜂鸣器延时 uchar j while i for j 0 j0 n void write com uchar com 液晶写命令程序 rs 0 等 0 输入命令 en 0 液晶使能信号初始化 P0 com 把 com 参数 液晶的命令值送到 P0 口 delay 100 延时 按照液晶的时序图的要求 en 1 使能信号 0 到 1 表示上升沿打开可以写命令数据到液晶里 delay 100 en 0 使能信号回复 void write data uchar date 液晶写数据程序 rs 1 等 1 表示输入数据 en 0 P0 date 把 date 参数 液晶的数据送到 P0 口 delay 100 en 1 delay 100 en 0 void init 液晶初始化程序 en 0 write com 0 x38 设置 16X2 显示 5X7 点阵 8 位数据口 write com 0 x0c 设置开显示 不显示光标 write com 0 x06 写一个字符后地址指针加 1 write com 0 x01 显示清 0 数据指针清 0 DS18B20 温度采集程序 void Writebyte uchar dat DS18B20 温度芯片的写字节程序 uchar j for j 0 j 1 uchar Readbyte void DS18B20 温度芯片读字节程序 uchar i dat 0 for i 0 i 1 dq 1 if dq 1 dat 0 x80 delay 4 return dat void initds18b20 void 温度芯片初始化程序 uchar x 0 dq 1 delay 8 dq 0 delay 80 dq 1 delay 14 x dq delay 20 void Readtemp void 读温度程序 initds18b20 Writebyte 0 xcc Writebyte 0 x44 initds18b20 Writebyte 0 xcc Writebyte 0 xbe d Readbyte 温度信号的低 8 位数据函数 h Readbyte 温度信号的高 8 位数据函数 温度信号处理程序 把温度信号数据值转换为液晶显示 convert uint temp tmp float tt tmp d 低 8 位数据给 tmp temp h 高 8 位数据给 temp temp 4 table3 8 temp 100 0 液晶第 9 位字符为温度的百位数 例如 120 度的 1 table3 9 temp 10 10 0 液晶第 10 位字符为温度的十位数 例如 120 度的 2 table3 10 temp 10 0 液晶第 9 位字符为温度的个位数 例如 120 度的 0 tmp tmp 低位温度提取小数数据 tt tmp 0 0625 小数部分数据转换 table3 11 显示小数点 table3 12 uchar tt 10 10 0 小数点后面的小数数字 tempwarn temp return tempwarn 温度值返回 键盘信号处理程序 将键盘设定数据转换为液晶显示 void conduct table4 4 tempmax 100 0 table4 5 tempmax 10 0 table4 6 tempmax 10 0 table4 12 tempmin 100 0 table4 13 tempmin 10 0 table4 14 tempmin 10 0 温度报警程序 void warn uint tempwarn if tempwarn tempmax 如果温度大于设定度并且启动报警 beep 1 delay 250 else beep 0 温度加热程序 void heat uint tempwarn if tempwarn tempmax 如果温度大于设定度就停止加热 RELAY 0 停止加热 初始化 void system Ini TMOD 0 x11 TH1 0 x4c 11 0592 TL1 0 x00 TR1 1 IE 0 x8A 主程序 void main system Ini rw 0 rw 直接置 0 应该在液晶初始化前 否则断电后再通电就不能显示 切记 init 液晶初始化函数 write com 0 x80 0 x80 表示液晶的第一行开始显示 for num 0 num 15 num num 16 16 表示显示 16 位 write data table1 num 液晶显示需要的内容 调用写液晶数据函数 这行显示 拼音 dengtianming write com 0 x80 0 x40 0 x80 0 x40 表示液晶的第二行开始显示 for num 0 num 15 num num 16 16 表示显示 16 位 write data table2 num 液晶显示需要的内容 调用写液晶数据函数 这行显示 拼音 dengtianming delaybeep 3000 while 1 大循环 不断检测和更新温度 Readtemp convert conduct warn tempwarn heat tempwarn write com 0 x80 液晶的第一行开始地址 for num 0 num 15 num 显示 16 位数据 后面的几位没有用到就写不到 16 以免后面的几位会出现一个随机数据显示乱码 write data table3 num 液晶需要显示的内容 write com 0 x80 0 x40 液晶的第二行开始地址 for num 0 num 15 num 显示 16 位数据 后面的几位没有用到就写不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论