物电学院课程设计报告.docx

上传人:b****7 文档编号:9252560 上传时间:2023-02-03 格式:DOCX 页数:26 大小:350.24KB
下载 相关 举报
物电学院课程设计报告.docx_第1页
第1页 / 共26页
物电学院课程设计报告.docx_第2页
第2页 / 共26页
物电学院课程设计报告.docx_第3页
第3页 / 共26页
物电学院课程设计报告.docx_第4页
第4页 / 共26页
物电学院课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

物电学院课程设计报告.docx

《物电学院课程设计报告.docx》由会员分享,可在线阅读,更多相关《物电学院课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。

物电学院课程设计报告.docx

物电学院课程设计报告

 

江苏师范大学物电学院

课程设计报告

 

课程名称:

嵌入式

题目:

人工智能时钟温度计

专业班级:

09物31

学生姓名:

王楠

学生学号:

09223005

日期:

2012年7月1日

指导教师:

杨增汪

 

物电学院教务部印制

一、课程设计目的、任务和内容要求:

温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。

而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。

针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。

数字式温度计的设计在现实生活中具有一定的深远的意义。

本课程设计的任务就是设计一个人工智能的控制系统,具有时钟显示,温度过限报警,实时温度显示等功能。

具体设计任务如下:

1.熟悉温度计以及时钟的工作原理;

2.写出智能温度计的设计方案;

3.用硬件加以实现;

4.软件编写与调试

5.写课程设计报告。

设计要求:

1.一般情况下,基本测温范围为-50℃-110℃

2.测温精度误差小于0.5℃

3.LCD液晶直读显示日期与实时时间

4.可以任意设定温度的上下限并可实现过限报警功能 

 

二、进度安排:

第1~3天:

查找资料,熟悉智能时钟温度计的设计原理,给出设计总体方案;

第4~5天:

各模块的详细设计;

第6~12天:

硬件连线,程序编写并进行调试;

第13~14天:

写课程设计报告。

三、主要参考文献:

1.谢自美.电子线路设计-实验-测试[M].武汉:

华中科技大学出版社,2000

2.楼然苗.单片机课程设计指导.北京;航空航天大学出版社,2005

3.童诗白.模拟电子技术基础.北京:

高等教育出版社,2004

4.郭天祥.51单片机C语言教程——入门、提高、拓展全攻略.北京:

电子工艺出版社,2007

5.陆应华.电子系统设计教程.北京:

国防工业出版社,2008

6.苏家健.单片机原理及应用技术.北京:

高等教育出版社,2006

 

指导教师签字:

年月

目录

摘要………………………………………………………………………………………II

Abstract…………………………………………………………………………………...II

1绪论…………………….……………………………………..……………….………1

1.1引言…………………………………………………………………………………..1

2设计方案简述………………………………………..………………….………….2

2.1数字温度计设计方案论证……………………………..………………………….…2

2.2方案二的总体设计框图…………………………..………………………….………2

3详细设计……………………………………………………………..………………..3

3.1HCS08CPU简介……………………………………..………………………….…3

3.2温度传感器简介………………………………………..………………………….…5

4设计结果及分析………………………………………………..…….………………..8

4.1硬件设计………………………………….………………………………..….………8

4.2软件设计………………………………………………..………………………….…10

参考文献…….………………..………………………………..………………………….12

 

 

摘要

我们设计的LCD时钟温度系统是由中央控制器、温度检测器、时钟系统、存储器、显示器及键盘部分组成。

控制器采用单片机MC9S08QG8,温度检测部分采用DS18B20温度传感器,时钟系统用系统内部时钟产生,用LCD液晶1602作为显示器。

单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;温度传感器DS18B20采集温度信号送该给单片机处理,存储器通过单片机对某些时间点的数据进行存储;单片机再把时间数据和温度数据送液晶显示器1602显示,1602还可以显示图形;键盘是用来调时和温度查询的。

 

Abstract

TheLCDclockandtemperaturesystemwedesignedismadeupwiththecentralcontroller,temperaturedetector,clocksystem,memorydevice,displaypartandkeyboardparts.BysinglechipmicrocomputercontrollerMC9S08QG8,thetemperaturemeasurementofthetemperaturesensorDS18B20,clocksystemwiththeclock,withLCD1602asdisplaypart.SinglechipmicrocomputerchipDS1302getthroughclocktimedata,tothedataprocessingshowtime;TemperaturesensorDS18B20collectiontemperaturesignaltosendtheSCMprocessing,storagethroughthesinglechipforsometimepointofthedatastorage;Single-chipmicrocomputerandtimedataandtemperaturedatatosend1602LCDdisplay,1602canalsodisplaycharacters;Thekeyboardisusedtotuneinandthetemperatureinquires.

