《2022年江苏省徐州机电工程高等职业学校大学本科方案设计书 .pdf》由会员分享,可在线阅读,更多相关《2022年江苏省徐州机电工程高等职业学校大学本科方案设计书 .pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、江苏省徐州机电工程高等职业学校毕业设计姓名:学号:系部:电气工程系专业:机电一体化设计题目: 数字温度计单片机控制系统的设计指导教师: 姜银焕职称:讲师 2012年 05 月精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 26 页江苏徐州机电工程高等职业学校毕业设计任务书系部电气工程系专业年级07 高职机电一体化 (三)班学生姓名任 务 下 达日 期: 2011 年 3 月 10 日毕业设计日期:2011 年 3 月 10 日至 2012 年 5 月 10日毕业设计题目:单片机数字温度计的设计毕业设计主要内容和要求:主要内容:要求用所学
2、知识,查阅资料,掌握数字温度计的设计原理,基于AT89S52单片机和温度传感器 DS18B20 设计一个性能稳定的温度计。毕业设计要完成相应的电路设计图,并进行调试,达到设计要求。设计要求 : 1、提供设计方案和元器件的参数。2、设计原理和依据要系统正确。3、设计的温度计能进行普通的温度测量。系主任签字:指导教师签字:江苏徐州机电工程高等职业学校毕业设计指导教师评阅书精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 26 页指导教师评语(基础理论及基本技能的掌握;独立解决实际问题的能力;研究内容的理论依据和技术方法;取得的主要成果及创新点
3、;工作态度及工作量;总体评价及建议成绩;存在问题;是否同意答辩等):本论文介绍了本论文介绍了AT89S52单片机和温度传感器DS18B20的工作原理和功能特性,利用 AT89S52单片机和温度传感器DS18B20 ,设计了一个数字温度计。该生通过毕业设计掌握了相关的理论知识,锻炼了实践操作技能,完成了相应的设计任务,毕业设计的内容正确,设计的数字温度计具有一定的理论和实际参考价值。同意答辩。成绩:指导教师签字:年月日江苏徐州机电工程高等职业学校毕业设计评阅教师评阅书评阅教师评语(选题的意义;基础理论及基本技能的掌握;综合运用所学知识解决实际问题的能力;工作量的大小;取得的主要成果及创新点;写作
4、的规范程度;总体评价及建议成绩;存在问题;是否同意答辩等):精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 26 页成绩:评阅教师签字:年月日江苏徐州机电工程高等职业学校毕业设计答辩及综合成绩答辩情况提出问题回答问题正确基本正确有一般性错误有原则性错误没有回答精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 26 页答辩委员会评语及建议成绩答辩委员会主任签字:年月日系部领导小组综合评定成绩系部领导小组负责人:年月日摘要温度是一种最基本的环境参数,人民的生活环境与温度息息相关,因此研
5、究温度的测量方法和装置具有重要意义。温度测量在工业、农业、国防等行业有着广泛的应用,而且随着科学技术的发展对温度测量的应用范围愈来愈广。利用单片机技术的温度测控系统以其体积小,可靠性高而被广泛采用。由于AT89S52 单片机可以直接应用在对温度测量的各种测温器件。本文就介绍了一种基于单片机的温度测量的方法。用此方法所设计的数字温度计,结构简单,体积较小,可靠性高,操作方便,测量精度高,只需接通电源便可进行及时有效的温度测量,在各行各业均具有较广泛的用途,发展前景良好。关键词:单片机 、DS18B20 、基于单片机的数字温度计采用温度传感器DS18B20 作为测温元件用来满足温度测量、采用的显示
6、模块为SMC1602A液晶显示器。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 26 页目录1 方案论证1 1.1 系统功能定义1 1.2 总体方案1 2 系统硬件电路2 2.1 系统硬件框图2 2.2 测温模块2 2.2.1 DS18B20 的主要特征2 2.2.2 DS18B20 的工作原理3 2.3 主控模块3 2.3.1 主控模块功能分3 2.3.2 AT89S52 芯片的功能特性4 2.4 显示模块5 2.5 报警模块6 2.6 电路原理图的绘制和电路的焊接7 2.6.1 PROTEL简介7 2.6.2 电路的焊接7 3 系
7、统软件设计8 3.1 主控程序设计.8 3.2 温度信息的采集8 3.3 温度的显示控制.11 4 调试与总结 14 感言.15 致谢.16 参考文献 .17 附录 1 系统主程序 18 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 26 页1 方案论证1.1 系统功能定义根据设计要求,可以先大致勾勒出要完成设计,需要几个模块具有如下图所示的的能,图 1.1 功能模块框图1.2 总体方案通过对系统功能的定义,可以将基于单片机的数字温度计采用温度传感器DS18B20 作为测温元件用来满足温度测量, 并将温度信号经由其本身所具有的A/D转
8、换功能 , 转换成数字信号经单片机处理显示于液晶显示器,从而完成温度的测量和显示。整个系统控制将由 AT89S52 单片机芯片为核心构成。选用DS18B20 作为测温元件,SMC1602A作为显示器件 , 各个检测信号、显示信号可由单片机的I/O 口进行。设计任务:用单片机设计一个测温范围在55125的数字温度计。设计要求:完成该系统的软硬件设计,学习掌握单片机采集温度的设计方法提高学习新知识、新技能的能力,培养独立设计的能力。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 26 页2 系统硬件电路设计2.1 系统硬件框图根据系统功能要
9、求,可以先大致勾勒出完成任务所需的系统硬件框图如下:图 2.1 硬件结构框图主控模块采用性价比较高的单片机芯片,在其内部将预设好的程序储存,可通过程序的运行控制测温模块进行测温,测温模块主要是由DS18B20构成,将其与所测对象进行接触即可获取被测对象的温度数据,报警模块只有当温度超出预定值时才会工作,而所测得的温度将通过显示模块的液晶显示器以数字形式显示。2.2 测温模块本设计的测温元件采用的是DS18B20测温元件 ,DS18B20是由 DALLAS( 达拉斯 ) 公司生产的一种温度传感器。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20很受欢迎。这是世界上
10、第一片支持“一线总线”接口的温度传感器。DS18B20数字温度计提供9 位( 二进制 )温度读数,指示器件的温度。信息经过单线接口送入 DS18B20 或从 DS18B20 送出,因此从单片机到DS18B20 仅需一条线连接即可。它可在1秒钟(典型值 ) 内把温度变换成数字。2.2.1DS18B20 的主要特征有以下几点:全数字温度转换及输出;先进的单总线数据通信;最高12位分辨率,精度可达土 0.5 ;12位分辨率时的最大工作周期为750毫秒;可选择寄生工作方式;检测温度范围为 55 +125;内置EEPROM,限温报警功能;64位光刻 ROM ,内置产品序列号,方便多机挂接;精选学习资料
11、- - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 26 页多样封装形式,适应不同硬件系统。DS18B20 芯片其封装结构如下:图 2. 2 DS18B20 芯片封装结构图由其引脚可看出 , 其 3 个引脚 : GND 为电压地直接接地; DQ 为单数据总线用来与单片机相连接 ,本系统中 DQ 与单片机 P2.2 接口连接 ,仅此一个连接就能保证DS18B20 与单片机之间的数据交换; VDD 引脚接电源电压12。2.2.2 DS18B20 的工作原理: DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。一个工作周期可分为两
12、个部分,即温度检测和数据处理。 18B20共有三种形态的存储器资源, 分别是: ROM 只读存储器,用于存放 DS18B20ID 编码,其前 8位是单线系列编码( DS18B20 的编码是 19H ),后面 48位是芯片唯一的序列号,最后8位是以上 56的位的 CRC 码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM , RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节 RAM ,每个字节为 8位。第 1、2个字节是温度转换后的数据值信息,第3、4个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。
13、第5个字节则是用户第 3个EEPROM的镜像。第 6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的 CRC 码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据, DS18B20 共3位EEPROM,并在 RAM 都存在镜像,以方便用户操作。我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20 的硬件简单结果就会导致软件的巨大开消。2.3 主控模块2.3.1 主控模块功能分析在本系统中,主控模块居于非常重要的地位。它是整个系统的中枢,系统运行所需的每个
14、操作指令都要由其发出。它一方面控制着测温模块进行温度信息的采集,另一方面也控制着显示模块的工作。最重要的是,由测温模块所采集到的温度信息必须经由主控模块的处理才能在显示模块上显示,从而使整个系统进行正常的运转和工作。针对以上分析本系统主控模块中的单片机芯片采用了AT89S52 芯片,此芯片功能强大,能够完全满足系统运行的需求。2.3.2 AT89S52 芯片的功能特性精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 26 页AT89S52是一种低功耗、高性能 CMOS8位微控制器,具有8K在系统可编程 Flash存储器。使用 Atmel公
15、司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8位CPU 和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。其主要性能如下 : 与MCS-51单片机产品兼容8K字节在系统可编程 Flash存储器1000次擦写周期全静态操作: 0Hz33Hz 三级加密程序存储器32个可编程 I/O口线三个16位定时器 /计数器八个中断源全双工 UART 串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符AT89S52 引脚结构
16、图2.3 AT89S52 引脚结构图 4 在本系统中,将 DS18B20 的单数据总线与单片机的P2.2端口相连,用一根数据线就完成了测温模块与单片机芯片的连接。2.4 显示模块本系统最突出的特点就是能方便直观地对所测温度进行读取,因此显示模块的选取极为重要。在本系统中所采用的显示模块为SMC1602A 液晶显示器。液晶显示器以其直观的显示模式,简单的软件设计从而得到了很多人的认可,逐渐占据主流地位,因此选用液精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 26 页晶显示器也更能体现当下较为先进的技术。其主要技术参数:表 2. 1 S
17、MC1602A 技术参数表SMC1602A 是 LCD1602 中的一种,它一共有16 个引脚,各引脚接口信号说明如下:表 2.2 SMC1602A 引脚说明表 SMC1602A的 714 引脚经过一个上拉排阻与单片机的P0 口相连,第 3 引脚上届一个滑动变阻器,用来调整液晶显示器的偏压信号。其基本操作时序共有4 个状态分别是 : 1 读状态 : 输入:RS=L,RW=H,E=H 输出:D0D7= 状态字2 写指令: 输入:RS=L,RW=L,D0D7= 指令码 ,E=高脉冲输出: 无3 读数据: 输入:RS=H,RW=H,E=H 输出:D0D7= 数据4 写数据: 输入:RS=H,RW=L
18、,D0D7=数据,E=高脉冲输出: 无状态字说明 : 表 2.3 SMC1602A 状态字说明表精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 26 页STA7 D7STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D2 STA1 D1 STA0 D0 表 2.4 SMC1602A 状态字功能表STD0-6当前数据地址指针的数值STA7 读写操作使能1: 禁止 0:允许对控制器每次进行读写操作之前, 都必须进行读写检测 , 确保 STA7为 0. 控制器内部带有 808 位(80 字节)的 RAM 缓冲区 ,
19、对应关系如图所示 : 图 2.5 SMC1602A 内部 RAM 缓冲区对应关系图3 2.5 报警模块本系统中报警模块采用的是蜂鸣器报警,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。在电路中用字母“H ”或“HA ”(旧标准用“ FM ”、“LB”、“JD”等)表示。蜂鸣器的结构原理1压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成
20、电路构成。当接通电源后(1.515V 直流工作电压) , 多谐振荡器起振 , 输出1.52.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。2.6 电路原理图的绘制和电路的焊接在硬件的设计前期,根据框图对电路中可能出现的电路,进行了模拟实验,并根据实精选学习资料 - -
21、- - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 26 页验结果对后期的硬件设计进行了合理化的修改完善。在第一章中已分析了系统并绘制了框图,并根据框图分别设计了各部分电路。由于温度传感器DS18B20 集成度较高 ,所以在硬件电路设计时不需要太多其他元件即可实现预期功能。因此在PROTEL 上对原理图进行了绘制,从而得出了最终的完整电路原理图附录一 。2.6.1 PROTEL 简介PROTEL 是 PORTEL公司在 80 年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA 软件的前面,是电子设计者的首选软件,它包含了电原理图绘制、
22、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server (客户 / 服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD ,PSPICE ,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的 100布通率。 Protel 99SE采用数据库的管理方式。该软件沿袭了Protel以前版本方便易学的特点,内部界面与Protel 99大体相同,新增加了一些功能模块,功能更加强大。新增的层堆栈管理功能,可以设计32 个信号层, 16 个地电层, 16 个机械层。
23、新增的3D 功能在加工印制版之前可以看到板的三维效果。其具有的打印功能,可以轻松修改打印设置控制打印结果。Protel 99SE容易使用的特性还体现在其帮助功能,按下右上角的小问号,然后输入你所要的信息,可以很快地看到特性的功能,然后用到设计中,按下状态栏末端的按钮,使用帮助顾问。2.6.2 电路的焊接当通过 PROTEL 绘制出完整的电路原理图后,就可以按照绘制好的原理图进行电路的焊接,焊接时要注意虚焊和短路情况出现。焊接是要先焊单片机的主电路,以便于对各部分电路的测试。当焊完一部分子电路后,要先输入子程序进行检测,看是否有输入或输出。焊完后,就可以进行电路总体性能测试了。在测试之前,一定要
24、先对电路检测,看是否有短路情况出现,以免芯片损坏。电源输入电压也是关键因素,在供电之前先量量。3 系统软件设计精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 26 页3.1 主控程序设计通过对系统工作原理的了解,我们可以大致知道系统软件运行工作的流程图如下:图 3. 1 系统运行流程图当接通电源开始工作后,单片机中的程序开始运行,将对DS18B20 进行初始化,以便单片机芯片和 DS18B20 达成通信协议。完成初始化后,由于本系统只有一个测温元件,单片机会向其发出跳过ROM 指令,接下来便可向其发送操作指令,设定温度上下限,启动测温
25、程序。测温过程完成后,发出温度转换指令,从而便可将温度转化成数字模式进行显示读取。3.2 温度信息的采集通过DS18B20 单线总线的所有执行处理都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和随后由从机发出的存在脉冲:1、复位:首先我们必须对 DS18B20 芯片进行复位,复位就是由控制器(单片机)给DS18B20 单总线至少 480uS的低电平信号。当 18B20 接到此复位信号后则会在1560uS 后回发一个芯片的存在脉冲。2、存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS 的低电平信号。至
26、此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20 间的数据通信。3、控制器发送 ROM 指令:双方打完了招呼之后最要将进行交流了,ROM 指令共有 5条,每一个工作周期只能发一条,ROM 指令分别是读 ROM 数据、指定匹配芯片、跳跃ROM 、芯片搜索、报警芯片搜索。各自功能如下:Read ROM (读ROM )33H (方括号中的为 16进制的命令字)这个命令允许总线控制器读到DS18B20 的64位ROM 。只有当总线上只存在一个DS18B20 的时候才可以使用此指令。Match ROM (指定匹配芯片) 55H 这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只
27、 DS18B20 时,只有与精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 26 页控制发出的序列号相同的芯片才能做出反应,其它芯片将等待下一次复位。这条指令适合单芯片和多芯片挂接。Skip ROM (跳跃 ROM 指令) CCH 这条指令使芯片不对 ROM 编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。Search ROM (搜索芯片) F0H 在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM 。Alarm Search (
28、报警芯片搜索) ECH 在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH 或小于 TL报警条件的芯片做出反应。只要芯片不掉电,报警状态将被保持,直到再一次测得温度值达不到报警条件为止。ROM 指令为 8位长度,功能是对片内的 64位光刻 ROM 进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的 ID号来区别,一般只挂接单个18B20芯片时可以跳过 ROM 指令(注意:此处指的跳过 ROM 指令并非不发送 ROM 指令,而是用特有的一条“跳过指令”)。4、控制器发送存储器操作指令:在ROM 指令发送给 18B2
29、0 之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共 6条,存储器操作指令分别是写RAM 数据、读RAM 数据、将 RAM 数据复制到 EEPROM、温度转换、将 EEPROM中的报警值复制到 RAM 、工作方式切换。Write Scratchpad (向RAM 中写数据) 4EH :这是向 RAM 中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM 之TH )和地址 3(报警 RAM 之TL)。写入过程中可以用复位信号中止写入。Read Scratchpad (从RAM 中读数据) BEH:此指令将从 RAM 中读数据,读地址从地址 0开始,一直可以
30、读到地址9,完成整个 RAM 数据的读出。芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。Copy Scratchpad (将RAM 数据复制到 EEPROM中)48H :此指令将 RAM 中的数据存入EEPROM中,以使数据掉电不丢失。此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS ,来维持芯片工作。Convert T (温度转换) 44H :收到此指令后芯片将进行一次温度转换,将转换的温度值放入 RAM 的第1、2地址。此
31、后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“ 0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS ,来维持芯片工作。Recall EEPROM (将EEPROM中的报警值复制到 RAM )B8H:此指令将 EEPROM中的报警值复制到RAM 中的第 3、4个字节里。由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“ 0”,当储存工作完成时,总线将输出“1”。另外,此指令将在芯片上电复位时将被自动执行。这样RAM 中的两个报警字节位将始终为EEPROM中数据的镜像。Read Power Supply (工
32、作方式切换) B4H:此指令发出后发出读时间隙,芯片会返回它的电源状态字,“ 0”为寄生电源状态,“ 1”为外部电源状态。存储器操作指令的功能是命令18B20 作什么样的工作,是芯片控制的关键。5、执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。 DS18B20 需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写 0、写1 、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和 DS18B20 间的任何通讯都需要以初始化序列开始。一个复位脉冲跟着一个存在脉冲表明 DS18B20 已经准备好发送和
33、接收数据(适当的ROM 命令和存储器操作命令)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 26 页DS18B20 的复位时序图 3.2 DS18B20的复位时序图DS18B20 的读时序对于 DS18B20的读时序分为读0 时序和读 1 时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15us 之内就得释放单总线,以让DS18B20把数据传输到单总线上。 DS18B20 在完成一个读时序过程,至少需要60us 才能完成。图 3.3 DS18B20 的读时序图DS18B20 的写时序:对于 DS18B20的写时
34、序仍然分为写0 时序和写 1 时序两个过程。对于DS18B20写 0时序和写1 时序的要求不同,当要写0 时序时,单总线要被拉低至少60us,保证DS18B20 能够在 15us 到 45us 之间能够正确地采样IO 总线上的“ 0”电平,当要写1 时序时,单总线被拉低之后,在15us 之内就得释放单总线。图3.4 DS18B20 的写时序图 13 3.3 温度的显示控制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 26 页当所测温度从 DS18B20 输送到单片机上之后,下一步就是要将其在液晶显示器上显示出来。首先应该对液晶显示器
35、 SMC1602A进行初始化设置,设置指令如下:表3.1 SMC1602A 的初始化设置指令表指令码功能0 0 1 1 1 0 0 0 设置 162 显示,8 位数据接口0 0 0 0 1 D C B D=1 开显示。 D=0 关显示C=1 显示光标。 C=0 不显示光标B=1 光标闪烁。 B=0 光标不显示0 0 0 0 0 1 N S N=1 当读或写一个字符后地址指针加一, 且光标加一N=0 当读或写一个字符后地址指针减一, 且光标减一S=1 当写一个字符 , 整屏显示左移 (N=1)或右移(N=0), 以得到光标不移动而屏幕移动的效果S=0 当写一个字符 , 整屏显示不移动然后进行数据
36、控制,控制器内部设有一个数据地址指针,可以通过它们来访问内部的全部80字节RAM ,其指针设置为:表3.2 SMC1602A的指针设置表指令码功能80H+ 地址码 (0H-27H,40H-67H) 设置数据地址指针一些其他设置如下:指令码功能 01H 显示清屏 : 1. 数据指针清零 2.所有显示清零 02H 显示回车 : 数据指针清零精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 26 页其初始化过程为 :延时15ms 写指令 38H(不检测忙信号 ) 延时5ms 写指令 38H(不检测忙信号 ) 延时5ms 写指令 38H(不检测
37、忙信号 ) (每次写指令 读/写数据操作之前均需检测忙信号) 写指令 38H: 显示模式设置写指令 08H: 显示关闭写指令 01H: 显示清屏写指令 06H: 显示光标移动设置写指令 0CH: 显示开及光标设置而且要使数据在液晶显示器上显示必须要按照其读写操作时序来进行,其读,写操作时序图为 : 图3.5 SMC1602A的读操作时序图图3.6 SMC1602A的写操作时序图通过严格按照 SMC1602A 的读写操作时序来处理从单片机中传输来的数据,便可使所测得精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 26 页4 调试与总结在
38、硬件电路焊接和软件程序设计分别完成的基础之上,进行软硬件的结合与调试。通过下载将在电脑上已完成的程序下载到单片机芯片中。在调试中发现软件中存在的问题,及时解决问题,确保系统能正常工作并达到设计要求。通过反复的调试与实验,可以证明该系统能够较好地完成设计所需的基本要求。即能够方便准确的对被测对象进行温度测量。同时在完成设计要求的前提下,充分考虑到了外观,成本等问题,在性能和价格之间作了比较好的平衡。虽然整体性能良好,但尚存在些许不足,系统稳定性不够,需要增强自己的焊接水平以便以后避免出现类似问题。本温度采集系统实用性强,结构较为简单,成本低,外接元件少。在实际应用中工作性能稳定,测量温度准确,精
39、度较高。系统在硬件设计上充分考虑到了可扩展性,经过一定的添加或改造,很容易增加功能,如从单片机主芯片串行口连接RS232 转换芯片MAX232 与PC 机相连,完成温度实时数据的传递和其他控制工作。也可与无线装置进行连接,实现远距离异地测温。本系统适用范围广泛,可以单独使用作为监控仪,应用于农业温室大棚监测植物生长的环境变化,工业厂房测量各部分的工作温度等等。也可以作为智能控制系统的一部分,与其它设备协同工作。系统移植性强,只需改变前端测量用的传感器类型,可在此基础上修改为其他非电量参数的测量系统。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1
40、9 页,共 26 页感言通过此次毕业设计 , 我学到了很多知识。在实物的设计和论文的写作过程中, 通过查资料和搜集有关的文献 , 培养了自学能力。通过对硬件电路的设计和焊接,增强了自己的动手能力。并且由原来的被动接受知识转换为主动的寻求知识,学会了更好地让所学知识与实践相结合,让书本上的知识与实际生活中的具体应用相结合。让自己切实感觉到了学有所用。并在此期间巩固复习了在校4年内学过的知识,尤其是单片机和模电,数电方面的知识。同时通过这次毕业设计提高了自己的单片机编程的能力,尤其是获得的软件调试经验,同时也让自己知道了自己不足和缺陷,从而为自己能更好的改进提供了帮助。精选学习资料 - - - -
41、 - - - - - 名师归纳总结 - - - - - - -第 20 页,共 26 页致谢经过五年的学习,现在终于要毕业了。在学习期间经历了风风雨雨,在各位老师和同学的帮助和支持下最终得以顺利完成。在此,首先感谢我的老师,感谢各位老师这五年中在学习中、生活上的关心和照顾;其次感谢各位同学,同学们在生活中给予很大的帮助,在学习上也给极大的鼓舞。指导老师治学严谨,学识渊博,平易近人,在我做设计和论文期间对我的教诲和指导将使我终生受益。无论是在平时的阶段,还是在论文的选题、资料查询、开题、研究、设计和撰写的每一个环节,都得到导师的悉心指导和帮助。借此机会向老师表示衷心的感谢!在毕业设计的这段时间里
42、,其他老师们也都言传身教,以他们广博的知识,敏锐的洞察力,多年的教案和实际工作经验,在毕业设计上给予我很大的帮助。在本次设计中我学到的不仅是科学知识和工作方法,更学到了作为一个研究人员应有的治学态度以及为人处世的道理,这一切都将使我终身受益。谨在此向老师致以崇高的敬意和衷心的感谢!感谢几年来传授我知识的老师们,更要感谢我的家人对我学业上的支持和鼓励,感谢所有关心帮助过我的人。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 26 页参考文献 1 谭浩强 C程序设计清华大学出版社 1999.12 2 李群芳 肖看 单片机原理 , 接口及应
43、用清华大学出版社 2005.3 3 张义和 王敏男 例说 51 单片机人民邮电出版社 2008.4 4 蔡美琴 张为民 MCS-51系列单片机系统及其应用高等教育出版社 1992 5 高峰 单片微机应用系统设计及实用技术机械工程出版社 2004 6 杨全胜 现代微机原理与接口技术电子工业出版社 2004 7 全国大学生电子设计竞赛组委会全国大学生电子设计竞赛获奖作品精选 (19941999) 北京理工大学出版社 2003. 8 谢淑如 郑光钦 杨渝生 Protel PCB 99SE 电路版设计清华大学出版社9 何立民 单片机应用技术选编北京航空航天大学出版社,1993.2 10 段九洲 放大电
44、路实用设计手册辽宁科学技术出版社, 2002.5 11 李炎清 毕业论文写作与范例厦门大学出版社 2006.10 12 Based on 89c51+DS18B20 warm controlling development13 The principle and application of 1-wire digital temperature sensor DS18B20 14 Temperature Measure System Base on 51 Single Chip精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 26 页附
45、录一系统主程序#include sbit lcden=P34。 sbit lcdrs=P35。 sbit dq=P23。#define uint unsigned int #define uchar unsigned char uchar flag。void delay(uint x) uint i,j。for(i=0。ix。i+) for(j=0。j120。j+)。 /延迟函数, x=1大约延迟 1ms void delay_us(uint x) while(x-) 。 /延迟函数, x=1大约延迟 8us void write_com(uchar com) lcdrs=0。精选学习资料 -
46、 - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 26 页delay(1)。lcden=1。P0=com。delay(1)。lcden=0。 void write_data(uchar dat) lcdrs=1。delay(1)。P0=dat。lcden=1。delay(1)。lcden=0。 void write(uchar dat) uchar i。for(i=0。i=1。 /写指令函数,每次写入一个字节dat void write_word(uchar *s) while(*s0) write_data(*s)。s+。 void init() d
47、uan=0。wei=0。lcden=0。write_com(0 x38)。 /显示模式设定write_com(0 x0c)。 /开关显示、光标有无设置、光标闪烁设置write_com(0 x06)。/写一个字符后指针加一write_com(0 x01)。/清屏指令精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 26 页 void init_dq() dq=1。delay_us(1)。/拉高一段时间dq=0。delay_us(60)。/延时480us 以上dq=1。while(dq)。/等待存在脉冲delay_us(10)。/存在脉冲存
48、活时间dq=1。 /拉高总线 uint read() uchar i。uint dat。for(i=0。i1)|0 x8000。 else dat=1。dq=1。delay_us(1)。 return(dat)。 /读函数,每次返回 16位的温度值uint readtemperature() uint temp。float m。init_dq()。write(0 xcc)。/跳过读ROM write(0 x44)。/启动温度转换init_dq()。write(0 xcc)。write(0 xbe)。/读取温度寄存器temp=read()。if(temp0 xfff) flag=1。精选学习资料
49、 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 26 页temp=(temp)+1。 else flag=0。 m=temp*0.0625。temp=m*10+0.5。/放大10倍四舍五入输出return(temp)。 /读取温度函数,返回温度的绝对值,并标注 flag,flag=1表示负, flag=0表示正void main() uint temper。uchar temper_ge,temper_shi,temper_bai 。init()。write_com(0 x80+0 x44)。/设置指针位置write_word(I LOVE SI
50、AS!) 。write_com(0 x84)。write_data(0 xdf)。write_word(C) 。while(1) temper=readtemperature() 。temper_ge=temper%10 。temper_shi=temper%100/10 。temper_bai=temper/100 。write_com(0 x80)。if(flag=0) write_data(temper_bai+0 x30) 。write_data(temper_shi+0 x30) 。write_data(.)。write_data(temper_ge+0 x30) 。 else 精选