网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

基于单片机数字温度计设计制作

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
基于单片机数字温度计设计制作
单片机课程设计与制作任务书
 
专业:应用电子技术   学号:200504310311  姓名:
一、设计题目:
基于单片机的电子时钟设计与制作
二、设计要求:
1、          具有对温度测量,不在温度测的范围报警及显示功能;
2、          温度采用一组LED数码管显示,有最高和最低的温度显示标志;
3、          能够用简单的按键对温度进行手动设定,复位或调整;
4、          测量温度步进为1度。
三、设计内容:
硬件设计、软件设计及样品制作
四、设计成果形式:
1、          设计说明书一份(不少于4000字);
2、          样品一套。
五.完成期限: 2007年07月13日
目 录
引  言. 3
一、序  言. 1
1.1单片机简介. 1
1.2单片机的产生与发展. 2
1.3单片机的应用. 3
二、总体设计方案. 4
2.1数字温度计设计方案论证. 4
2.2方案二的总体设计框图. 5
2.3 系统整体硬件电路. 10
三、系统软件算法分析. 13
3.1主程序. 13
3.2读出温度子程序. 13
3.3温度转换命令子程序. 14
3.4计算温度子程序. 15
3.5 温度数据显示子程序. 15
四、样品制作与调试. 16
4.1原材料的选择与采购. 16
4.2 印刷电路板的设计与制作. 16
4.3 单片机测试. 16
4.4 硬件及软件调试. 17
4.5整机的调试与测试过程. 17
五、使用说明. 18
结束语. 19
参考文献. 20
附录一 元器件清单. 21
附录二 PCB图. 22
附录三 原理图. 23
附录四 原程序53. 53
 
基于单片机数字温度计设计制作
引  言
科技发展到今天,人们的生活中涌现出各种各样的科技产品,各种各样的电子产品更是花样百出、遍及人们生活中的每一部分,现在人们更是感觉到了科技给人们带来的巨大发展,科学技术作为第一生产力在人类社会的发展中起了很大的推动作用,人类从原始向先进的发展都伴随着科学的发展。当今微型计算机技术发展形成两大分支,一是以微处理器(Micro Processor Unit)为核心所构成的通用微机系统,主要用于科学计算、数据处理、图形图像处理、数据库管理、人工智能、数字模拟与仿真等领域。另一分支是为控制器( Micro Controller Unit),俗称单片机。单片机主要用于工业测控,如家用电器、计算机外围设备、工业智能化仪表、机器人、生产过程的自动控制、农业、化工、军事、航空航天等领域。
作为21世纪的工科大学生,不仅要熟练的使用通用微机进行各种数据处理,还要把计算机技术运用到本专业领域或相关领域,即具有“开发能力”。本次课题(模拟电视信号中断测量仪)的设计具有两方面的意义:1、充分肯定了我们的“开发能力”;2、锻炼了我们的动手与操作能力,熟练了单片机知识。
信息技术革命的火炬是由微电子技术革命点燃的,它促进了计算机技术、通信技术及其他微电子技术的更新换代,至今,尚未有尽期。信息技术革命推动产业革命,是人类社会经历了农业、工业社会后进入了信息社会,在现代社会中,信息越来越显示出它在经济上和社会上的重要作用。人们对于信息的行为,自觉的认识信息,逐渐过度到积极的获取信息,又进而广泛的利用信息。
电视信号中断测量仪(采用本课题原理)为电视信号是否有中断、什么时候中断以及中断了多长时间提供了依据。可以运用到监控系统中,从而可提高防盗能力,也可以运用到电视台,监视电视信号,从而提高其质量。
 
一、序  言
  1.1单片机简介
当今在全世界范围内,已经形成了以计算机(Computer)通信(Communication)和消费类电子(Consumptive Electron)三足鼎立的发展新格局,而我作为做21世纪的工科大学生,而我们又是学的电子这门专业,无论是从事科学研究工作,还是开办电子电器制造企业,抑或是经营电子元器件贸易,不仅要熟练地使用通用微机进行各种数据处理,还要把计算机技术运用到本专业领域或相关领域,即具有“开发”能力。所以新世纪的工科大学生既要掌握通用微机,又要掌握“单片机”。
 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。正是因为单片机功能之强大,应用范围之广,我们要努力掌握它。
