




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书课 程: 单片机技术 课程设计题目: 数字温度计 班 级: 姓 名: 学 号: 时 间: 指 导 教 师: 31目 录第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.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 、数字温度计功能要求说明数字温度计在上电或按键复位后能自动显示系统提示符“28090303”。p1口是独立式按键控制口,当按下s2键时,启动18b20并进入工作状态,并在数码管上显示即时温度,温度值可精确到小数点后四位;当按下s3键后,使18b20处于停止工作状态,并让数码管显示系统提示符。当18b20周围的温度高于温度上限值时(例如可设定温度上限值为20度),接在p3.1口的蜂鸣器报警,并且开启接p3.1口的警示灯。系统的逻辑框图如图1.1所示。图1.1 系统的逻辑框图第2章 数字温度计硬件系统的设计2.1、数字温度计硬件系统各模块功能简要介绍 数字温度计的整体硬件电路仿真图如图2.1所示。主要包括单片机主板电路(复位电路和时钟电路),ds18b20电路,温度显示电路(数码管电路),按键输入电路,以及有报警作用的蜂鸣器电路和led警示灯显示电路。图2.1 整体硬件电路(1)、单片机主板电路图2.2是单片机主板电路。包括时钟振荡电路和按键复位电路,时钟电路是由外接的晶振以及两个电容构成。晶振的两个引脚分别接在单片机的x1和x2引脚。按键复位电路是上电复位加手动复位,由单片机的res引脚外接的电阻电容以及一个复位按键构成。另外扩展电路中,蜂鸣器电路由蜂鸣器、三极管及电阻构成。其接在单片机的p3.1口,是低电平有效。蜂鸣器可以在被测温度不在上限范围内时,发出报警鸣叫声音,接在p3.1口的led警示灯被点亮,同时数码管显示被测量的温度值。按键输入电路是由单片机的p1口控制的,是低电平为有效信号。其图如图2.3所示。图2.2 单片机主板电路图2.3 按键输入电路(2)、显示电路数码管显示电路如图2.3所示。数码管显示电路使用的是串口显示,这种显示方式最大的优点就是使用口资源比较少,只用p0和p2口。两个四位一体共阳数码管采用动态接法,即位控并联、段控分别控制。p0口为段控口,p2口为位控口,都是低电平为有效信号。在位控口接上电阻和的三极管,期望增加驱动电流,以使数码管高亮度显示。图2.3 显示电路(3)、18b20电路 图2.4所示的18b20由p3.0口引出。ds18b20具有独特的单线接口仅需要一个端口引脚进行通信,而且用户可定义报警设置。本实验中就用到了该功能,当环境的温度值超过系统设定的温度上限值时,设定了蜂鸣器和led灯的有效程序。蜂鸣器会报警,led灯会点亮。图2.4 ds18b20电路18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的eeram。高速暂存ram的结构为8字节的存储器,结构如图2.5所示。头2个字节包含测得的温度信息,第3和第4字节th和tl的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图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式表示。当符号位s0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值ds18b20完成温度转换后,就把测得的温度值与ram中的th、tl字节内容作比较。若tth或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前56位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。分别说明如下:初始化:单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的ds18b20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。rom操作命令:总线主机检测到ds18b20的存在便可以发出rom操作命令之一。这些命令如表2.1所示。表2.1 rom操作命令指 令代 码read rom(读rom)33hmatch rom(匹配rom)55hskip rom(跳过romcchsearch 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。第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口是控制蜂鸣器和警示灯的口线,是低电平有效,当蜂鸣器报警且警示灯点亮时,表示温度超过系统设定的温度上限值。3.2、数字温度计软件系统各模块功能简要介绍及流程框图本次数字温度计的设计目的,主要是通过单片机控制18b20温度传感器来测量周边的环境温度。在上电复位或按键复位后显示系统提示符,通过开启和停止键来控制温度传感器的工作状态。但温度高于系统设定的温度上限值时,系统通过蜂鸣器报警,同时点亮警示灯。主要的软件模块包括主程序、18b20初始化程序、做好读温度准备子程序、读温度子程序、写温度子程序、显示子程序以及键扫描程序。他们的功能及流程框图如下所示。由于18b20是串行口,故尤其要注意时序问题,要延时以给机器足够的反应时间。(1)、主程序 主程序的功能是要操作整个系统,首先要将温度传感器的dq拉高,通过单片机p1口的按键控制18b20的工作状态。若开启键按下,则做好读温度的准备,接着是先读低位的温度值,再读高位的温度值,然后将所读的二进制温度值转换成十进制的温度值,并将温度值送往数码管显示。显示温度的过程中,若碰到温度值超过系统设定的温度上限值,则开启报警电路。若按下停止键,则显示系统提示符。流程框图如图3.1所示。3.1 主程序流程框图(2)、18b20初始化程序 由于18b20初始化过程中有复位和存在脉冲的问题,因此需多次改变dq的状态并延时等待。首先要将dq拉为高电平,延时几微妙。其次将dq拉为低电平,控制器tx“复位脉冲”延时480-960us。接着又将dq拉为高电平等待60us,最后延时让18b20输出存在脉冲。并且延时足够长,等待脉冲输出完毕。程序流程框图如图3.2所示。3.2 18b20初始化流程框图(3)、做好读温度准备子程序18b20的操作协议为规定为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的ds18b20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。当总线主机检测到ds18b20的存在,便可以发出rom操作命令之一即可。skip rom就是rom操作指令中的一个,其代码为cch。存储器命令中的convert t命令的作用是开启温度转换,其代码是44h,单线总线发出协议后,表示18b20处在读温度忙状态。最后是数据处理情况。其流程框图如图3.3所示。图3.3 做好读温度准备子程序流程框图(4)、读温度子程序 读温度的子程序中要注意控制器读数的时间间隙。根据18b20的读时序可以得知,首先应将dq拉为高电平,一个机器周期后将其拉为低电平,然后将数据线人为拉高,为单片机检测ds18b20的输出电平作准备,接着开始读温度。利用与运算,将值从低位到高位读出,读一位则二进制数右移一位,即可读完所测温度八位数的值。读的过程中要给控制器足够的采样时间。最后延时,给机器较长的反应时间。其流程框图如图3.4所示。 图3.4 读温度子程序流程框图(5)、写温度子程序 写温度的子程序与读温度的子程序类似,只需将读温度子程序中所读得的值一位一位写入。同样是先将dq拉为高电平,再拉低,然户开始从低位到高位依次写入。由于两个写时序间至少需要1us的恢复期,所以位与位之间至少延时2us时间。最后稍作延时,给机器反应时间。其流程框图如图3.5所示。 图3.5 写温度子程序流程框图(6)、显示函数本设计中有两个显示函数,一个是按键或上电复位后的显示函数,即显示系统提示符;另一个是所测得的温度显示。温度的显示可以精确到小数点后四位,多位数据的显示可以采用数组的方式一位一位将值送往数码管显示。整个程序的开始定义了一个存放显示数值代码的数组。还有一个位控的数组,用来控制数码管的每一位。将数值代码送往控制段控口的p0口,将位控值送往位控口p2口,每送一位要延时一段时间。以防有阴影,最后可将p0、p2口送“灭”的代码。程序流程框图如图3.6所示。系统提示符显示函数,是由本人设定的固定显示。将所要显示的值送往数组,然后从低位到高位依次送往p2口显示。其流程框图如图3.7所示。图3.6 数码管显示程序流程图图3.7 数码管显示系统提示符程序流程图(7)、键扫描子程序按键扫描子程序包括键值处理程序和键扫描程序。键处理程序中,首先得将p1口的电平拉高,则送往p1口的值为低电平有效,将所得的p1口的值取反后做为p1口的键值。按键接在单片机的p1口,键处理将其值送往键扫描程序,判断是否有键按下,延时消抖后再判断是否有键按下,再次调p1口键处理函数,若真正有键按下,取键值并暂存。然后判断键是否松开,延时一直到键松开,再将所得的键值保存,并作为函数的返回值。其程序流程图如图3.8所示。图3.8 键扫描程序流程图第4章 设计结论、仿真结果4.1、数字温度计的设计结论及使用说明 经过制板与编程,本次设计的数字温度计能够准确达到预期的结果。能够准确的按照软件系统的设定实现其功能。该数字温度计的使用说明如下:接通电源,电源指示灯亮,表明电源正常。当系统板进入上电复位或者按键复位后,能够显示系统提示符,即为“zb090303”。单片机的p1口为按键控制口,当按下p1.0控制的s2键时,系统将进入18b20的工作状态,即显示即时温度。当温度超过系统设定的温度上限值时,p3.1控制的蜂鸣器会报警,同时p3.1控制的led灯会被点亮。当按下p1.1控制的s3按键时,18b20退出工作状态,即显示系统提示符。4.2、数字温度计的仿真结果数字温度计的仿真结果如下:(1)、上电或按键复位时的仿真结果如图4.1所示。图4.1 上电或按键复位时的仿真结果(2)、按下s2键的仿真结果如图4.2所示。图4.2 按下s2键时的仿真结果(3)、温度超过20摄氏度时的仿真结果如图4.3所示。图4.3 温度超过20摄氏度时的仿真结果第5章 课程设计心得体会这次的单片机课程设计取得了圆满成功。我早已经为这一期的单片机课程设计做好了充分的准备。在大二的暑假期间,参加过的电子线路培训,为本次的课程设计奠定了坚实的基础。当老师把课程设计的题目与要求公布出来时,我无比的激动,一开始就对这次的课程设计充满了信心。其实一开始是想着做抢答器的,可是由于该项目的成员已满,经过推敲,最终决定做一个数字温度计的设计。由于在暑假培训的时候就有做过相关的项目,所以这无疑给这次的课程设计带来了很大的方便。数码管系统板在这次课程设计之前已经做好了,它能够实现数字温度计的设计要求。因此不必忙于去制板。暑假培训中,做过的一些项目中,基本上包括了这次设计的子程序,所以只需稍加设计即可。本次的课程设计要求要高于暑假培训的,因此还需要添加一些基本功能,例如按键控制功能。当把之前写好的程序导入到单片机中去时,数码管的显示总是不对。所以只好从头至尾将程序检查了一遍,但结果还是一样,也没发现有什么错误。后来仔细看了看原理图,才发现自己少插了短路帽,导致系统板不能正常工作。既然要做好本次的课程设计,就应该要着手于每个细节。虽然大体上可以说出整个程序的功能,但细化到每条语句,我并不能说清楚它的来由,尤其是18b20的相关程序。因为对18b20的功能用法不是很了解,所以需查阅大量的资料去了解18b20的工作特点与用法。了解到一些有关18b20的知识。由于18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序尤其重要。系统对18b20的各种操作按协议进行。18b20初始化过程中有复位和存在脉冲的问题,因此需多次改变dq的状态并延时等待。首先要将dq拉为高电平,延时几微妙。其次将dq拉为低电平,控制器tx“复位脉冲”延时480-960us。接着又将dq拉为高电平等待60us,最后延时让18b20输出存在脉冲。并且延时足够长,等待脉冲输出完毕。这便是18b20的初始化程序过程。18b20的操作协议为规定为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的ds18b20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。当总线主机检测到ds18b20的存在,便可以发出rom操作命令之一即可。skip rom就是rom操作指令中的一个,其代码为cch。存储器命令中的convert t命令的作用是开启温度转换,其代码是44h,单线总线发出协议后,表示18b20处在读温度忙状态。最后是数据处理情况。这便是18b20做好读温度准备的子程序过程。写温度的子程序与读温度的子程序类似,只需将读温度子程序中所读得的值一位一位写入。同样是先将dq拉为高电平,再拉低,然户开始从低位到高位依次写入。由于两个写时序间至少需要1us的恢复期,所以位与位之间至少延时2us时间。最后稍作延时,给机器反应时间。在做文档的时候,同时也学会了绘制简单的流程图。做一次课程设计不仅要有实物而且还需要有论文。论文的撰写需要大量的资料,在查找资料的过程中,又培养了我从文献、生产实践、和调查研究中获取知识的能力,提高了我从别人的经验、从其它学科找到解决问题新途径的悟性。在整个过程中,我从中学到了不少东西,更深一步掌握了单片机电路,更深的了解设计中所用到的单片机最小系统的工作原理,同时也掌握了单片机各引脚的功能及用途。通过本次的课程设计,让我了解到所学过的知识要及时复习,运用到实践中,才能更好地掌握所学知识。参考文献 1 李朝青. 单片机原理及接口技术m. 北京:北京航空航天大学出版社,1998.2 李勋等. 单片机实用教程m. 北京:北京航空航天大学出版社,2000.3 王幸之等. 单片机应用系统抗干扰技术m. 北京:北京航空航天大学出版社,1999.4 李华. mcs-51系列单片机实用接口技术m. 北京:北京航空航天大学出版社,1993.5 何为民. 低功耗单片微机系统设计m. 北京:北京航空航天大学出版社,1994.6 何立民. 单片机应用技术选编5m. 北京:北京航空航天大学出版社,1997.7 李广弟,朱月秀,冷祖祁. 单片机基础(第三版)m.北京:北京航空航天大学出版社,2007.附录a 数字温度计电路原理图附录b 数字温度计pcb图(正)附录c 数字温度计pcb图(底)附录d 数字温度计元器件布局图附录e 数字温度计器件清单part typedesignatorfootprintpart typedesignatorfootprint1kr2dz470rp5dz1kr13dz470rp6dz1kr12dzat89s52u1dip404.7krkdzbellls1fmq10kj2sip9con1j0yi10kj5sip9con2j1cc12mhzy1jzcon2jx2cc22ufc322ufcon2jx1cc33pfc2drcon2jp5cc33pfc1drcon8jp1sip8200r1dzcon8jp3sip8470r01dzcon8jp4sip8470r00dzcon8jp2sip8470r04dzledd7led470r03dzledd9led470r02dzledd8led470rp3dzledd3led470rp4dzledd2led470rp2dzledd1led470rp0dzledd6led470rp1dzledd5led470r23dzledd4led470r24dzpnpq8pnp470r22dzpnpq2pnp470r20dzpnpq3pnp470r21dzpnpq0pnp470r06dzpnpq1pnp470r05dzpnpq6pnp470r07dzpnpq7pnp470r25dzpnpq4pnp470r26dzpnpq5pnp470rp7dzsws1xaj470r27dzusbj3usb附录f 数字温度计源程序/数字温度计的设置:上电或按键复位后,显示系统提示符zb090303;当k2(p1.0口)键按下后,显示即时温度;p0口为段控口,p2口为位控口,p1 口 为按键控制口,p3口控制流水灯#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned intuchar duan16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x8c,0xce,0x86,0xab,0xa1,0xff; / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 / p t e n d 灭uchar wei=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;char find_code8=3,0,3,0,9,0,8,2;/*以下是ds18b20的操作程序*/ sbit dq=p30; sbit bz=p31;uchar time; /设置全局变量,专门用于严格延时/*函数功能:将ds18b20传感器初始化,读取应答信号出口参数:flag */bit init_ds18b20(void)bit flag; /储存ds18b20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 dq = 1; /先将数据线拉高 for(time=0;time2;time+) /略微延时约6微秒 ; dq = 0; /再将数据线从高拉低,要求保持480960us for(time=0;time200;time+) /略微延时约600微秒 ; /以向ds18b20发出一持续480960us的低电平复位脉冲 dq = 1; /释放数据线(将数据线拉高) for(time=0;time16;time+) ; /延时约30us(释放总线后需等待1560us让ds18b20输出存在脉冲) flag=dq; /让单片机检测是否输出了存在脉冲(dq=0表示存在) for(time=0;time200;time+) /延时足够长时间,等待存在脉冲输出完毕 ; return (flag); /返回检测成功标志/*函数功能:从ds18b20读取一个字节数据出口参数:dat*/ uchar readonechar(void) uchar i=0;uchar dat; /储存读出的一个字节数据for (i=0;i=1;_nop_(); /等待一个机器周期 dq = 1; /将数据线人为拉高,为单片机检测ds18b20的输出电平作准备for(time=0;time2;time+) ; /延时约6us,使主机在15us内采样if(dq=1) dat|=0x80; /如果读到的数据是1,则将1存入datelsedat|=0x00;/如果读到的数据是0,则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025金华金开招商招才服务集团有限公司招聘5人考前自测高频考点模拟试题带答案详解
- 2025年福建省宁德市福鼎市卫生健康局招聘23人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025北京市大兴区工商业联合会招聘临时辅助用工1人考前自测高频考点模拟试题及一套答案详解
- 2025贵州民族大学招聘程序招聘博士配偶工作模拟试卷附答案详解(典型题)
- 2025年芜湖经济技术开发区招聘小学教师37人模拟试卷完整参考答案详解
- 2025年上半年广东广州开发区黄埔区招聘事业单位人员18名考前自测高频考点模拟试题及答案详解(有一套)
- 2025北京市海淀区中关村第二小学科学城北区分校教师招聘模拟试卷及答案详解参考
- 2025广东水利电力职业技术学院招聘32人考前自测高频考点模拟试题及一套参考答案详解
- 2025安徽芜湖市第三城市医疗集团成员单位招聘编外人员15人模拟试卷及答案详解(全优)
- 2025年烟台市烟台山医院住院医师规范化培训预招生模拟试卷及答案详解1套
- 长期照护师技能操作考核试卷及答案
- 街道管理考试题库及答案
- 2025年执业药师之《药事管理与法规》题库附参考答案详解(培优)
- 2025年企业管理人员能力考试试题及答案
- 统编语文(2024)二年级上册识字5《去外婆家》课件
- 2025年6月浙江省高考化学试卷真题(含答案及解析)
- 物权编善意取得制度解读
- 静脉采血业务学习
- 2025年高考政治总复习高中三年必考基础知识复习汇编资料(必背版)
- 保障性租赁住房房屋维修保养方案
- 信访诉求书撰写指南2025
评论
0/150
提交评论