物电学院课程设计报告_第1页
物电学院课程设计报告_第2页
物电学院课程设计报告_第3页
物电学院课程设计报告_第4页
物电学院课程设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、江苏师范大学物电学院课程设计报告课 程 名 称: 嵌入式 题 目: 人工智能时钟温度计 专 业 班 级: 09物31 学 生 姓 名: 王楠 学 生 学 号: 09223005 日 期: 2012年7月1日 指 导 教 师: 杨增汪 物电学院教务部印制一、课程设计目的、任务和内容要求:温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统

2、。数字式温度计的设计在现实生活中具有一定的深远的意义。本课程设计的任务就是设计一个人工智能的控制系统,具有时钟显示,温度过限报警,实时温度显示等功能。具体设计任务如下: 1熟悉温度计以及时钟的工作原理; 2写出智能温度计的设计方案;3用硬件加以实现;4软件编写与调试5.写课程设计报告。设计要求:1.一般情况下,基本测温范围为-50-1102.测温精度误差小于0.53.LCD液晶直读显示日期与实时时间4.可以任意设定温度的上下限并可实现过限报警功能 二、进度安排:第3天: 查找资料,熟悉智能时钟温度计的设计原理,给出设计总体方案;第45天: 各模块的详细设计;第612天: 硬件连线,程序编写并进

3、行调试;第1314天:写课程设计报告。三、主要参考文献:1谢自美. 电子线路设计-实验-测试M .武汉:华中科技大学出版社, 20002楼然苗. 单片机课程设计指导.北京;航空航天大学出版社,20053童诗白. 模拟电子技术基础.北京:高等教育出版社,20044郭天祥. 51单片机C语言教程入门、提高、拓展全攻略.北京:电子工艺出版社,20075.陆应华. 电子系统设计教程.北京:国防工业出版社,20086.苏家健. 单片机原理及应用技术.北京:高等教育出版社,2006 指导教师签字: 年 月 江苏师范大学物理与电子工程学院课程设计报告目录摘 要 IIAbstract . II1 绪论. 11

4、1 引言. 12 设计方案简述 . 22.1数字温度计设计方案论证. 2 2.2方案二的总体设计框图. 23 详细设计. 33.1 HCS08 CPU 简介 . 3 3.2温度传感器简介 . 5 4 设计结果及分析. 84.1 硬件设计. 8 4.2软件设计. 10参考文献 . 12 摘 要我们设计的LCD时钟温度系统是由中央控制器、温度检测器、时钟系统、存储器、显示器及键盘部分组成。控制器采用单片机MC9S08QG8,温度检测部分采用DS18B20温度传感器,时钟系统用系统内部时钟产生,用LCD液晶1602作为显示器。单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;温度传感

5、器DS18B20采集温度信号送该给单片机处理,存储器通过单片机对某些时间点的数据进行存储;单片机再把时间数据和温度数据送液晶显示器1602显示,1602还可以显示图形;键盘是用来调时和温度查询的。AbstractThe LCD clock and temperature system we designed is made up with the central controller, temperature detector, clock system, memory device, display part and keyboard parts. By single chip microc

6、omputer controller MC9S08QG8,the temperature measurement of the temperature sensor DS18B20, clock system with the clock , with LCD 1602 as display part. Single chip microcomputer chip DS1302 get through clock time data, to the data processing show time; Temperature sensor DS18B20 collection temperat

7、ure signal to send the SCM processing, storage through the single chip for some time point of the data storage; Single-chip microcomputer and time data and temperature data to send 1602 LCD display,1602 can also display characters; The keyboard is used to tune in and the temperature inquires. - 16 -

8、1 绪论11 引言随着人们生活水平的不断提高、时代的进步和发展,单片机控制无疑是人们追求的目标之一,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活,提供更好的更方便的设施就需要从嵌入式技术入手,一切向着数字化控制,智能化控制方向发展。本文将介绍一种基于嵌入式系统控制的数字温度计,本温度计属于多功能温度计,不仅可以实现实时温度还可以显示日期与时间,此外还可以设置上下报警温度,当温度不在设置范围内时,可以及时报警。本设计所介绍的数字温度计与传统的

9、温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。该设计控制器使用单片机MC9S08QG8,测温传感器使用DS18B20,用1602LCD液晶实现温度显示,能准确达到以上要求,精确测量温度。2 设计方案简述2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用A/D转换电路,比较麻烦。2.1.2 方案二 进而考虑到用温度传感器,在单