1.2单片机的产生与发展
1974 年,美国仙童(Firchild)公司研制的世界第一台单片微型机F8.该机有两块集成电路芯片组成,结构奇特,具有与众不同的指令系统,深受民用电器和仪器仪表领域的欢迎和重视.从此,单片机开始迅速发展,应用领域也在不断扩大.现已成为微型计算机的重要分支,单片机的发展过程通常可以分为一下几个发展过程.
(1) 第一代单片机(1974-1976):这是单片机发展的起步阶段.在这个时期生产的单片机特点是,制造工艺落后和集成度低,而且采用了双片形式.典型的代表产品有Fairchild公司的F8和Mostek387公司的3870等.
(2) 第二代单片机(1976-1978):这是单片机的第二发展阶段.这个时代生产的单片机随眼已能在单块芯片内集成CPU,并行口,定时器,RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广,典型的产品有Inrel公司的MCS-48系列机.
(3) 第三代单片机(1979-1982):这是八位单片机成熟的阶段.这一代单片机和前两代相比,不仅存储容量和寻址范围大,而且中断源,并行I/O口和定时器/计数器个数都有了不同程度的增加,更有甚者是新集成了全双工穿行通信接口电路.在指令系统方面,普遍增设了惩处法和比较指令.这一时期生产的单片机品种齐全,可以满足各种不同领域的需要.代表产品有Intel公司的MCS-51系列机,Motorola公司的MC6801系列机,TI公司的TMS7000系列机,此外,Rockwell,NS,GI和日本松下等公司也先后生产了自己的单片机系列.
(4) 第四代单片机(1983年以后):这是十六位单片机和八位高性能单片机并行发展的时代,十六位机的特点是,工艺先进,集成度高和内部功能强,加法运算速度可达到1us以上,而且允许用户采用面向工业控制的专用语言,如PL/MPLUS C和Forth语言等.代便产品有intel公司的MCS-96系列,TI公司的TMS9900,NEC公司的783××系列和NS公司的HPC16040等.
然而,由于十六位单片机价格比较贵, 销售量不大,大量应用领域需要的是高性能,大容量和多功能新型八位单片机.这些单片机有Intel公司的88044(双CPU工作),Zilog公司的Super8(含DMA通道),Motorola公司的MC68CH11(内含E2prom及A/D电路)和WDC公司的65C124(内含网络接口电路),等等。
 1.3单片机的应用
 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以并口传送数据,实现温度显示,能准确达到以上要求。
 
基于单片机数字温度计设计制作
二、总体设计方案
2.1数字温度计设计方案论证
2.1.1方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
2.1.2 方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.2方案二的总体设计框图
温度计电路设计总体设计框图如图2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以并口传送数据实现温度显示。若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
 
图2.1  总体设计方框图
2.2.1 主控制器
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
 
2.2.2 显示电路
显示电路采用3位共阳LED数码管,利用动态扫描方式,从P0口输出段码,P2口的P2.5、P2.6、P2.7输出位码。
2.2.3温度传感器
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.2所示。若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn 
 
图2.2   DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图2.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
 





温度  LSB


温度  MSB


TH用户字节1


TL用户字节2


配置寄存器


保留


保留


保留


CRC





TM

R1

R0

1

1

1

1

1
图2.3  DS18B20字节定义
由表2.1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。
表2.1  DS18B20温度转换时间表





R1

R0

分辨率/位

温度最大转换时间/MS


0

0

9

93.75


0

1

10

187.5


1

0

11

375


1

1

12

750
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。分别说明如下:
1、初始化  单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。
2 、ROM操作命令  总线主机检测到DS18B20的存在 便可以发出ROM操作命令之一 这些命令表2.2:
表2.2   ROM操作命令





