您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页C51单片机数字温度计汇编程序及说明书

C51单片机数字温度计汇编程序及说明书

来源:飒榕旅游知识分享网
河南机电高等专科学校毕业论文

1绪论

1.1选题背景

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。现在所使用的温度计通常都是精度为1℃和0.1℃的水银、煤油或酒精温度计。这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确等优点,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。因此本课题就尝试通过编程与芯片的结合来解决传统数字温度计的弊端,设计出新型数字温度计。

1.2课题现状分析及研究意义

温度传感器的发展现状:温度传感器使用范围广,数量多,居各种传感器之首,其发展大致经历了以下3个阶段:

① 传统的分立式温度传感器(含敏感元件)——热电偶传感器,主要是能够进行非电量和电量之间转换。

② 模拟集成温度传感器/控制器。集成传感器是采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。

③ 智能温度传感器。它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。

本课题的研究可以应用领域生产、生活等很多领域。对于家用电器从洗衣机、微波炉到音响等等到处都可以用到温度控制器来方便大家的日常生活。开发此产品后也可方便应用安装在小至家庭大到工厂车间,小至一

1

河南机电高等专科学校毕业论文

个芯片大到一个机械设备。例如在家庭客厅卧室等必要地方显示室温,可防止家里食物是否变质及早采取措施。工业生产控制中用数字温度计可清晰显示温度来防止元气件失效或损坏等不必要的非人为损失,对做好车间机器维修与保养起很重要的作用。

1.3论文的组织结构

第一部分:绪论。介绍了论文的选题背景、现状分析和研究意义。 第二部分:基于单片机的数字温度计设计系统的研究概述。对系统的调查研究、项目的概述、项目实施计划等。

第三部分:基于单片机的数字温度计设计系统分析与设计。本系统功能需求分析,系统要求,系统整体设计,目标系统要求,开发环境。

第四部分:基于单片机的数字温度计设计系统的功能实现。各功能模块的具体设计与实现方法、主要部分包含部的代码。

第五部分:基于单片机的数字温度计设计系统测试与维护。主要检验有何不足之处。

第六部分:基于单片机的数字温度计设计系统评价。只要是该系统的优缺点及改进方向。

第七部分:总结和体会。对整个设计总结、分析不足及改进思想。

2

河南机电高等专科学校毕业论文

2 基于单片机的数字温度计设计系统的研究概述

随着科学科学技术不断发展的今天,温度这个至关重要的技术参数对于我们人类更好的了解与研究自然,更好的为我们人类服务扮演不可替代的作用。科学的严谨性要求我们的研究人员必须用很便捷的方法去获得很精确的数据,再者,科学领域已经深入到地球以外的其它各个地方,所以在设计一个高要求的温度计必要要考虑到环境(电磁干扰、机械振动)对温度仪器的影响。

2.1基于单片机开发系统的发展历史

单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。

单片机发展简史 :如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段

(1)第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS – 48为代表。MCS – 48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。

(2)第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS – 48 基础上推出了完善的、典型的单片机系列MCS –51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。

①完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。

②CPU外围功能单元的集中管理模式。 ③体现工控特性的位地址空间及位操作方式。

④指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。 (3)第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS – 96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS – 51系

3

河南机电高等专科学校毕业论文

列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。

(4)第四阶段(1990—今):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。