1绪论

1.1引言

随着人们生活水平的不断提高、时代的进步和发展,单片机控制无疑是人们追求的目标之一,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活,提供更好的更方便的设施就需要从嵌入式技术入手,一切向着数字化控制,智能化控制方向发展。

本文将介绍一种基于嵌入式系统控制的数字温度计,本温度计属于多功能温度计,不仅可以实现实时温度还可以显示日期与时间,此外还可以设置上下报警温度,当温度不在设置范围内时,可以及时报警。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。

该设计控制器使用单片机MC9S08QG8,测温传感器使用DS18B20,用1602LCD液晶实现温度显示,能准确达到以上要求,精确测量温度。

2设计方案简述

2.1数字温度计设计方案论证

2.1.1方案一

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用A/D转换电路,比较麻烦。

2.1.2方案二

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单。

2.2方案二的总体设计框图

 

图1 总体设计方框图

温度计电路设计总体设计方框图如图1所示,控制器采用飞思卡尔单片机MC9S08QG8,温度传感器采用DS18B20,用1602液晶以实现温度显示。

3详细设计

3.1HCS08CPU简介

HCS08CPU与M68HC08CPU的指令系统完全相同,且目标代码与M68HC08完全兼容。

同时增加了一些指令和增强了寻址模式以增加C编译器效率,且支持一个新的背景调试系统,能够代替早期M68HC08微处理器的监测模式。

HCS08CPU的特点包括:

▪目标代码完全向上兼容M68HC05和M68HC08家族

▪所有寄存器和存储器映射在单块64Kbyte地址空间

▪16位堆栈指针SP(64Kbyte地址空间中的任意大小堆栈)

▪16位索引寄存器(H:

X)的强大的寻址索引模式

▪多种寻址模式

▪8位累加器(A)

▪支持存储器到存储器的数据传送

▪高效的位操作指令

▪快速的8位乘8位和16位除以8位指令

▪STOP和WAIT指令唤醒低功耗运行状态

CPU寄存器

3.1.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位地址指针寄存器指向下一个有效的堆栈位置。

堆栈可以放置在包含RAM的64Kbyte地址空间的任意位置,其大小可以为任何RAM中的有效值。

堆栈用来自动保存子程序调用的返回地址、中断中CPU寄存器和局部变量的返回地址。

AIS(立即加堆栈指针,堆栈处理指令)指令对SP加上一个8位有符号立即数。

这经常用于对堆栈中的局部变量分配和取消分配空间。

向下生长型(飞思卡尔单片机)25F

特性:

先压后减,先加后弹

3.1.3程序计数器(PC)

程序计数器是个16位的寄存器,存放取出的下一个指令或操作数的地址。

正常的程序执行期间,每一次取出指令或者操作数时,程序计数器自动加一指向后续的存储器位置。

跳转、分支、中断和返回操作程序计数器加载地址不是下一个后续位置。

复位期间,程序计数器加载位于$FFFE和$FFFF的复位矢量(这点与51的差别很大,PC不是装载$FFFE,而是装载$FFFE和$FFFF中存放的内容)。

该处的矢量地址是退出复位状态后被执行的第一条指令的地址。

3.1.4条件代码寄存器(CCR)

8位条件代码寄存器存放中断屏蔽位(I)和5个指出刚执行指令结果的标志。

第5和第6位永远设置为1。

如图:

进/借标志—当一个加法操作产生一个对第7位累加需要进位或者一个减法操作要求一个借位,则置本位为1。

一些指令,如位测试和分支,移位和旋转也会影响进/借标志。

0第7位没有产生进/位

1第7位产生进/位

置零标志—当一个算术操作,逻辑操作或数据处理产生一个0x00或0x0000的结果,则将该位置1。

如果加载或存储的值为0,简单的加载或存储一个引起Z置1。

0NUMn-zeroresult

1Zeroresult

负数标志—当一个算术操作,逻辑操作或者数据处理产生一个负数结果,则会设置结果的第7位,并且CPU将负数标志位置1。

如果加载或存储的最高位为1,同样会将N置1。

0非负数结果

1负数结果

中断屏蔽位—当设置中断屏蔽,所有可屏蔽的CPU中断将被屏蔽.当中断屏蔽被清除时使能。

当产生一个CPU中断,中断屏蔽被保存到堆栈,但是在中断服务子程序第一条指令执行前自动置1。

