数字显示温度计 - 图文 下载本文

sbit sbit

light1=P2^5; light2=P2^6;

//Led6Num个数码管

uchar data

LedDispBuff[LedNum];

//数点缓冲区

uchar data ComPortBuf;

uchar data ScanBitCnt; uchar data ScanTimeCnt; uchar data uchar data bit

m; n;

bdata flag;

//===============数码管码表(共阳极)=============================== uchar data

//================================================================== //函 数 名: MnLed()

//功能描述: LED数码管动态扫描扫描函数 //输入参数: 无 //输出参数: 无 //设 计 者: //创建日期:

//================================================================== void MnLed(void) {

ComPortBuf = 0xfe;

for(ScanBitCnt=0;ScanBitCnt<=3;ScanBitCnt++) {

CODE[]={ 0xc0,0xf9,0xa4,0xb0, // 0-0 1-1 2-2 3-3

0x99,0x92,0x82,0xf8, 0x80,0x90,0xff,0x88, 0x83,0xc6,0xa1,0x86,

// 4-4 5-5 6-6 7-7 // 8-8 9-9 10-空11-A // 12-b

13-C

14-D

15-E

19-H 23-S 27-o

0x8e,0x8c,0xc1,0x89, // 16-F 0xc7,0xbf,0x91,0x92, // 20-L 0xf7,0x8b,0xc2,0xa3 };

// 24-_

17-P 21-- 25-h

18-U 22-y 26-G

DataPort=CODE[LedDispBuff[ScanBitCnt]]; if(ScanBitCnt==1)DotPort=0;

29

//段选

}

ComPort=ComPortBuf; ScanTimeCnt=ScanTime;

//位选

if((LedDispBuff[0]>=2&&LedDispBuff[1]>=8)||(LedDispBuff[0]<=1&&LedDispBuff[1]<=8)) }

{ //上限28度,下限18度,超出限蜂鸣器,发光二极管报警

ring=0; if(flag) {

n=10; //锁定第一个温度传感器 light1=0;}//对应二级管亮

else {

m=10; //锁定第二个温度传感器 light2=0;}// 对应二级管亮

}

else { ring=1;

light1=1; light2=1;}

//扫描延时

while(ScanTimeCnt--); ComPort=0xff; ComPortBuf<<=1; ComPortBuf++;

6 元器件清单

表格5-1

名称 七段数码管 CD4511 74LS192 NE5534 LM324 三极管

型号参数 NPN 30

数量 2 2 2 2 1 2 备注 0.5k 电位器 10k 0.2k 4.7k 普通电阻 0.9k 0.5k 0.1k 电解电容 发光二极管 开关 DS18B20 1000u 2 1 1 1 1 1 1 1 2 2 2 7 调试过程及测试数据

为使电路便于调试我们采用分块调试的方法。 7.1 通电前检查

电路安装完毕后,经检查电路各部分接线正确,电源、元器件之间无短路,器件无接错现象。 7.2 通电检查

7.2.1按钮开关的检查

首先将按钮开关和其他电路模块断开,只留按钮开关部分。其次,给电路两端接5伏直流电压。开关两端的电压为低电平,若出现断路等情况,可能会出现高电平的现象。 7.2.2数字显示单元电路的调试

断开其他单元,给CD4511通5V电源,看数码管是否正常显示,由结果可知,数码管显示正常。.

7.2.3 计数器的调试

接通电源,把万用表打在二极管档,黑表笔接地,红表笔检测各个引脚,看似否会发出声音,若没有声音,说明工作正常,若发出声音,说明有短路或其他电路故障。将万用表打在直流电压档上,观察电压值是否满足设计指标,若满足则说明工作正常。

31

7.2.4二极管、发光二极管及三极管的调试

未接电源时,万用表打到电阻档上。用红黑表笔分别接二极管的两端,测出一个阻值,调换表笔位置,在得出一个阻值,正向电阻较小,反向电阻较大。在阻值较小的那次测量中可知道它的极性。用万用表二极管档可以检测其好坏,发光代表是好的。

断开电源,用万用表的电阻档检测三极管的好坏, 7.3 系统使用说明

接通电源,按下开关,观察数码管的变化,可以知道它在按照设计要求进行变化。温度若超出已设定的值,报警系统启动,温度恢复,则恢复正常。

8 小结

电路在设计,程序编写及其仿真过程都是相当享受的,当看到程序与硬件结合,最终系统一步一步如你所想时,那是无法想象的欣喜,理论仅仅只能作为参考,由于首次进行此类的程序为主的课程设计,自己动手做东西的时候才发现有许多问题是要经过长期的实践才能解决的。虽然在制作的过程中遇到很多问题,但经过自己的不懈努力以及同学的帮助,总算顺利的完成了调试。

9 设计体会及今后的改进意见

9.1 体会

当面对一个课题,首先要注重审题。记得在刚开始时,以我对课题的理解来进行系统的设计,当我给导师张老师说我的理解和想法时,才知道,我的思路是与课题相符,但并不实用,所以弄清楚题目要求或者是用户要求,这样才能有的放矢地进行产品的设计和制作。

课程设计中,我先后用两种语言,汇编与C,最终通过后者,才将系统的程序编了出来。但两种语言的各有千秋的,我在这深有体会。

其次,所谓磨刀不误砍柴功,软件中,用汇编之前,我花了半天时间重新认识这个语言,后来换C后,又有好多格式通过和同学交流才知道;硬件中,焊接之前合理选择焊接工具是非常重要的,对于初学者,选取30W的电烙铁比较合适,可以熔化焊锡丝也不会熔掉焊盘。

另外,导线的选取也比较关键,可以选取单芯的铜丝导线,也可以选择缠绕丝状的铜丝。对于单芯的铜丝,它适合作为电源线和地线。

32