用数码管显示信息时,要将JP2的②、③端短接。用四位数码管显示温度值,第五位数码管以闪动方式显示状态符号“H”、 “L”和“O”。 “H”表示实际温度大于报警温度TH,超温;“L”表示实际温度小于报警温度TL,欠温;“O”表示实际温度小于TH大于TL,加热。
2.采用液晶显示 ME300B使用16x2点阵字符型液晶时要将JP2的④、②端短接。TS1620-1主要引脚的功能:
(1)RS寄存器选择控制线RS=O写入指令寄存器;RS=1写人数据寄存器。
(2)R/W读写控制线 R/W=0,LCD执行写人的动作;R/W=l,LCD执行读取的动作。
(3)EN启用控制线EN=1,LCD启用有效。(4)DO—D7双向数据总线 采用8位数据读写方式,用AT89S51的P0口传送。
液晶的第一行显示DSl8820的在线状态“DSl8820 OK”或“DSl8820ERROR'‘。第二行显示温度值和闪动显示状态符号”>H“、 ”<L“和”!!,’。
“>H”表示超温; “<L”,表示欠温;“!!”表示加热。使用按键Kl~K4来设定温度报警值和查看相关信息。用蜂鸣器做声音提示,继电器做输出控制。
3.蜂鸣器、继电器控制电路ME300B使用交流蜂鸣器,采用脉冲方式触发,在使用前要将JP4的P13短接。
二、DSl8820的控制命令
1.SKIP ROM【OCCH】 允许总线控制器不提供64位ROM编码就可使用存储器操作命令。
2.CONVERT TEMP[44H] 启动一次温度变换。
3.WRITE SCRATCHPAD[4EH]
向DSl8820的暂存器TH和TL写数据。
4.READ SCRATCHPAD [0BEH]
读取DSl8820的暂存器的内容。
5. COPY SCRATCHPAD[48H]
把DSl8820暂存器的内容拷贝到DSl8820的EEPROM存储器里,即把温度报警触发字节存入非易失性存储器。
6.RECALL EEPROM [OB8H] 把DSl8820的EEPROM存储器里温度报警值拷贝回DSl8820的暂存器,该操作在上电时自动执行。
三、软件设计控制程序包括主程序、DSl8820复位与检测子程序、读温度子程序、温度数据处理子程序、温度显示子程序、扫描键子程序、报警值设定子程序、温度比较子程序、中断服务程序等。
1.主程序 主程序检测DSl8820是否存在、然后发出温度转换命令和读温度命令,再调用相应的子程序。
2。DSl8820复位与检测子程序上电后,检测有无DSl8820。若有DSl8820,将标志位FLAGl置“1”,数码管显示实时温度值。若无,则将FLAGl置“O”,关数码管,蜂鸣器响。
3.读温度子程序 程序只读出DSl8820高速缓存RAM前4个字节:
温度LSB、温度MSB、温度报警值TH和11L,并将它们存人26H~29H单元。
4.温度数据处理子程序 首先判断MSB的符号位,当符号位S=0时表示温度值为正,可以直接将二进制输换为十进制;当符号位S=I时,表示温度值为负,要先将补码变成原码,再计算十进制值。
5.温度显示子程序 从DSl8820读出的温度值,经过数据处理后,送温度显示子程序显示实时温度。
6.扫描键子程序 K1为查看温度报警值。K3为设定温度报警值。设定完毕,将温度报警值存入DSl8820的EEPROM中。每次开机自动从DSl8820的EEPROM读出温度报警值。
7.温度比较子程序 当实时温度大于TH时,继电器断开,停止加热;当实时温度小于TH大于TL时,继电器吸合,开始加热;当实时温度小于TL时,表示加热部分出现故障。
8.中断服务子程序每间隔200ms对闪动标记FLAG2取反一次。
FLAG2=1时,给相应的数码管送熄灭符;当FLAG2=0时,给相应的数码管送实时值,形成闪动效果。
编程的具体细节请参阅ME300B光盘中的温度控制演示程序。
上一篇:电力电容器爆炸原因及预防措施