这确保了CLI或TAP之后的下一条指令总会被执行,而不会出现如果I置1而发生插入中断的可能性。

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=6C⊕7C

3.2温度传感器简介

3.2.1温度传感器

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

●单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。

●单总线通常要求外接一个约为4.7K—10K的上拉电阻,这样,当总线闲置时其状态为高电平。

●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

●无须外部器件;

●测量温度范围宽,测量精度高DS18B20的测量范围为-55℃~+125℃;在-10~+85°C范围内,精度为±0.5°C。

●可通过数据线供电,电压范围为3.0~5.5V;

●零待机功耗;

●温度以9或12位数字;

●用户可定义报警设置;

●负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

●掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20采用3脚PR-35封装或8脚SOIC封装。

●DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

●光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址码。

64位光刻ROM的排列是:

开始8位(地址:

28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,并且每个DS18B20的序列号都不相同,因此它可以看作是该DS18B20的地址码;最后8位则是前面56位的循环冗余校验码。

由于每一个DS18B20的ROM数据都各不相同,因此微控制器就可以通过单总线对多个DS18B20进行寻址,从而一根总线上挂接多个DS18B20的目的。

 

 

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图3所示。

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图3所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

温度LSB

温度MSB

TH用户字节1

TL用户字节2

配置寄存器

保留

保留

保留

CRC

 

图3 DS18B20字节定义

由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

表2是一部分温度值对应的二进制温度数据。

表1DS18B20温度转换时间表

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。

若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。

因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

表2 一部分温度对应值表

温度/℃

二进制表示

十六进制表示

+125

0000011111010000

07D0H

+85

0000010101010000

0550H

+25.0625

0000000110010000

0191H

+10.125

0000000010100001

00A2H

+0.5

0000000000000010

0008H

0

0000000000001000

0000H

-0.5

1111111111110000

FFF8H

-10.125

1111111101011110

FF5EH

-25.0625

1111111001101111

FE6FH

-55

1111110010010000

FC90H

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。

系统对DS18B20的各种操作按协议进行。

操作协议为:

初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

指定名称

指令代码

指令功能

读ROM

33H

读DS18B20ROM码

ROM匹配

55H

发出此命令后,接着发出64位ROM编码,访问单总线上与编码相对应DS18B20使之作出响应,为下一步对该DS18B20读写作准备

搜索ROM

0F0H

用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备

跳过ROM

0CCH

忽略64ROM地址,直接向DS18B20发温度变换指令,适用于单片机工作

警报搜索

0CH

该指令执行后,只有温度超过设定上下限时作出响应

让DS18B20进行一次温度的转换,那具体的操作就是:

1、主机先作个复位操作,

2、主机再写跳过ROM的操作(CCH)命令,

3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成

转换的操作。

在这里要注意的是每个命令字节在写的时候都是低字节先写。

读取RAM内的温度数据。

同样,这个操作也要接照三个步骤。

1、主机发出复位操作并接收DS18B20的应答(存在)脉冲。

2、主机发出跳过对ROM操作的命令(CCH)。

3、主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。

如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。

同样读取数据也是低位在前的。

指令名称

指令代码

指令功能

温度变换

44H

启动DS18B20进行温度转换,转换时间最长为500ms,结果存入内部9字节RAM中

读暂存器

0BEH

读内部RAM中9字节的内容

写暂存器

4EH

发出内部RAM的第3,4字节上,下限温度数据指令,紧跟该命令之后,是传送两字节数据

复制暂存器

48H

将RAM中第3,4字节的内容复制到EEPROM中

重调EEPROM

0B8H

EEPROM中的内容恢复到RAM中的第3,4字节

读供电方式

0B4H

读DS18B20的供电模式,寄生供电时DS18B20发送"0",外接电源供电DS18B20发送“1”

4设计结果及分析

4.1硬件设计

4.1.1主板电路

系统整体硬件电路包括,传感器数据采集电路,背景调试电路、温度显示电路,上下限报警调整电路,单片机主板电路等,如图4所示。

图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LCD将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。

按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。

2.4.2显示电路

显示电路是使用的LCD1602液晶显示,这种显示最大的优点就是使用字符型显示,可以显示两行,第一行显示日期与当前时间,第二行显示当前温度,当DS18B20出现显示错误时第二行温度不显示会出现错误提示,此款液晶功耗低,操作方便,显示相当清晰。

 

图4嵌入式时钟温度计硬件设计电路图

4.2软件设计

 

图5主程序流程图

 

图6温度转换流程图

4.1.2温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。

温度转换命令子程序流程图如

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1