单片机,亦称单片微电脑或单片微型计算机。它是把处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口 (I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。 计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,纵观现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。以前只能使用复杂的模拟电路,做出来的产品体积大、成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,就将控制这些东西变为智能化了,只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。

2.2基于单片机的数字温度计系统的作用

在温度测控仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比,用单片机进行实时系统温度处理和控制,保证系统工作在最佳状态,有利于提高系统的工作效率和产品的质量。目前国内外各种家具已经使用数字温度计控制电路,例如,洗衣机、电冰箱、空调机、微波炉、电饭煲、收音机、音像、电风扇及许多高级电子玩具都配上了。数字温度计还应用于办公自动化领域、商业营销领域、安全防卫、汽车及通信系统、计算机外部设备、模糊控制等领域。随着单片机的普及,数字温度测量系统有以前的人工读数逐渐转变成为自动实时显示系统,这样不但节省了人力资源,而且提高了测量的精确性。

4

河南机电高等专科学校毕业论文

3.基于单片机的数字温度计设计系统分析与设计

3.1系统功能需求分析

数字温度计DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS18B20省略了存储用户定义报警温度、分辨率参的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

3.2系统总体设计

本系统在设计时应考虑到有温度采集、数据转换、数字显示等。

开 始 DS18B20初始化 按时序读出二进制温度值 二进制温度值转换成十进制 显示温度值

图3-1系统程序的设计流程图

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低

5

河南机电高等专科学校毕业论文

脉冲,主CPU收到此信号表示复位成功。

图3-2硬件原理图

3.3系统要求

本系统采用数字式温度计传感器为检测器件,进行单点温度检测(或温度采集),要求温度显示采用4位LED数码管显示,处理好延时,温度转换等。具有超过上、下限温度时,进行声音(蜂鸣器)报警。 3.3.1目标系统要求

(1) 时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。

(2) 可靠性。任意时刻的系统故障都会带来不可估量的损失,要求系统具有高度的可靠性。

6

河南机电高等专科学校毕业论文

(3) 可理解性。用户容易理解和使用该系统。

(4) 可维护性和适应性。系统应易于修改、易于扩充、易于维护。 (5) 可用性。目标系统功能齐全,能够完全满足需求。 3.3.2开发工具

开发工具与语言:KEIL C语言 Protel 99SE (一)、KEIL C语言

单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。,如属性(Properties)窗口、彩色编码语法和对多文档界面(MDI)的真正支持。

C语言是目前世界上流行、使用最广泛的高级程序设计语言。 C语言对

操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。C语言的特点: (1) 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

7

河南机电高等专科学校毕业论文

(2) 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

(3) 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4) C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (5) C语法不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

(6) C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

(7) C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10へ20%。 (8) C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。 (二)、Protel 99SE

Protel 99SE是一款用于设计电路的软件,它主要能实现的功能有以下几条:

8

河南机电高等专科学校毕业论文

功能一:出相对比较工整漂亮的原理图。 功能二:成可以用于工厂生产的PCB制板文件。

功能三:成元件清单,生成数控钻床用的钻孔定位文件,生成阻焊层文件,生成印刷字符层文件,等等等等。你想要的它几乎全有。另外,它内部还整合了硬件仿真的功能!

虽然版本众多,但是精髓都是一个,那就是从原理图到仿真到自动布线产生PCB印制板文件一条龙搞定极大地提高工作效率。低版本的适合硬件配置不是很高的机器比如PROTEL1.0 可以在486上运行,PROTEL3.0在586上可以顺畅运行,依此类推。需要注意的是:越是高的版本功能越强大,PCB布线的软件引擎越是高效,同时提供的功能也越是完备,提供的零件库和零件封装越是丰富。高版本的仿真部分居然提供了高频测试功能,不过当然是软件仿真的,但是也足以看出它的完善程度! 3.3.3硬件介绍

(一)DS18B20温度传感器芯片简要说明:

图3-3 DS18B20引脚图

VCC:电源,输入电压为3~5.5V。 DQ:数据输入输出线。 GND:电源地。

9

河南机电高等专科学校毕业论文

DS18B20是单总线接口的数字温度传感器,MSC-51通过串口将数据和指令写入或读出。该芯片的温度测量范围是﹣55℃~﹢125℃,转换完的数据通过两字节输出,对应关系如表3.1所示:

表3.1温度与两字节数据对应关系

数字输出 (二进制) 0000 0111 1101 0000 0000 0001 1001 0001 0000 0000 1010 0010 +0.5℃ 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 -25.0625℃ -55℃ 1、DS18B20的主要特性

1.1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电

1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条

1111 1110 0110 1111 1111 1100 1001 0000 数字输入 (十六进制) 07D0H 温度 +125℃ +25.0625℃ +10.125℃ 0191H 00A2H 0008H 0℃ 0000H -0.5℃ -10.125℃ FFF8H FF5EH FF6FH FC90H 10

