3. 1. 2 读 DS18B20 温度数据的程序
先将 DS18B20 数据线置高电平 1,再将数据线拉低置 0。启动读时序,温度数据就会按从低位到高位的顺序发送到单片机内部。( 一次只发送一位) 。
3. 1. 3 向 DS18B20 写命令或数据的程序
先将数据线置高电平 1,再将数据线拉低置 0,启动写时序,命令或数据就会按从低位到高位的顺序发送到 DS18B20 的内部。
3. 1. 4 进行 DS18B20 温度转换启动的程序
先进行初始化 DS18B20 的程序,然后由单片机发送跳过读 DS18B20 序列号的操作和启动温度转换的指 令 以 及 读 取 温 度 寄 存 器 指 令,从 而 读 出DS18B20 的温度数据。
3. 2 1602 型 LCD 的显示、转换控制程序
3. 2. 1 对 1602 型 LCD 的显示模式进行初始化设置的程序
将 1602 型 LCD 的显示模式设置为 16 ×2 显示,5 × 7 点阵,8 位数据接口; 显示开,无光标,光标不闪烁; 将以前的显示内容清除。
3. 2. 2 将模式设置指令或显示地址写入液晶模块的程序
先设置显示器的端子,当 RS 和 R/W 同时为低电平时,可以由单片机写入指令或地址,然后通过单片机 P0 口写入指令或地址到显示器内部,当显示器E 端子由高电平跳变成低电平时,液晶模块开始执行命令。
3. 2. 3 将数据( 字符的标准 ASCII 码) 写入液晶模块的程序
先设置显示器的端子,当 RS 为高电平、RW 为低电平时,可以由单片机写入数据,然后通过单片机的 P0 口写入数据到显示器内部,当显示器 E 端子由高电平跳变成低电平时,开始将数据写入液晶模块。
3. 2. 4 显示温度的程序
先在单片机内部将温度值转化成三位十进制数,然后将其从显示器的第 1 行第 7 列开始显示发动机缸体出水口温度,第 2 行第 7 列显示水箱出水口温度。
3. 3 继电器、蜂鸣器的控制程序
当发动机出水口温度和水箱温度只要有 1 个大于 95 ℃小于 108 ℃时,电动风扇低速运转。当 2 个温度中只要有 1 个超过 108 ℃时,电动风扇高速运转,同时蜂鸣器响,发光二极管闪亮。
3. 4 发光二极管闪亮的控制程序
void LEDSHAN( void){while( 1){P1^7 = 0; / / 发光二极管亮
delaynms( 10) ; / / 延时一点时间P1^7 = 1; / / 发光二极管灭delaynms( 10) ; / / 延时一点时间}}
4 结论
首先利用 protues 软件进行仿真,确认没有问题后,再用 protel 软件中绘制电路原理图生成 PCB图,最后送去厂家制作成控制电路板。目前,该系统已成功应用于部分农用车上。运行结果表明: 系统功能齐全、自动化程度高和通用性好。方案对同类设计具有一定的参考价值。