基于DS18B20的温度采集显示系统的设计 下载本文

课程设计用纸

数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。如要显示“0”,共阳极数码管的字型编码应为:11000000B(即C0H);共阴极数码管的字型编码应为:00111111B(即3FH)。依此类推,可求得数码管字形编码如表3-5所示。

表3-5数码管字符表

显示数字 0 1 2 3 4 5 6 7 8 9 共阳顺序小数点亮 Dp g f e d c b a 16进制 a b c d e f g Dp 16进制 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 FCH 60H DAH F2H 66H B6H BEH E0H FEH F6H 40H 79H 24H 30H 19H 12H 02H 78H 00H 10H 共阴顺序小数点暗 共阴逆序小数点暗 共阳顺序小数点暗 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 显示的具体实施是通过编程将需要显示的字型码存放在程序存储器的固定区域中,构成显示字型码表。当要显示某字符时,通过查表指令获取该字符所对应的字型码。

第 11 页

课程设计用纸

3.5.2数码管显示电路

P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1P2.2 P2.3

图3-10 四位八段数码管动态显示电路

图3-10为本次设计所用到的四位八段数码管动态显示,其中段选接到单片机的P0口,位选接到单片机的P2口的低四位。其中P0口也接的有上拉电阻,图中未标示出来,会在下面的总体电路中标示出来。采用的是动态显示方式。 3.6 硬件电路总体设计

图3-11为本次设计的硬件总体设计图,其中利用K1,K2,K3处进行报警温度的设置,然后有DS18B20进行实时温度采集,并在数码管上同步显示,若采集到的温度达到或者超过预设的报警温度,则LED灯会发光报警,若低于该报警温度,则不会报警。

第 12 页

课程设计用纸

图3-11 硬件电路总体设计图

4.软件设计方案

4.1主程序介绍

4.1.1主程序流程图

本次设计首先对程序进行初始化,然后打开报警温度设定开关,对报警温度进行设定,确认设定值后,DS18B20温度传感器进行温度采集并送入单片机中,单片机将传感器所检测到的温度同步显示在数码管上,并且与设置的报警温度进行比较,若达到或者超过报警温度时,LED灯发光报警,如果没有达到,则继续进行温度采集。

第 13 页

课程设计用纸

开始 初始化程序 进行报警温度设定并确认 传感器采集温度并实时显示判断达到报警温度? N 继续温度采集 Y 灯光报警

图4-1主程序流程图

4.1.2主流程的C语言程序 main () {

ALERT=0; LED=0; flag=0; sheding=30;

disdata=0xff;// 初始化端口 discan=0xff;

//开机显示“8888”scan();

for(h=0;h<4;h++) {display[h]=8;}

第 14 页