指 令

代 码


Read ROM(读ROM)

[33H]


Match ROM(匹配ROM)

[55H]


Skip ROM(跳过ROM]

[CCH]


Search ROM(搜索ROM)

[F0H]


Alarm search(告警搜索)

[ECH]
 3、存储器操作  命令如表2.3:
表2.3  存储器操作命令





指令

代码


Write Scratchpad(写暂存存储器)

[4EH]


Read Scratchpad(读暂存存储器)

[BEH]


Copy Scratchpad(复制暂存存储器)

[48H]


Convert Temperature(温度变换)

[44H]


Recall EPROM(重新调出)

[B8H]


Read Power supply(读电源)

[B4H]
 
基于单片机数字温度计设计制作
 4、时序  主机使用时间隙(time slots)来读写DS18B20的数据位和写命令字的位
(1)初始化
若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
图2.4   初始化时序
时序见图2.4,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态。DS18B20在检测到总线的上升沿之后等待15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240 us)。如图中虚线所示:
 (2)写时间隙

       图2.5.1   写0时序                           图2.5.2   写1时序
当主机总线t o时刻从高拉至低电平时,就产生写时间隙见图5-1和图5-2。从to时刻开始15us之内应将所需写的位送到总线上,DSl820在t o后15-60us间对总线采样。若低电平,写入的位是0。见图2.5.1。若高电平写入的位是1见图2.5.2。连续写2位间的间隙应大于1us。
 (3)读时间隙
见图2.6,主机总线to时刻从高拉至低电平时,总线只须保持低电平l us。之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t 2时刻前有效,t 2距to为15us。也就是说t 2时刻前主机必须完成读位,并在t o后的60us一120us内释放总线,读位子程序(读得的位到C中)。
图2.6  读时序
DSl820多路测量简介

图2.7   DSl820原理框图
每一片DSl820在其ROM中都存有其唯一的48位序列号,出厂前已写入片内ROM 中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出并登录。当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该DS18B20的48位序列号)。之后的操作就是针对该DS18B20的。而所谓跳过ROM命令即:MOV A,#0CCH。
图2.7中先有跳过ROM,即是启动所有DS18B20进行温度变换,之后通过匹配ROM 再逐一地读回每个DS18B20的温度数据。在DS18B20组成的测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DS18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。这种方式使其T值往往小于传统方式。(由于采取公用的放大电路和A/D转换器只能逐一转换)。显然通道数越多,这种省时效应就越明显。 
2.3 系统整体硬件电路
2.3.1 主板电路
若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
图2.8   主板电路
系统整体硬件电路包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路,电源电路等。如图2.8所示
图2.8中有四个独立式按键可以分别调整温度计的上下限报警设置,可以任意调整报警上下限。图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音。LED数码管将当前被测温度值显示,从而测出被测的温度值。
图2.8中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。
2.3.2 显示电路
显示电路是采用P0口输出段码至LED,P2口控制位选通的动态扫描显示方式,三只数码管用NPN型三极管驱动,这种显示方式的最大优点是显示清晰,软件设计简单。如图2.9所示,

图2.9  显示电路
2.3.3 传感器数据采集电路
传感器数据采集电路主要指DS18B20温度传感器与单片机的接口电路。DS18B20可以采用两种方式供电,一种是采用电源供电方式,如图2.10所示,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图2.11所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。考虑到实际应用中寄生电源供电方式适应能力差且易损坏,此处采用电源供电方式,I/O口接单片机的P2.0口。

图2.10  电源供电方式
三、系统软件算法分析
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。图3.1  主程序流程若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
3.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图3.1所示。
3.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3.2所示 若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn 

图3.2  读出温度子程序流程
3.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间
 

基于单片机数字温度计设计制作
约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图,如图3.3所示若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn

图3.3  温度转换流程图
3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3.4所示。
 