河南机电高等专科学校毕业论文

口线即可实现微处理器与DS18B20的双向通讯

1.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温

1.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

1.5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ 1.6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温

1.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快

1.8、测量结果直接输出数字温度信号,以\"一线总线\"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力

1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2、DS18B20的外形和内部结构

DS18B20内部结构主要由四部分组成:位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下:

DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 3、DS18B20工作原理

DS18B20的读写时序得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由为750ms。

DS18B20测温原理中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低

11

河南机电高等专科学校毕业论文

温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

附图为DS18B20芯片的读写时续图

12

河南机电高等专科学校毕业论文

图3-4芯片时序图

DS18B20有4个主要的数据部件:

(1)光刻ROM中的位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56

13

河南机电高等专科学校毕业论文

位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

表2:DS18B20温度值格式表

这是12位转化后得到的12位数据,存储在芯片的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 (3)DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (4)配置寄存器

该字节各位的意义如下:配置寄存器结构 TM R1 R0 1 1 1 1 1

低五位一直都是\"1\",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位) 表3:温度分辨率设置表

R1 R0 分辨率 温度最大转换时间 0 0 9位 93.75ms

14

河南机电高等专科学校毕业论文

0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms

(5)高速暂存存储器

高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表 2是对应的一部分温度值。第九个字节是冗余检验字节。

表4 DS18B20暂存寄存器分布 寄存器内容 字节地址 温度值低位 (LS Byte) 0 温度值高位 (MS Byte) 1 高温限值(TH) 2 低温限值(TL) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC校验值 8 (6)DS18B20的操作顺序

1)复位:在输入输出线上,先保持一段时间的低电平,再恢复高电平就可以完成复位操作。复位结束后,在输入输出线上保持一段时间的低电平,表明复位结束。

2)写入ROM功能指令:在复位操作之后,DS18B20首先接受的数据是ROM功能指令。所以,任何不属于ROM功能指令的数据均不能写入温度传

15

河南机电高等专科学校毕业论文

感器,即而不能进行任何操作。ROM功能指令用于多个温度传感器使用同一个数据总线和MCS—51通讯的情况。在只使用一个温度传感器的情况下,可以写入0CCH(略过ROM功能指令)以略过该步骤。

3)写入存储指令:存储指令包括写暂存存储器(4EH),读暂存存储器(BEH),温度转换开始(44H)等指令。这些指令只是对单个温度传感器有效,否则将引起通信错误。 指令约定代码功能:

读ROM 33H 读DS1820温度传感器ROM中的编码(即位地址) 符合 ROM 55H 发出此命令之后,接着发出 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备; 搜索 ROM 0FOH 用于确定挂接在同一总线上 DS1820 的个数和识别 位 ROM 地址。为操作各器件作好准备。跳过 ROM 0CCH ;忽略 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作;警搜索命令 0ECH,执行后只有温度超过设定值上限或下限的片子才做出响应。温度变换 44H 启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。 读暂存器

0BEH 读内部RAM中9字节的内容 写暂存器

4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器

48H 将RAM中第3 、4字节的内容复制到EEPROM中。 重调 EEPROM 0B8H 将EEPROM中内容恢复到RAM中的第3 、4字节。 读供电方式 0B4H

读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。 (二)ATS52芯片介绍

与MCS-51单片机产品兼容 8K字节在系统可编程Flash存储器

16

河南机电高等专科学校毕业论文

1000次擦写周期 全静态操作:0Hz~33Hz 三级加密程序存储器 R 32个可编程I/O口线 三个16位定时器/计数器 八个中断源

全双工UART串行通道 位微控制器

低功耗空闲和掉电模式 掉电后中断可唤醒 8K 字节在系统可编程 看门狗定时器 双数据指针 Flash 掉电标识符 功能特性描述

ATS52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash,使得 ATS52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

ATS52具有以下标准功能:

8k字节Flash,256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,ATS52 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