10、片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单。2.2方案二的总体设计框图主 控 制 器LCD显 示温 度 传 感 器单片机复位内部时钟温度过限报警 图1总体设计方框图温度计电路设计总体设计方框图如图1所示,控制器采用飞思卡尔单片机MC9S08QG8,温度传感器采用DS18B20,用1602液晶以实现温度显示。3 详细设计3.1 HCS08 CPU 简介 HCS08 CPU与M68HC08 CPU的

11、指令系统完全相同,且目标代码与M68HC08完全兼容。同时增加了一些指令和增强了寻址模式以增加C编译器效率,且支持一个新的背景调试系统,能够代替早期M68HC08微处理器的监测模式。HCS08 CPU的特点包括:目标代码完全向上兼容M68HC05和M68HC08家族所有寄存器和存储器映射在单块64 Kbyte地址空间16位堆栈指针SP(64 Kbyte地址空间中的任意大小堆栈)16位索引寄存器(H:X)的强大的寻址索引模式多种寻址模式8位累加器(A) 支持存储器到存储器的数据传送高效的位操作指令快速的8位乘8位和16位除以 8位指令 STOP和WAIT指令唤醒低功耗运行状态CPU寄存器3.1.

12、1累加器 (A)累加器A是一个通用8位寄存器。经常用于暂存一个输入到算术逻辑单元(ALU)的操作数,并且用于存放(ALU)的计算结果。复位对累加器A的内容没有影响。索引寄存器(H:X)这个16位寄存器实际上分为两个8位寄存器(H和X),它们作为一个16位的地址指针一起工作,H存放一个地址的高位字节和X存放地址的低位字节。所有索引寻址模式指令利用H:X中全部16位值作为一个索引参考指针;然后,为了与早先 M68HC05家族兼容,一些指令只在低8位(X)中运行,并且H在复位过程中强制为0x00。复位对X的内容没有影响。3.1.2堆栈指针(SP)16位地址指针寄存器指向下一个有效的堆栈位置。堆栈可以

13、放置在包含RAM的 64 Kbyte地址空间的任意位置,其大小可以为任何RAM中的有效值。堆栈用来自动保存子程序调用的返回地址、中断中CPU寄存器和局部变量的返回地址。AIS(立即加堆栈指针,堆栈处理指令)指令对SP加上一个8位有符号立即数。这经常用于对堆栈中的局部变量分配和取消分配空间。向下生长型(飞思卡尔单片机) 25F特性:先压后减,先加后弹3.1.3程序计数器(PC)程序计数器是个16位的寄存器,存放取出的下一个指令或操作数的地址。正常的程序执行期间,每一次取出指令或者操作数时,程序计数器自动加一指向后续的存储器位置。跳转、分支、中断和返回操作程序计数器加载地址不是下一个后续位置。复位

14、期间,程序计数器加载位于$FFFE和$FFFF的复位矢量(这点与51的差别很大,PC不是装载$FFFE,而是装载$FFFE和$FFFF 中存放的内容)。该处的矢量地址是退出复位状态后被执行的第一条指令的地址。3.1.4条件代码寄存器(CCR)8位条件代码寄存器存放中断屏蔽位(I)和5个指出刚执行指令结果的标志。第5和第6位永远设置为1。如图:进/借标志当一个加法操作产生一个对第7位累加需要进位或者一个减法操作要求一个借位,则置本位为1。一些指令,如位测试和分支,移位和旋转也会影响进/借标志。0第7位没有产生进/位1第7位产生进/位 置零标志当一个算术操作,逻辑操作或数据处理产生一个0x00或0

15、x0000的结果,则将该位置1。如果加载或存储的值为0,简单的加载或存储一个引起Z置1。 0 NUMn-zero result1 Zero result 负数标志当一个算术操作,逻辑操作或者数据处理产生一个负数结果,则会设置结果的第7位,并且CPU将负数标志位置1。如果加载或存储的最高位为1,同样会将N置1。0非负数结果1负数结果 中断屏蔽位当设置中断屏蔽,所有可屏蔽的 CPU中断将被屏蔽.当中断屏蔽被清除时使能。当产生一个CPU中断,中断屏蔽被保存到堆栈,但是在中断服务子程序第一 条指令执行前自动置1。这确保了CLI或TAP之后的下一条指令总会被执行,而不会出现如果I置1而发生插入中断的可能