图3.4  计算温度流程图
3.5 温度数据显示子程序
显示数据子程序主要是对显示缓冲器中的显示数据进行刷新操作,查表送段码至LED,开位码显示,采用动态扫描方式。 
  四、样品制作与调试
4.1原材料的选择与采购
本次设计在原材料的选择与采购上做到了设计最优化,即用最小的开支,获得性价比较高的元器件和材料。
设计中,印刷电路板采用单面板,给人看起来没有太复杂的感觉。选元器件时,尽量选择能使电路简化的器件。例如,为了不增大电路板的体积及减小功耗,本设计采用ATMEL公司的89S51单片机,体积小,工作电压低。
4.2 印刷电路板的设计与制作
在PCB图的设计中,我们组的三个人可是尽心尽力,出谋划策。自从大二第一学期起我们就很少接触protel这个软件。所以我们刚开始画的时候总是毛手毛脚的,对其中的很多功能是不了解,画出来的图不仅不美观而且很多地方的布线不符合实际的要求。最后在多次请教老师和同学之后,我们终于克服了这几方面的问题,也许是电路有点复杂的问题我们不管怎么画跳线总是避免不了,但是为了整个布局的美观我们把跳线全部隐藏在数码管底下。同时还为了避免出现短路现象,设计中采用了两个8路接线器,通过它们,可以大大减少跳线的数量,从而使电路板的整体效果看起来很紧凑。
PCB图画好以后,就是制板。将打印好的PCB图紧贴到单面板覆铜的一面,在这里特别要注意的就是把PCB紧贴到铜板上是要对齐,否则制出来的电路板将不太美观。经压板机压板,然后将电路图印到单面板上。凉了以后,将板放入三氯化铁溶液中进行腐蚀,在这里要注意的就是要使三氯化铁溶液的浓度和温度适中,这样能加快铜板的腐蚀也能提高制板的成功率。制好板以后,将电路板上的石墨刮掉,这样整个制板过程就结束了。
板制好以后,下面就是安装和焊接元件了。安装和焊接其实是并行的。在这个过程中,各类元件一定要按顺序进行,即要先焊个子小的元件,接着就是那些中等一些的,然后就是那些个子大的元件。例如,先安装较低的电阻等器件并焊好,最后安装较高的元件,这样会使所制的板更完善。
4.3 单片机测试
判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。
4.4 硬件及软件调试
硬件调试,第一步是目测,在印好电路板之后,先检查印制线是否有断线、是否有毛刺、是否与其它线或焊盘粘连、焊盘是否有脱落、过孔是否有未金属化现象。而在目测的过程中,我们发现有一条印制线断开,因此我们用焊锡使这条断线连在一起。第二步是用万用表测量。在目测完之后,利用万用表来测量连线和接点,检查它们的通断状态是否和设计一样。再检查各种电源线和地线是否有短路现象,在检查的过程中,发现不管是连线还是接点都符合设计规定,电源和地线也没有短路现象。第三步是加电检查。给印制板加电时,我们检查到的器件的电源端符合要求的电压值+5V,同时接地端的电压为0。第四步是联机检查。利用系统和单片机开发系统用仿真电缆连接起来,发现联机检查完后以上是连接都正确、畅通、可靠。
软件调试,第一步是在具有汇编软件的主机上和用户系统连接起来,进行调试准备。第二步是单步运行。第三步是系统连调,即进行软件和硬件联合调试。经调试,软件运行良好。
4.5整机的调试与测试过程
此次设计硬件采用印刷电路板,需自行制作并焊接元件。在做好硬件电路以后,进入软件调试阶段首先是测试显示电路的正确性,根据硬件写好一段显示程序,写入单片机中。安装好硬件,上电,显示正常,达到预期效果。证明显示电路正常。按下复位按键,LED无显示,松开,显示正常,证明复位电路正常。
然后测试得到温度程序,将初始化程序,DS18B20正常工作的初始化程序、写DS18B20程序、读DS18B20程序,得到温度子程序,温度转换子程序,数据转换子程序,显示子程序正确编排后写入单片机中,上电后,显示当前温度。证明温度传感器DS18B20工作正常,各部分子程序运行正常。
最后是按键子程序及报警子程序的调试,接通电源后其显示的温度就是室内温度27度,为了确定显示的温度的正确性就用另一个酒精温度计测量该室内温度,其温度显示为27.3度,误差是0.3度,误差在允许的范围之内(允许误差为0.5度)。按下S1键进入温度上下限设置,第以下是设置下限值,由于程序设置的最低温度是25度,所以在进入时显示就是25度,再按下S2加一三次之后显示就是28度,就把下限值设置为28度,在按下S4键退出,此时蜂鸣器就会发出滴滴声,因为设置的下限值为28度而实际温度只有27度,在程序中已设定当低于下限值就会发出报警声。则说明设置下限值以及报警电路能正常工作。上限值的调试与下限值的调试方法一样。
程序的烧写没有出现问题,在程序中通过可以改写一些数字来设置不同的最低测量温度以及最高温度,前提在温度计的测量量程之内。
以上调试结果显示各功能均能正常工作!
 
