数字温度计课程设计.doc
《数字温度计课程设计.doc》由会员分享,可在线阅读,更多相关《数字温度计课程设计.doc(33页珍藏版)》请在三一办公上搜索。
1、课程设计任务书课 程: 单片机技术 课程设计题目: 数字温度计 班 级: 姓 名: 学 号: 时 间: 指 导 教 师: 目 录第1章 设计数字温度计的任务及功能要求说明11.1、设计数字温度计的任务11.2 、数字温度计功能要求说明1第2章 数字温度计硬件系统的设计22.1、数字温度计硬件系统各模块功能简要介绍22.2、数字温度计电路原理图62.3、数字温度计PCB图62.4、数字温度计元器件布局图62.5、数字温度计元器件清单6第3章 数字温度计软件系统的设计73.1、数字温度计使用单片机资源的情况73.2、数字温度计软件系统各模块功能简要介绍及流程框图7第4章 设计结论、仿真结果154.
2、1、数字温度计的设计结论及使用说明154.2、数字温度计的仿真结果15第5章 课程设计心得体会17参考文献19附录A 数字温度计电路原理图20附录B 数字温度计PCB图(正)21附录C 数字温度计PCB图(底)22附录D 数字温度计元器件布局图23附录E 数字温度计器件清单24附录F 数字温度计源程序25第1章 设计数字温度计的任务及功能要求说明1.1、设计数字温度计的任务设计一个具有特定功能的数字温度计。该数字温度计上电或按键复位后能自动显示系统提示符“28090303”,进入准备工作状态。测量温度范围099,测量精度小数点后四位,可以通过开始和结束键控制数字温度计的工作状态。1.2 、数字
3、温度计功能要求说明数字温度计在上电或按键复位后能自动显示系统提示符“28090303”。P1口是独立式按键控制口,当按下S2键时,启动18B20并进入工作状态,并在数码管上显示即时温度,温度值可精确到小数点后四位;当按下S3键后,使18B20处于停止工作状态,并让数码管显示系统提示符。当18B20周围的温度高于温度上限值时(例如可设定温度上限值为20度),接在P3.1口的蜂鸣器报警,并且开启接P3.1口的警示灯。系统的逻辑框图如图1.1所示。图1.1 系统的逻辑框图第2章 数字温度计硬件系统的设计2.1、数字温度计硬件系统各模块功能简要介绍 数字温度计的整体硬件电路仿真图如图2.1所示。主要包
4、括单片机主板电路(复位电路和时钟电路),DS18B20电路,温度显示电路(数码管电路),按键输入电路,以及有报警作用的蜂鸣器电路和LED警示灯显示电路。图2.1 整体硬件电路(1)、单片机主板电路图2.2是单片机主板电路。包括时钟振荡电路和按键复位电路,时钟电路是由外接的晶振以及两个电容构成。晶振的两个引脚分别接在单片机的X1和X2引脚。按键复位电路是上电复位加手动复位,由单片机的RES引脚外接的电阻电容以及一个复位按键构成。另外扩展电路中,蜂鸣器电路由蜂鸣器、三极管及电阻构成。其接在单片机的P3.1口,是低电平有效。蜂鸣器可以在被测温度不在上限范围内时,发出报警鸣叫声音,接在P3.1口的LE
5、D警示灯被点亮,同时数码管显示被测量的温度值。按键输入电路是由单片机的P1口控制的,是低电平为有效信号。其图如图2.3所示。图2.2 单片机主板电路图2.3 按键输入电路(2)、显示电路数码管显示电路如图2.3所示。数码管显示电路使用的是串口显示,这种显示方式最大的优点就是使用口资源比较少,只用P0和P2口。两个四位一体共阳数码管采用动态接法,即位控并联、段控分别控制。P0口为段控口,P2口为位控口,都是低电平为有效信号。在位控口接上电阻和的三极管,期望增加驱动电流,以使数码管高亮度显示。图2.3 显示电路(3)、18B20电路 图2.4所示的18B20由P3.0口引出。DS18B20具有独特
6、的单线接口仅需要一个端口引脚进行通信,而且用户可定义报警设置。本实验中就用到了该功能,当环境的温度值超过系统设定的温度上限值时,设定了蜂鸣器和LED灯的有效程序。蜂鸣器会报警,LED灯会点亮。图2.4 DS18B20电路18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图2.5所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各
7、位的定义如图2.6所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC2.5 8字节存储器结构图TMR1R0111112.6 DS18B20字节定义当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB式表示
8、。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。另外,由于DS18B20单线通信功能是分时完成的,它
9、有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。分别说明如下:初始化:单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。ROM操作命令:总线主机检测到DS18B20的存在便可以发出ROM操作命令之一。这些命令如表2.1所示。表2.1 ROM操作命令指 令代 码Read ROM(读ROM)33HMatch ROM(匹配ROM)55HSkip ROM(跳过ROMCCHSearch
10、ROM(搜索ROM)F0HAlarm search(告警搜索)ECH存储器操作命令如表2.2所示。 表2.2 存储器操作命令指令代码Write Scratchpad(写暂存存储器)4EHRead Scratchpad(读暂存存储器)BEHCopy Scratchpad(复制暂存存储器)48HConvert Temperature(温度变换)44HRecall EPROM(重新调出)B8HRead Power supply(读电源)B4H2.2、数字温度计电路原理图见附录A。2.3、数字温度计PCB图见附录B和附录C。2.4、数字温度计元器件布局图见附录D。2.5、数字温度计元器件清单见附录E。
11、第3章 数字温度计软件系统的设计3.1、数字温度计使用单片机资源的情况 数字温度计设计使用单片机资源情况如下所述。P0口的八根口线都用于控制数码管的段空线,采用并联方式连接。P2口的八根口线都用于控制数码管的位控线,采用单独连接方式。P1口则用于控制按键电路,只用到了P1.0和P1.1口,P1.0接S2按键,做为开启键,P1.1口接S3按键,做为停止键,即按键复位状态。P3口只用到了P3.0和P3.1口,P3.0口为18B20的DQ口控制状态,低电平有效,因此要是18B20处于工作状态,P3.0口的LED灯会被点亮。P3.1口是控制蜂鸣器和警示灯的口线,是低电平有效,当蜂鸣器报警且警示灯点亮时
12、,表示温度超过系统设定的温度上限值。3.2、数字温度计软件系统各模块功能简要介绍及流程框图本次数字温度计的设计目的,主要是通过单片机控制18B20温度传感器来测量周边的环境温度。在上电复位或按键复位后显示系统提示符,通过开启和停止键来控制温度传感器的工作状态。但温度高于系统设定的温度上限值时,系统通过蜂鸣器报警,同时点亮警示灯。主要的软件模块包括主程序、18B20初始化程序、做好读温度准备子程序、读温度子程序、写温度子程序、显示子程序以及键扫描程序。他们的功能及流程框图如下所示。由于18B20是串行口,故尤其要注意时序问题,要延时以给机器足够的反应时间。(1)、主程序 主程序的功能是要操作整个
13、系统,首先要将温度传感器的DQ拉高,通过单片机P1口的按键控制18B20的工作状态。若开启键按下,则做好读温度的准备,接着是先读低位的温度值,再读高位的温度值,然后将所读的二进制温度值转换成十进制的温度值,并将温度值送往数码管显示。显示温度的过程中,若碰到温度值超过系统设定的温度上限值,则开启报警电路。若按下停止键,则显示系统提示符。流程框图如图3.1所示。3.1 主程序流程框图(2)、18B20初始化程序 由于18B20初始化过程中有复位和存在脉冲的问题,因此需多次改变DQ的状态并延时等待。首先要将DQ拉为高电平,延时几微妙。其次将DQ拉为低电平,控制器Tx“复位脉冲”延时480-960us
14、。接着又将DQ拉为高电平等待60us,最后延时让18B20输出存在脉冲。并且延时足够长,等待脉冲输出完毕。程序流程框图如图3.2所示。3.2 18B20初始化流程框图(3)、做好读温度准备子程序18B20的操作协议为规定为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。当总线主机检测到DS18B20的存在,便可以发出ROM操作命令之一即可。Skip ROM就是ROM操作指令中的一个,其代码为CCH。存储器命令中的Co
15、nvert T命令的作用是开启温度转换,其代码是44H,单线总线发出协议后,表示18B20处在读温度忙状态。最后是数据处理情况。其流程框图如图3.3所示。图3.3 做好读温度准备子程序流程框图(4)、读温度子程序 读温度的子程序中要注意控制器读数的时间间隙。根据18B20的读时序可以得知,首先应将DQ拉为高电平,一个机器周期后将其拉为低电平,然后将数据线人为拉高,为单片机检测DS18B20的输出电平作准备,接着开始读温度。利用与运算,将值从低位到高位读出,读一位则二进制数右移一位,即可读完所测温度八位数的值。读的过程中要给控制器足够的采样时间。最后延时,给机器较长的反应时间。其流程框图如图3.
16、4所示。 图3.4 读温度子程序流程框图(5)、写温度子程序 写温度的子程序与读温度的子程序类似,只需将读温度子程序中所读得的值一位一位写入。同样是先将DQ拉为高电平,再拉低,然户开始从低位到高位依次写入。由于两个写时序间至少需要1us的恢复期,所以位与位之间至少延时2us时间。最后稍作延时,给机器反应时间。其流程框图如图3.5所示。 图3.5 写温度子程序流程框图(6)、显示函数本设计中有两个显示函数,一个是按键或上电复位后的显示函数,即显示系统提示符;另一个是所测得的温度显示。温度的显示可以精确到小数点后四位,多位数据的显示可以采用数组的方式一位一位将值送往数码管显示。整个程序的开始定义了
17、一个存放显示数值代码的数组。还有一个位控的数组,用来控制数码管的每一位。将数值代码送往控制段控口的P0口,将位控值送往位控口P2口,每送一位要延时一段时间。以防有阴影,最后可将P0、P2口送“灭”的代码。程序流程框图如图3.6所示。系统提示符显示函数,是由本人设定的固定显示。将所要显示的值送往数组,然后从低位到高位依次送往P2口显示。其流程框图如图3.7所示。图3.6 数码管显示程序流程图图3.7 数码管显示系统提示符程序流程图(7)、键扫描子程序按键扫描子程序包括键值处理程序和键扫描程序。键处理程序中,首先得将P1口的电平拉高,则送往P1口的值为低电平有效,将所得的P1口的值取反后做为P1口
18、的键值。按键接在单片机的P1口,键处理将其值送往键扫描程序,判断是否有键按下,延时消抖后再判断是否有键按下,再次调P1口键处理函数,若真正有键按下,取键值并暂存。然后判断键是否松开,延时一直到键松开,再将所得的键值保存,并作为函数的返回值。其程序流程图如图3.8所示。图3.8 键扫描程序流程图第4章 设计结论、仿真结果4.1、数字温度计的设计结论及使用说明 经过制板与编程,本次设计的数字温度计能够准确达到预期的结果。能够准确的按照软件系统的设定实现其功能。该数字温度计的使用说明如下:接通电源,电源指示灯亮,表明电源正常。当系统板进入上电复位或者按键复位后,能够显示系统提示符,即为“ZB0903
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 课程设计
链接地址:https://www.31ppt.com/p-4193073.html