基于51单片机的多功能温度控制器的设计
操作命令。如启动温度转换命令[44H],写入命令[4EH](写入该命令后,紧接着要写入报警上限TH,报警下限TL及配置寄存器字节),读暂存器RAM的内容命令[0BEH](读取将从第一个字节开始一直到第9个字节结束,如仅需要部分字节,主机可以在合适的时刻发复位命令来终止读取)及复制命令[48H](把暂存器RAM的第2、3、4字节转存到DSl8820的EEROM中)等。
(4)DSl8820的ROM或RAM操作的总线读写时序。对于读时序,首先将DQ拉低并延时1-15μs以内(延时时间不能太长),然后将DQ拉高并延时几个μs后再读取DQ的值,读完一位后需要延时45 μs以上才能读取下一位;对于写时序,先将DQ拉低10-15μs,接着向总线写入数据并延时50μs以上,最后将DQ拉高1μs以上再进行下一位的写入。
1.4 液晶显示模块
采用的是长沙太阳人电子有限公司生产的SMCl602A。
1.4.1 主要技术参数
芯片的工作电压4.5~5.5V,能显示两行,每行显示16个字符,字符的大小为2.95×4.35mm。
1.4.2 接口信号说明
除电压、背光引脚及8个I/O引脚外,主要的控制引脚还有数据/命令选择RS引脚,该引脚为高电平时表示I/O引脚出现的是数据,该引脚为低电平时表示I/O引脚出现的是命令;读/写选择引脚及使能引脚E(该引脚为高电平时对SMCl602A的操作才有效)。
1.4.3 指令说明
(1)初始化设置
a.显示模式设置。指令码:00111000b,用于设置16×2显示,5×7点阵。
b.显示开/关及光标设置。二进制指令码:00000DCB中D位用来控制显示开或关,C位用来控制显示光标,B位控制光标是否闪烁。二进制指令码:000001NS中N位控制读写一个数据后地址指针和光标加或减1,S位控制字符的移动。
c.数据指针设置。指令码:80H+地址码(0-27H,40H-67H)用于设置数据指针。
(2)其他设置。如指令码01H:显示清屏且数据指针清零。
1.4.4 LCDl602的初始化步骤
(1)延时15ms,写指令38H(不检测忙信号);
(2)延时5ms,写指令38H(不检测忙信号),上述过程执行两遍,后面的过程每次写指令、读/写数据之前均需要检测忙信号;
(3)写指令38H:显示模式设置;
(4)写指令08H:关闭显示;
(5)写指令0lH:清屏且数据指针清零;
(6)写指令06H:字符不移动,光标和指针加1;
(7)写指令0FH:显示开,光标闪烁。
1.5 恒温保持控制模块
选用6V固态继电器作为开关器件,通过控制其断与通的时序从而控制加热器件的工作时长,以实现样品的恒温保持功能。
2 系统硬件电路的设计
该系统的主要电路原理图如图2所示。系统中使用USB口提供5V电源的电路;使用RS232串口通过P3.0和P3.1烧写程序的电路;以及使用继电器控制的恒温保持电路等在原理图中并未画出。
3 系统的软件设计
系统总的流程图如图3所示。系统程序主要有主程序和LCDl602初始化子程序及读写时序子程序、DSl8820复位及读写时序子程序、键盘扫描子程序、温度数据处理子程序等构成。
4 程序的编辑及调试
编程语言可以采用汇编语言,也可以采用C51语言。本文采用汇编语言,使用Keil C软件新建一个工程,然后新建一个文件输入源程序并保存成.asm格式,并将该源文件添加到刚刚新建的工程,随后编译链接后生成十六进制文件(.HEX),最后使用烧写软件stc-isp-v3.9l通过RS232串口将十六进制文件烧写进单片机的Flash中运行程序即可。
5 结论
本文设计的多功能温度控制器体积小、功耗低、可靠性高,实验表明,对温度的控制精度达到了0.1℃的设计目标。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)