五、使用说明
本电路额定工作直流电压为+5V,有极性判别保护功能,采用7805集成稳压芯片以保证电路的供电稳定,用户输入电源在7-25V均可正常工作。
电路中有五个按键,从左到右依次为S1、S2、S3、S4、RESET,介绍如下:
S1为设置温度上下限设置状态进入按键,第一次按下进入低限设置,按下S4后,再次按下S1进入高限设置。
S2为设置温度上下限的+键,每按下一次上下限值加一
S3为设置温度上下限的-键,每按下一次上下限值减一
S4为温度上下限设置状态的退出或确定按键
RESET为复位按键
使用方法及报警电路说明:
接通电源,红色指示灯亮,表明电源正常。此时数码管应显示初值025,由于显示时间稍短,一闪即过。接下来显示当前温度,若不显示则说明硬件有问题,此时蜂鸣器将报警,绿色指示灯也会点亮。硬件正常,LED就会显示当前温度。若此时检测到当前环境温度不在原来设定的上下限范围之内,蜂鸣器也将报警同是绿灯点亮。直到采取措施改变环境温度在上下限范围内或调整温度上下限
 

基于单片机数字温度计设计制作
结束语
在三个人的配合下,这一期的单片机课程设计取得了圆满成功。看到自己的作品成功的那一刻。我们激动得跳起来了,也说出我们人生中难以说出来的一句话——我们成功了!!!!
这一期的课程设计我们早已经做好了充分的准备。当老师一把课程设计的题目与要求公布出来我们就开始分工合作。首先我们就是开始找电路,我们三个分别在网上,图书馆查找资料,把那些认为可以做的电路找出来,然后集中在一起,由我们三个人共同讨论。。最后我们一致决定做一个数字温度计。于是我就真正的开始分工合作了,我和我的一个室友画PCB另一个同学负责买元件然后检查PCB是否有误。在经过两天的奋斗我们终于把PCB给完成了。接下来我们就是做板了,在所有的程序中制板是最容易的,由我们其中的一个人就完成了。做完板之后我们就是焊接,我发现焊接这道程序是最有意思的,我们这组的人都要挣着弄,最后我们一致决定三个人分别焊接三个不同的部位。在不知不觉中这道程序也就完成了。接下来的任务我们就只剩下了调试。我们来到实验室,在经过一个同学的指导下,我们的调试成功,这也预言着我们单片机课程设计圆满成功!最后的任务就是写实验报告!
在整个过程中,我从中学到了不少东西,更深一步掌握了单片机电路,更深的了解设计中所用到本电路的工作原理,同时也掌握了单片机各引脚的功能及用途。在用Protel制作电路图时,我掌握了制图的一些技巧及在画图时要注意的一些问题,同时也使我更能熟练地操作此软件。在自己动手制作实物多问多动脑多做,切切实实掌握了很多东西,比如焊接器件时要注意的一些事项及技术,硬件检测时所遇到的问题及解决运用的技术!
做一次课程设计不仅要有实物而且还需要有论文。论文的撰写需要大量的资料,在查找资料的过程中,又培养了我从文献、科学实验、生产实践、和调查研究中获取知识的能力,提高了我从别人的经验、从其它学科找到解决问题新途径的悟性。在设计过程中,因为工作量较大,所以一定要分块进行,即每一阶段都有侧重点,然而,当中很可能会出现一些变化,这就要求你要根据条件变化而调整工作重点的应变能力。
小小的一个课程设计的成功,也许算不上惊天地,泣鬼神,但是它也构成了我们人生最精彩的一部分,因为我们从中经历我们以前没有接触过的许多事情。他使我们懂得什么叫做团结合作;使我们懂得了为什么认真、谨慎是做好一件事情的关键;它也使我们的思想变得更加的成熟与稳重!
 