16、性。0中断使能1中断屏蔽半进位标志当在累加器第3位和第4位之间在不带进位加法(ADD)或者带进位加(ADC)操作时发生半进位,则CPU置该标志为1。二进制编码的十进制(BCD)运算将用到半进位标志。另外DAA指令也会根据条件代码位H和C的状态,自动加一个修正值到先前的ADD或ADC的BCD运算,以修正结果为一个正确的BCD值。0第3位和第4位之间没有进位1第3位和第4位之间有进位 二进制补码溢出标志当发生一个二进制补码溢出,CPU置这位为1。符号分支指令BGT,BGE, BLE和BLT将会用到溢出标志位。0没有溢出1 有溢出V=6C7C3.2温度传感器简介 3.2.1温度传感器DS18B20温

17、度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。单总线通常要求外接一个约为 4.7K10K 的上拉电阻,这样,当总线闲置时其状态为高电平。独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85C 范围内,精度为

18、0.5C 。可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用脚PR35封装或脚SOIC封装。DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM 、温度传感器、非挥发的温度报警触发器 TH 和 TL 、配置寄存器。光刻 R

19、OM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址码。 64 位光刻 ROM 的排列是:开始 8 位(地址: 28H )是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,并且每个 DS18B20 的序列号都不相同,因此它可以看作是该 DS18B20 的地址码;最后8位则是前面 56 位的循环冗余校验码。由于每一个 DS18B20 的 ROM 数据都各不相同,因此微控制器就可以通过单总线对多个 DS18B20 进行寻址,从而一根总线上挂接多个 DS18B20 的目的。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温

20、触发器TL配置寄存器8位CRC发生器VddI/O图64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精

21、度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图3 DS18B20字节定义由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到

22、温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。表1 DS18B20温度转换时间表 DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因

23、此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前

24、,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表2一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0

25、H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读

26、写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。指定名称指令代码指令功能读ROM33H读DS18B20码ROM匹配55H发出此命令后,接着发出位编码,访问单总线上与编码相对应DS18B20使之作出响应,为下一步对该DS18B20读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别位地址,为操作各器件作好准备跳过ROM0CCH忽略地址,直接向DS18B20发温度变换指令,适用于单片机工作警报搜索0CH该指令执行后,只有温度超过设定上下限时作出响应让DS18B20进行一次温度的

27、转换,那具体的操作就是:1、主机先作个复位操作,2、主机再写跳过ROM的操作(CCH)命令,3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成转换的操作。在这里要注意的是每个命令字节在写的时候都是低字节先写。读取RAM内的温度数据。同样,这个操作也要接照三个步骤。1、主机发出复位操作并接收DS18B20的应答(存在)脉冲。2、主机发出跳过对ROM操作的命令(CCH)。3、主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可

28、。同样读取数据也是低位在前的。指令名称指令代码指令功能温度变换启动进行温度转换,转换时间最长为,结果存入内部字节中读暂存器读内部中字节的内容写暂存器发出内部的第,字节上,下限温度数据指令,紧跟该命令之后,是传送两字节数据复制暂存器将中第,字节的内容复制到中重调中的内容恢复到中的第,字节读供电方式读的供电模式,寄生供电时发送,外接电源供电发送“”4 设计结果及分析4.1 硬件设计 4.1.1主板电路系统整体硬件电路包括,传感器数据采集电路,背景调试电路、温度显示电路,上下限报警调整电路,单片机主板电路等,如图4所示。图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LCD将没有被

29、测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。2.4.2 显示电路显示电路是使用的LCD1602液晶显示,这种显示最大的优点就是使用字符型显示,可以显示两行,第一行显示日期与当前时间,第二行显示当前温度,当DS18B20出现显示错误时第二行温度不显示会出现错误提示,此款液晶功耗低,操作方便,显示相当清晰。 图4 嵌入式时钟温度计硬件设计电路图4.2软件设计初始化调用显示子程序1S到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY 图5 主程

30、序流程图发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束图6 温度转换流程图4.1.2温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图6所示4.1.3 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图8所示。 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显

31、示百位数显示数据(不显示符号) 结束NNYY 图7计算温度流程图 图8显示数据刷新流程图5 总结经过将近两周的单片机课程设计,终于完成了我的多功能数字时钟温度计的设计,经过一个学期的学习,设计出自己的设计从心底里说,的确令人兴奋,毕竟这次设计把理论学习与动手实践相结合,并且对于过程中出现的问题能够自己成功解决的一个过程,高兴之余同样需要放思!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过许多程序,但我觉的写好一个程序并不是一件简单的事。举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论