VCC : 电源

17

河南机电高等专科学校毕业论文

GND: 地

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,

P0具有内部上拉电阻。

在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。 引脚号 第二功能

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出

18

河南机电高等专科学校毕业论文

缓冲器能驱动 4 个

TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

ATS52 引脚号 第二功能 P3.0 RXD(串行输入) P3.1 TXD(串行输出) P3.2 INT0(外部中断 0) P3.3 INT0(外部中断 0) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器写选通)

RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行 MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个 ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。 当 ATS52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

19

河南机电高等专科学校毕业论文

EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。 在flash编程期间,EA也接收12伏VPP电压。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 存储器结构

MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以K寻址。

程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。 对于 S52,如果 EA 接 VCC,程序读写先从内部存储器(地址为 0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。

数据存储器:ATS52 有 256 字节片内数据存储器。高 128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于 7FH 的地址时,寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。

例如,下面的直接寻址指令访问0A0H(P2口)存储单元 MOV 0A0H , #data

使用间接寻址方式访问高 128 字节 RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。

MOV @R0 , #data

堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。

看门狗定时器

WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,户用必须往 WDTRST 寄存器(地址:0A6H)中依次写

20

河南机电高等专科学校毕业论文

入 01EH 和 0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当 WDT溢出,它将驱动RSR引脚一个高个电平输出。

WDT 的使用

为了激活 WDT,用户必须向 WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当 WDT激活后,用户必须向 WDTRST写入01EH和0E1H喂狗来避免 WDT溢出。当计数达到 8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期 WDT 都会增加。为了复位 WDT,用户必须向WDTRST 写入 01EH 和 0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。

当 WDT 计数器溢出时,将给 RST 引脚产生一个复位脉冲输出,这个复位脉冲持续 96个晶振周期(TOSC),其中 TOSC=1/FOSC。为了很好地使用 WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。

掉电和空闲方式下的 WDT

在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给 WDT 喂狗,就如同通常 ATS52 复位一样。

通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振 稳定。当中断拉高后,执行中断服务程序。为了防止 WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着 WDT 应该在中断服务程序中复位。

为了确保在离开掉电模式最初的几个状态 WDT不被溢出,最好在进入掉电模式前就复位WDT。 在进入待机模式前,特殊寄存器AUXR的 WDIDLE位用来决定 WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止 WDT在待机模式下复位 ATS52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。

UART

在 ATS52 中,UART 的操作与 ATC51 和 ATC52 一样。为了获得更深入的关于UART 的信息,可参考 ATMEL 网站(http://www.atmel.com)。

21

河南机电高等专科学校毕业论文

从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“Product Overview”即可。

定时器 0 和定时器 1

在 ATS52 中,定时器 0 和定时器 1 的操作与 ATC51 和 ATC52 一样。为了获得更深入的关于 UART 的信息,可参考 ATMEL 网站(http://www.atmel.com)。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“Product Overview”即可。

定时器 2

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的 C/T2位选择。定时器 2有三种工作模式:

捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表 3 所示,工作模式由2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加 1。由于一个机器周期由 12 个晶振周期构成,因此,计数频率就是晶振频率的1/12。种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加 1。在测到跳变的这个周期的 S3P1 期间,新的计数值出现在寄存器中。因为识别1-0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的 1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

捕捉方式

在捕捉模式下,通过T2CON中的EXEN2来选择两种方式。如果EXEN2=0,定时器2时一个16位定时/计数器,溢出时,对T2CON 的TF2标志置位,TF2引起中断。如果EXEN2=1,定时器2做相同的操作。除上述功能外,外部输入T2EX引脚(P1.1)1至0的下跳变也会使得TH2和TL2中的值分别捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳变会引起 T2CON 中的 EXF2 置位。像 TF2 一样,T2EX 也会引起中断。自动重载 当定时器 2 工作于 16 位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器

22

河南机电高等专科学校毕业论文

T2MOD中的 DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为 0,因此,定时器 2 默认为向上计数。DCEN 设置后,定时器 2就可以取决于T2EX向上、向下计数。

DCEN=0 时,定时器 2 自动计数。通过 T2CON 中的 EXEN2 位可以选择两种方式。如果EXEN2=0,定时器2计数,计到0FFFFH后置位TF2溢出标志。计数溢出也使得定时器寄存器重新从 RCAP2H 和 RCAP2L 中加载 16 位值。定时器工作于捕捉模式,RCAP2H和RCAP2L的值可以由软件预设。如果EXEN2=1,计数溢出或在外部T2EX(P1.1)引脚上的1到0的下跳变都会触发16位重载。这个跳变也置位EXF2中断标志位。

置位DCEN,允许定时器 2向上或向下计数。在这种模式下,T2EX引脚控制着计数的方向。T2EX上的一个逻辑1使得定时器2向上计数。定时器计到0FFFFH溢出,并置位TF2。定时器的溢出也使得RCAP2H和RCAP2L中的16位值分别加载到定时器存储器TH2和TL2中。

T2EX 上的一个逻辑 0 使得定时器 2 向下计数。当 TH2 和 TL2 分别等于 RCAP2H 和RCAP2L中的值的时候,计数器下溢。计数器下溢,置位TF2,并将0FFFFH加载到定时器存储器中。 定时器2上溢或下溢,外部中断标志位EXF2 被锁死。在这种工作模式下,EXF2不能触发中断。波特率发生器 通过设置 T2CON中的TCLK或 RCLK可选择定时器 2 作为波特率发生器。

如果定时器2作为发送或接收波特率发生器,定时器1可用作它用,发送和接收的波特率可以不同。设置 RCLK 和(或)TCLK 可以使定时器 2 工作于波特率产生模式。

波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转使得定时器 2 寄存器重载被软件预置16位值的RCAP2H和RCAP2L中的值。

定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式

(CP/T2=0)。定时器 2 用于定时器操作与波特率发生器有所不同,它在每一机器周期(1/12晶振周期)都会增加;然而,作为波特率发生器,它在每一机器状态(1/2晶振周期)都会增加。波特率计算公式如下:

晶振频率

模式1和模式3的波特率= *原文少半个括号“(”

23

河南机电高等专科学校毕业论文

32¥[65536-(RCAP2H,RCAP2L)]

其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L组成的16位无符号整数。 特别强调,TH2的翻转并不置位TF2,也不产生中断; EXEN2置位后,T2EX引脚上1~0的下跳变不会使(RCAP2H,RCAP2L)重载到(TH2,TL2)中。因此,定时器2作为波特率发生器,T2EX也还可以作为一个额外的外部中断。 定时器2处于波特率产生模式,TR2=1,定时器2正常工作。TH2或TL2不应该读写。在这种模式下,定时器在每一状态都会增加读或写就不会准确。寄存器RCAP2可以读,但不能写,因为写可能和重载交迭,造写和重载错误。在读写定时器2 或RCAP2寄存器时,应该关闭定时器(TR2清0)。 可编程时钟输出 如图 9 所示,可以通过编程在 P1.0 引脚输出一个占空比为 50%的时钟信号。这个引脚除了常规的 I/O 角外,还有两种可选择功能。它可以通过编程作为定时器/计数器 2 的外部时钟输入或占空比为50%的时钟输出。当工作频率为16MHZ时,时钟输出频率范围为61HZ到4HZ。

为了把定时器2配置成时钟发生器,位 C/T2(T2CON.1)必须清0,位T2OE(T2MOD.1)

必须置1。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定

时器2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示: 时钟输出频率= 4¥[65536-(RCAP2H,RCAP2L)]

在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率相互并不,它们都依赖于RCAP2H和RCAP2L。中断 ATS52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器 IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。对于 ATS52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT系列新产品预留。

定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,

这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是

24

河南机电高等专科学校毕业论文

TF2 或EXF2激

活中断,标志位也必须由软件清0。

定时器0和定时器 1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的

值一直到下一个周期被电路捕捉下来。然而,定时器 2 的标志位 TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。 (三)蜂鸣器

★蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

★蜂鸣器的分类:蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

★蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

★蜂鸣器的结构原理:压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。

多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

25

河南机电高等专科学校毕业论文

4.基于单片机的数字温度计设计系统功能实现

系统设计又称系统物理设计。系统设计要根据系统分析报告中的系统逻辑模型综合考虑各种约束,利用一切可利用的技术手段和方法进行各种具体设计,确定新系统的实施方案,解决“系统怎么做”的问题。

4.1系统程序设计

4.1.1程序初始化:

void main() {while(1) {ZhuanHuan(); DuZhi(); diswendu(); } }

4.1.2读DS18B20程序:

void ChuShiHua(void) //初始化 {DQ=0;

Delay_8tus(60); //480us~960us (必须) DQ=1; while(DQ); while(!DQ);

Delay_8tus(20); //等待应答结束 }

void Delay_8tus(unsigned int t) //延时(大约16us~24us;i++大约3us~9us)

{while(t--); }

void Write_B(unsigned char B) //写一个字节 {unsigned int k;

//判断芯片是否是好的

26

河南机电高等专科学校毕业论文

unsigned char i; for(i=0;i<8;i++) {DQ=0; k++; 为大于15us

DQ=B&0x01; B=B>>1;

Delay_8tus(6); //保证大于60us(必须) DQ=1; k++; } }

unsigned char Read_B(void) //读一个字节 {unsigned char i,j=0; unsigned int k; for(i=0;i<8;i++) {j=j>>1; DQ=0; k++; 于15us

DQ=1;

if(DQ)j=j|0x80;

Delay_8tus(6); //保证大于60us(必须) }

return(j); }

void ZhuanHuan(void) //转换温度 {ChuShiHua(); Write_B(0xcc); Write_B(0x44);

27

//要求1~15us(必须)万不可调用Delay_8tus;因

//要求1~15us(必须)万不可调用Delay_8tus;因为大

河南机电高等专科学校毕业论文

Delay_8tus(30000); //大于(精度为12时)750ms(必须) Delay_8tus(30000); }

void DuZhi(void) //读温度值 {ChuShiHua(); Write_B(0xcc); Write_B(0xbe); L=Read_B(); H=Read_B(); }

4.1.3数码管显示部分:

void display(unsigned int d) {unsigned char dg,ds,db,dq; unsigned int di ; di=d; dq=di/1000; dg=di%10;

db=(di-dq*1000)/100; ds=(di-dq*1000-db*100)/10; if(fuhao!=0)dq=10; else dq=11; if(db==0)db=11;

if(db==11){if(ds==0)ds=11;} display_h(dg); display_h(ds); display_h(db); display_h(dq); }

Unsigned char code

28

河南机电高等专科学校毕业论文

display_table[]={0x88,0xbe,0xc4,0x94,0xb2,0x91,0x81,0xbc,0x80,0x90,0xf7,0xff};

void display_h(unsigned char dh) {

unsigned char dd; unsigned char ddd; ddd=display_table[dh];

for(dd=0;dd<8;dd++) //模拟串口 {if(ddd&0x80) {P1_1=0; P1_0=1; P1_1=1; } else {P1_1=0; P1_0=0; P1_1=1; }

ddd=ddd<<1; } }

void diswendu(void) {

unsigned char z,j,i; unsigned int q=500; fuhao=H>>4;//为零才为正 z=0; j=0x10;

for(i=0;i<3;i++) {z=z+(H&0x01)*j;

29

河南机电高等专科学校毕业论文

j=j<<1; H=H>>1; } j=0x01; L=L>>4;

for(i=0;i<4;i++) {z=z+(L&0x01)*j; j=j<<1; L=L>>1; }

if(z>=20)P1_3=0; while(q--); P1_3=1; display(z); }

30

河南机电高等专科学校毕业论文

5.基于单片机的数字温度计设计系统测试与维护

5.1调试及性能分析

系统程序设计完成后,要经过多次调试、试用、修改、完善,才能趋于成熟。这也是很重要的一个环节,是确保设计质量的最后一关。如果存在某些问题,应继续修改,直到满意为止。 5.1.1单元测试

单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的。由于此程序简单,而且现在手中没有仿真器,所以首先应把各程序模块通过下载线下载到单片机中,然后观察是否能够完成相应的任务,不能则该之,重复上面的步骤,直到程序正确为止。这样做的目的是把一个复杂的任务分解成若干个简单的小任务,容易调试,便于分析。 5.1.2 系统测试

系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。

把各个程序模块组合在一起,下载到系统板上,上电观察系统运行情况,如果系统不符合要求,猜测可能出错的地方,在计算机上修改,然后重复以上步骤,直至符合要求为止。

5.2系统运行与维护

5.2.1系统的运行:

本温度设计系统的使用相应简单,程序编写成功后使用将单片机电路板插上电源后,用串口线连接至电脑后用软件写进程序,完毕后按开关键使单片机处于正常工作状态,开始在数码管上观察此单片机运行测量状态,并读数。

5.2.2 系统的维护

由于系统外部环境与内部因素的变化,不断影响系统的运行,同时需要

31

河南机电高等专科学校毕业论文

系统不断地适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。

系统的维护主要包括四个方面

① 程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。

② 数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。

③ 代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。

④ 硬件的维护:指的是对系统所使用的设备进行维护。

32

河南机电高等专科学校毕业论文

6系统评价

系统评价主要是指系统建成后,经过一段时间的运行后,要对系统目标

与功能的实现情况进行检查,并与系统开发中设立的系统预期目标进行对比,及时写出系统评价报告。

6.1系统的特点

(1)系统流程符合数字温度计的要求。 (2)操作简单易用。

(3)功能全,实现自动化数码管显示。 (4)功能可扩充性强。

6.2系统应注意的事项

DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:

(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。

(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。

(3)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。

6.3系统改进的方向

(1)停电正常工作

系统能在断电时正常工作,使用将更加方便。 (2)在外界干扰出错后能自动恢复正常

33

河南机电高等专科学校毕业论文

在外界干扰出错后能自动恢复正常,就不必要手动复位。 (3)电路元器件占空间较大,对于有的场合不适用。

将各种繁杂的电路元器件集成化,便于在小型温控地方携带与安装。

34

河南机电高等专科学校毕业论文

7总结与体会

这次的毕业设计将这三年所学的单片机和C语言以及PROTEL的理论知识用到具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力,有了以前的练习为前提做起来也比较的顺利。

不过在具体的实践的时候还是遇到了一些小的问题,比如数据类型的定义错误,字符的错误输入等等,这些虽然都是小问题,不过在具体实践过程中却浪费了不少时间,看来平时要多多的实践才是,除了要考虑问题周到还要多多注意一些细小的问题才是,做的熟练了问题也很容易的解决。

通过本次的课程设计对PROTEL的功能又多了些了解,同时也较为熟悉的掌握了C这门语言。一开始的时候遇到了不少小问题,后来多和同学讨论,多看看书,理论联系实践,许多问题就迎刃而解了。在本次的课程设计中觉得应该注意程序的设计。虽然不是很难,但很多细小的问题需要认真的对待,稍有不注意问题就会在具体的应用程序调试过程中出现,这要求在实践的过程中除了要了塌实的理论知识还要细心,有耐心。当然在本次的设计过程中还出现了其他不少的问题,问题随着设计思想的深入而不断变化,不断的产生新问题,而在这过程中不断的解决问题,正是在这一过程中,加深了对原理的认识,完善了设计思想,使自己分析问题解决问题的能力得到进一步的加强。

在本项目开发的过程中,全面实践一个基于单片机的应用系统的开发过程,学习了很多有关的知识。这样的项目对学过的单片机,程序设计,PROTEL,软件工程等课程是一个综合性很高的实践。一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始也感到很头痛。但回过头再去看有关的教科书,经过一段时间的钻研,对与这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。

另外还充分体会了从事单片机开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,自己觉得写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不

35

河南机电高等专科学校毕业论文

足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。这时候,一般是先自己通过书本,手册和资料找解决办法,实在没辙了才向专家请教。尽管向专家请教解决问题比较快,自己钻研花的时间较多,但强迫自己的思考对学习提高帮助非常大。

在开始编写程序的时候,看到别人的软件功能非常的详细,总希望自己的软件也非常的完善,但是,经过二个月的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验。认清自己的能力后,就特别注意在工作的过程中不贪图大而全,而是根据自己的能力,制定适当的目标。

反反复复的学习,辛勤努力有了回报,终于做出了一个简单的系统,虽然这个系统的功能非常的简单,而且在实际的运用中,还有些不足。比如断电后不能工作等问题。

由于知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能不够完善,界面不够醒目等问题,会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美,并希望老师批评指点。

36

河南机电高等专科学校毕业论文

致 谢

在这半年的时间内 ,本课题的设计过程中,深深地体会到“工欲善其事,必先利其器”的道理,生活中无论做什么事都应该事前有充分的准备,做到心中有数,才能更好的完成任务。

设计者不仅学会了单片机系统开发,更重要的是学到了作为一个系统开发者应有的思想和兢兢业业,奋发向上的精神,这种精神是设计者今后人生道路上的一种力量, 感谢母校——河南机电高等专科学校的辛勤培育之恩!感谢计算机科学系,给设计者提供计算机实验室很好的一个实验环境,使设计者学到了许多新的知识和操作技能。设计者非常庆幸在三年的学习、生活中认识了很多可敬的老师和可亲的同学们,并感激师友的教诲和帮助!

在本系统的设计过程和论文编写过程中,很多老师、同事和朋友都给予了我许多无私的帮助,尤其是我的指导老师李庆亮给我的设计和论文提出了很多宝贵的修改意见,在这里,我向这些无私帮助我的人表示衷心的感谢和良好的祝愿。

总之,通过这次毕业设计,受益匪浅,这主要得益于认真负责的工作态度、严谨活泼的治学精神和深厚专业的理论水平。在撰写论文之前,自己对论文的基本要求理解不是很充分,在的帮助与指导下,现在对论文有了一定的认识,对它的基本结构、所要论述的重点问题、以及撰写论文的基本步骤和评审都达到了相当的水平。无论在理论上还是在实践中,都给予了本人很大的帮助,使自己的理论和技术水平都得到很大的提高,这对于自己以后的工作和学习都是一种巨大的鼓舞。

至此,衷心感谢各位老师三年来的辛勤培育和教导!并衷心祝愿:工作顺利!身体健康!万事如意!

37

河南机电高等专科学校毕业论文

参考文献

[1]祈伟 杨亭.《单片机C51程序设计教程与实验》[M]北京:北京航空航天大学出版社,2003 年.

[2]梅丽凤.《单片机原理及接口技术》[M].北京:清华大学出版社,2004 年. [3]郭亨礼.《传感器实用电路》[M].上海:上海科学技术出版社,1992 年. [4]周航慈. 《单片机程序设计基础》[M].北京:北京航空航天大学出版社, 2003 年. [5]胡汉才.《单片机原理及其接口技术》[M].北京:清华大学出版社,1996年. [6]徐爱均.《智能化仪表原理与设计[M].北京:北京航空大学出版社,1996年. [7]公茂法.《单片机人机接口实力集》[M].北京:北京航空大学出版社,1998年. [8]李朝青.《单片机原理及其接口技术》[M].北京:北京航空大学出版社,1998年. [9]邬宽明.《单片机外围器件实用手册》[M].北京:北京航空大学出版社,1998年. [10]张毅刚,彭喜元,孟升卫,刘兆庆.《MCS-51单片机使用子程序设计》[M].哈尔滨:哈尔滨工业大学出版社,2003年.

[11]陈明荧.《8051单片机课程设计实训教材》[M].北京:清华大学出版社,2003年.

[12] 肖玲妮,袁增贵.《Protel99SE印刷电路板设计教程》[M].北京:清华大学出版社,2003年.

38

河南机电高等专科学校毕业论文

39

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务