参考文献
[1] 马潮 詹卫前 耿德跟· ATMEGA8原理及应用手册·清华大学出版社,2003年
[2] 何立民·单片机中级教程——原理与应用·北京航空航天大学出版社,2000年
[3] 何立民·MCS-51单片机应用系统设计·北京航空航天大学出版社,2000年
[4] 王嘉陵·毕业论文写作与答辩·四川大学出版社,2003年
[5] 赵润林 张迎辉·单片机原理与应用教程·北京大学出版社,2005
 

基于单片机数字温度计设计制作
附录一 元器件清单
 





元件类型

型号

备注


电阻

4.7k

5个


1k

2个


470

2个


300

3个


排阻4.7k

1个


电容

30p

2个


22u

2个


10p

1个


100u

1个


三极管

8050

3个


8550

1个


数码管(带底座)

共阳极

3个


温度传感器

DS18B20

1个


晶振

12M

1个


蜂鸣器

额定电压5V

1个


发光二极管

红色

1个


绿色

1个


稳压管

7805

1个


四脚开关

 

5个


三脚电源插座



1个


单片机(带底座)

89S51

1块


铜板

120mm*100mm

1块
  
 
附录二 PCB图

若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
 
附录三 原理图
 

基于单片机数字温度计设计制作

附录四 原程序
TEMPUTER EQU 29H;温度存储单元
TEMPH    EQU 27H;温度上限标志位
TEMPL    EQU 26H;温度下限标志位
SIGN     EQU 5BH;按键S1按下次数标志位,为1时设置下限,为2时设置上限
S1   BIT  P1.0;定义S1按键为温度上下限进入按键
S2   BIT  P1.1;定义S2按键为温度上下限加一按键
S3   BIT  P1.2;定义S3按键为温度上下限减一按键
S4   BIT  P1.3;定义S4按键为温度上下限退出按键
ORG      0000H
LJMP     MAIN
ORG      0030H
MAIN:  MOV SP,#60H
       MOV  26H,#25;温度下限初值
       MOV  27H,#99;温度上限初值
       MOV  SIGN,#00H
       MOV  37H,#2
       MOV  36H,#5
       MOV  38H,#0;上电复位后显示初值
       LCALL  DISPLAY
    ;;;主程序;;;
MAIN0: JB  S1,NET1;判断S1是否按下,按下则顺序执行,否则跳转
       LCALL  D12MS;消抖动              
       JB  S1,NET1;再次判断S1是否按下
       JNB  S1,$;等待S1抬起
       INC    SIGN;S1标志位加1
       MOV  A,SIGN
       CJNE A,#1,TIAO;S1标志位与1比较,相等顺序执行,不等则跳转
       LCALL  TIAOTL
TIAO:  CJNE A,#2,NET1;S1标志位与2比较,相等顺序执行,不等则跳转
       MOV SIGN,#0;S1标志位置0
       LCALL  DISPLAY
       LCALL TIAOTH
    ;;;温度比较子程序;;;
NET1:  MOV  A,TEMPUTER
       CLR  C
       SUBB  A,TEMPH
       JNC  BJ;当测试温度高于上限时报警
       MOV  A,TEMPUTER
       CLR  C
       SUBB  A,TEMPL
       JC  BJ;当测试温度低于下限时报警
       LCALL GET_TEMPER
       LJMP   MAIN0
    ;;;报警子程序;;;
BJ:    CLR P2.1
      LCALL  DISPLAY
       LCALL  D12MS
       LCALL  DISPLAY
       LCALL  D12MS
       LCALL  DISPLAY
       LCALL  D12MS
       LCALL GET_TEMPER
       LJMP   MAIN0
   ;;;得出温度总子程序;;;
GET_TEMPER: SETB  P2.0
      LCALL  INIT_18B20
      JB  20H.1,TSS2;检测DS18B20是否再线
      RET
      TSS2:SETB P2.1
      MOV  A,#0CCH;跳过ROM匹配
      LCALL  WRITE_18B20
      MOV  A,#44H;发出温度转换命令
      LCALL  WRITE_18B20
      LCALL  INIT_18B20
      MOV  A,#0CCH;跳过ROM匹配
      LCALL  WRITE_18B20
      MOV  A,#0BEH;发出读取温度命令
      LCALL  WRITE_18B20
      LCALL  READ_18B20
      RET
   ;;;DS18B20初始化子程序;;;
INIT_18B20:SETB  P2.0
      NOP
      NOP
      CLR P2.0
      MOV R1,#03H
TSR1: MOV  R0,#6BH
      DJNZ  R0,$
      DJNZ  R1,TSR1;主机发置位脉冲持续600us左右
      SETB  P2.0;主机释放总线,P1.0口改为输入口
      NOP
      NOP
      NOP
      MOV  R0,#25H
      NOP
      NOP
      NOP
      NOP
TSR2: JNB  P2.0,TSR3;DS18B20数据线应变低,如果没变低,说明没准备好,需重来
      DJNZ  R0,TSR2;DS18B20等待64us
      LJMP  TSR4
TSR3: SETB 20H.1;不存在则置标志位
      LJMP  TSR5;不存在则重来
TSR4: CLR  20H.1;存在则清标志位
      LJMP  TSR7
TSR5: MOV  R0,#6BH;重装初值
      MOV  R1,#03H
TSR6: DJNZ  R0,TSR6
      MOV  R0,#6BH
      DJNZ R1,TSR6
TSR7: SETB  P2.0
      LCALL  DISPLAY
      RET
   ;;;写DS18B20子程序;;;
WRITE_18B20:MOV  R2,#8;设置写位个数
      CLR  C
WR1:  CLR  P2.0;写开始
      NOP
      NOP

      MOV  R3,#35;设置时间常数

      DJNZ R3,$;保持整个写过程持续60us
      SETB P2.0
      NOP
      DJNZ R2,WR1;8位完否,没完则返回
      SETB P2.0
      LCALL  DISPLAY
      RET
   ;;;读取温度子程序;;;
READ_18B20:MOV  R4,#2
      MOV  R1,#36H
RE00: MOV  R2,#8
RE01: CLR  C
      SETB  P2.0
      NOP
      NOP
      CLR  P2.0
      NOP
      NOP
      NOP
      SETB P2.0
      NOP
      NOP
      MOV  C,P2.0;主机按位读入DS18B20的数据
      MOV  R3,#35
RE20: DJNZ  R3,RE20;保证读数据过程持续60us
      RRC  A;数据送入A
      DJNZ R2,RE01;  读完整个转换值
      MOV @R1,A;A中数据送数据缓冲区
      DEC  R1
         MOV  P0,A
      SETB  P2.5;开个位显示
      LCALL  D12MS
      CLR  P2.5;关个位显示
      MOV  A,37H需要完整内容的请联系QQ3710167,本文免费,转发请注明源于www.lwfree.cn
      MOVC  A,@A+DPTR
      MOV  P0,A
      SETB  P2.6;开十位显示
      LCALL  D12MS
      CLR  P2.6;关十位显示
      MOV  A,38H
      MOVC  A,@A+DPTR
      MOV  P0,A
      SETB  P2.7;开百位显示
      LCALL  D12MS
      CLR  P2.7;关百位显示
      RET
      ;;;温度转换子程序;;;
TEMPER_COV: MOV  A,#0F0H
      ANL  A,36H;舍去小数位
      SWAP  A
      MOV  37H,A
      MOV  A,36H
      JNB  ACC.3,TEMPER_COV1;四舍五入
      INC  37H
TEMPER_COV1: MOV  A,35H
      ANL A,#07H;舍去温度中标志位
      SWAP  A
      ADD  A,37H
      MOV  37H,A;把转换后温度放入37H中
      LCALL  BIN_BCD
      RET
 

基于单片机数字温度计设计制作
  ;;;BCD转换子程序;;;
BIN_BCD: MOV 29H,37H;把转换后温度放入温度存储单元中待比较
      MOV  A,37H
      MOV  B,#100
      DIV  AB
      MOV  38H,A
      MOV  37H,B
      XCH  A,B
      MOV  B,#10
      DIV  AB
      MOV  37H,A
      MOV  36H,B
      RET
 需要完整内容的请联系QQ3710167,本文免费,转发请注明源于www.lwfree.cn
      LCALL  D12MS
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  DISPLAY
      LCALL  D12MS
      JNB S2,$
      INC TEMPL
      MOV 37H,TEMPL
      LCALL  BIN_BCD
      MOV  38H,#0CH
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  D12MS
      LCALL  D12MS
      MOV  A,TEMPL
      CJNE A,#100,ADD1
      MOV  TEMPL,#0
ADD1: JB  S3,ADD2
      LCALL  D12MS
      JNB S3,$
      DEC TEMPL
      MOV 37H,TEMPL
      LCALL  BIN_BCD
      MOV  38H,#0CH
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  D12MS
      LCALL  D12MS
      MOV A,TEMPL
      CJNE A,#00,ADD2
      MOV  TEMPL,#100
ADD2: JB S4,TIAOTL
      LCALL  D12MS
      JNB S4,$
      MOV TEMPUTER,50H
      LJMP  MAIN0
   ;;;高温设置子程序;;;
TIAOTH: MOV  50H,TEMPUTER
      MOV  37H,TEMPH
      LCALL  BIN_BCD
      MOV  38H,#0BH;设置温度上限时高位显示H
     LCALL  DISPLAY
      LCALL  D12MS
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  DISPLAY
      JB  S2,ADD11
      LCALL  D12MS
      JB  S2,ADD11
      JNB S2,$
      INC TEMPH
      MOV 37H,TEMPH
      LCALL  BIN_BCD
      MOV  38H,#0BH
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  D12MS
      LCALL  D12MS
      MOV A,TEMPH
      CJNE A,#100,ADD11
      MOV  TEMPH,#0
ADD11: JB S3,ADD22
      LCALL D12MS
      JB  S3,ADD22
      JNB S3,$
      DEC TEMPH
      MOV  37H,TEMPH
      LCALL  BIN_BCD
      MOV  38H,#0BH
      LCALL  DISPLAY
      LCALL  D12MS
      LCALL  D12MS
      LCALL  D12MS
      MOV A,TEMPH
      CJNE A,#00,ADD22
      MOV  TEMPH,#100
ADD22: JB S4,TIAOTH
      LCALL  D12MS
      JB S4,TIAOTH
      JNB  S4,$
      MOV TEMPUTER,50H
      LJMP  MAIN0
   ;;;按键消抖子程序;;;
D12MS: SETB RS1
      MOV R6,#0AH
TM:   MOV R5,#0FFH
TM1:  DJNZ R5,TM1
      DJNZ R6,TM
      CLR RS1
      RET
TAB: DB 0C0H 0F9H 0A4H 0B0H 99H 92H
     DB 82H  0F8H 80H  90H 0C7H 89H
  • 下一篇资讯: JSP库存管理系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师