ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:80.05KB ,
资源ID:11921259      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11921259.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易数字温度计课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易数字温度计课程设计报告.docx

1、简易数字温度计课程设计报告 唐 山 学 院 单片机原理 课 程 设 计 题 目 简易数字温度计 系 (部) 智能与信息工程学院 班 级 姓 名 学 号 指导教师 2017 年 1 月 2 日至 1 月 6 日 共 1 周2017年1月4日单片机原理课程设计任务书一、设计题目、容及要求设计题目:简易数字温度计设计容:所设计数字温度计应具有以下功能:1.可以测量-50到110摄氏度的温度。2.在液晶上显示当前温度,分别为百位、十位、个位和小数点后一位。3.测量精度误差在正负0.5摄氏度以。设计要求:1.根据题目要求进行系统总体设计。 2.完成系统硬件电路的设计。3.系统程序的设计。 (1)程序流程

2、图;(2)完整源程序;(3)正确仿真运行。4.撰写设计说明书(符合格式要求)。二、设计原始资料PROTEUS软件,WAVE/KEIL软件,实验箱三、要求的设计成果(课程设计说明书、设计实物、图纸等)设计结果能正确仿真演示课程设计说明书一份(要求有硬件设计原理图,仿真结果图,源程序代码)四、进程安排1.2日-1.3日上午 查阅资料,设计电路原理图、编写程序1.4日下午-1.5日 中心机房调试程序1.6日 课程设计答辩五、主要参考资料1肖看.群芳.单片机原理、接口及应用,清华大学.2010.92楼然苗.单片机课程设计指导.:航空航天大学.2002.3育才主编,MCS-51系列单片微型计算机及其应用

3、.东南大学指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日1.方案论证 该系统可以使用方案一:热敏电阻;方案二:数字温度芯片DS1621实现。采用数字温度芯片DS1621 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS1621 的最大特点之一采用了单总线的数据传

4、输,由数字温度计DS1621和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89C51芯片控制温度传感器DS1621进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片

5、DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。故采用了方案二。测温电路的总体设计方框图如图1-1所示,控制器采用单片机AT89C51,温度传感器采用DS1621,用5位LED数码管以串口传送数据实现温度显示。图1-1 测温电路的总体设计方框图2.硬件设计2.1系统构成本温度数据采集系统的主要功能是测量温度,并显示温度测量结果,并附带了单片机和PC机之间通讯接口。系统结构包括单片机

6、部分、温度传感器、显示电路、通讯接口电路等几个部分。图2-1为系统的总体结构框图。图2-1 测温系统的总体结构框图系统工作原理是:电路在上电后,最先单片机利用模拟总线I2C对DS1621进行寻址,单片机在接收到DS1621应答后,单片机将设置/状态寄存器的值通过I2C总线写入该寄存器,之后DS1621在单片机控制下进行温度测量,然后DS1621把所采集的温度(50摄氏度100摄氏度,精度为0.5摄氏度)传输给单片机,最后单片机把温度数据送到LED上显示。系统中附带的串行接口以供备用。2.2器件选择2.2.1 AT89C51概述对于单片机的选择,可以考虑使用8031与8051系列,由于8031没

7、有部RAM,系统又需要大量存存储数据,因而不适用。所以,我们选用51系列单片机AT89C51。AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片含4KB的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了 Flash 程序存储器,既可在线编程(ISP),也可用传统方法进行编程,因此,低价位AT89C51单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89

8、C51的主要特性如下:与MCS-51 兼容; 4K字节可编程闪烁存储器;三级程序存储器锁定;1288位部RAM; 32根可编程I/O线;两个16位定时器/计数器; 5个中断源;可编程串行通道; 片振荡器和时钟电路。2.2.2 AT89C51引脚功能单片机芯片AT89C51为40引脚双列直插式封装。其各个引脚功能介绍如下,芯片AT89C51的引脚排列和逻辑符号如图2-2所示。各引脚分别为:1VCC:供电电压 图2-2 AT89C51的引脚GND:接地P0口图4-2 AT89C51的引脚排列图P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写1时,被定义为高阻输入

9、。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。P1口 P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入”1”后,电位被部上拉为高可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流 当P2口被写”1”时,其管脚电位被部上拉电阻拉高,且作为输入。作为输入时P2口

10、的管脚电位被外部拉低,将输出电流,这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址”1”时,它利用部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,同时P3口同时为闪烁编程

11、和编程校验接收一些控制信号。RST:复位输入端。当振荡器复位时,要保持RST两个机器周期的高电平时间。PSEN外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将部锁定为RESET;当EA端保持高电平时,访问部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。2.2.3 复位电路的设计单片机的复位电路如图2-2所示。该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过R2电阻给复位输入端口

12、一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。图2-3 单片机的复位电路2.3数字温度传感器2.3.1 DS1621的技术指标DS1621是美国DALLAS公司生产的一种功能较强的数字式温度传感器和恒温控制器。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1621。其数字温度输出达9位,精度为0.5摄氏度。DS1621可工作在最低2.7V电压下,适用于低功耗应用系统。 DS1621的引脚排

13、列图如图2-4所示,引脚功能描述如表2-1所示。图2-4 DS1621的引脚排列图表2-1 DS1621的引脚功能表引脚符号功能描述1SDA2线I2C 串行数据输入/输出2SCL2线I2C 串行时钟端3TOUT温度上下限超出输出4GND地5A2A0片选地址输入A2A06VDD电源端(+2.75.5V)2.3.2 DS1621的工作原理图2-5 DS1621的构成原理框图斜坡累加电路重预置比较器计数温度低敏感振荡器重预置电路温度寄存器温度低敏感振荡器计数器=0DS1621的构成原理框图如图2-5所示,在测量温度时使用了独有的在线温度测量技术。它通过在一个由对温度高度敏感的振荡器决定的计数周期对温

14、度低敏感的振荡器时钟脉冲的计数值的计算来测量温度。DS1621在计数器中预置了一个初值,它相当于50摄氏度。如果计数周期结束之前计数器达到0,已预置了此初值的温度寄存器中的数字就会增加,从而表明温度高于55摄氏度。与此同时,计数器斜坡累加电路被重新预置一个值,然后计数器重新对时钟计数,直到计数值为0。通过改变增加的每1 的计数器的计数,斜坡累加电路可以补偿振荡器的非线性误差,以提高精度,任意温度下计数器的值和每一斜坡累加电路的值对应的计数次数须为已知。 DS1621通过计算可以得到0. 5摄氏度的精度,温度输出为9位,在发出读温度值请求后还会输出两位补偿值。表2给出了所测的温度和输出数据的关系

15、。这些数据可通过2线制串行口连续输出,MSB在前,LSB在后。 2.4 单片机和DS1621接口电路前面已经介绍了DS1621温度传感器以8位数字输出,数据输出与I2C总线兼容,可以方便地通过SDA,SCL以串行方式与单片机相连。而AT89C51面向主/从功能字节的I2C总线串行I/O口,所以多路温度数字量可以通过I2C总线直接送GAS97C2051单片机。I2C总线(Inter IC BUS)是Philips公司推出的双向两线串行通信标准。由于它具有接口少、通信效率高等优点,现已得到广泛的应用I2C总线是一种串行的数据总线,挂在总线上的各集成电路模块(单片机和具有各种功能的电路芯片)通过一条

16、串行的数据线 (SDA)和一条串行的时钟线(SCL),按一定的通信协议进行寻址和信息的传输。每个电路模块都有唯一的地址,在信息的传输过程中,I2C总线上的电路模块有的是主控器,有的是被控器,主控器和被控器都可以是发送器或接收器,这完全取决于它所要完成的功能。采用I2C总线可最大限度地简化电路结构,实现电路的模块化、标准化设计。I2C总线在进行数据传输时,由作为主控器的AT89C51来初始化一次数据的传输,并在I2C总线上提供时钟进行传送。信息传送的对象、方向和传送的开始、终止也由主控器(AT89C51)来决定。此时,在I2C总线上被主控器所寻址的集成电路模块称为被控器(DS162)。在I2C总

17、线上,数据由发送器传出,并被接收器接收,接收器在每次正确接收到一个数据字节后,都要在数据总线(SDA)上给发送器一个应答信号。因单片机AT89C51本身 没有I2C硬件资源,所以必须用软件来模拟I2C总线,本系统利用单片机AT89C51的P3.0和P3.1引脚分别作I2C总线的数据线和时钟线(见附录A)。AT89C51模拟I2C总线主要由软件设置来实现其功能。2.5七段LED数码显示电路采用七段LED数码显示,LED显示器部由7段发光二极管组成,因此亦称之为七段LED显示器,由于主要用于显示各种数字符号,故又称之为LED数码管。每个显示器还有一个圆点型发光二极管,用于显示小数点。在单片机AT8

18、9C51接收到DS1621所采集的温度数据后,单片机把所读到的数据送给数码管显示。系统具体的显示电路如图2-6所示。图2-6 七段LED数码管显示电路显示电路中单片机AT89C51的P0口直接驱动8段数码管(其中需要给P0外接上拉电阻)完成字形码的输出(字形选择)。而P2.1-P2.5控制6位LED进行分时选通,这样在任一时刻,只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是我们常说的动态扫描电路。3.软件设计与调试3.1 编程语言选择51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率

19、很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,C 语言很好的结构性和模块化更容易阅读和维护,用C 编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题这样就减少了开发和调试的时间,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。3.2 主程序的设计初始化N读温度数据并存储生成地址字节1001000,循环次数3延时1S以上等待结果启动转换向设置/状态寄存器设置为连续工作方式生成地址字节1001000,循环次数3次地址字节加02H 循环次数减1为0?读温度数据并存储及显示地址字节加02H 循环次数减1

20、为0?图3-1 主程序流程图NN主程序的主要功能是负责多点温度数据的实时采集、传输,处理和显示。其程序流程如图3-1所示。3.3 温度采集模块设计为本温度采集系统开发的软件程序,可以对DS1621部的寄存器编程控制DS1621的工作方式,以及从这些数据寄存器读取温度值,最后把经过单片机数据处理后的温度送到LED上显示。AT89C51扮演着上传下达的角色,单片机端的程序采用了C语言。DS1621一侧的通信程序将利用并行端口P3.0和P3.1来模拟I2C 总线协议,总线上的通信通过程序来实现。整个软件采用了模块化的程序设计方法。为了实现AT89C51和DS1621之间I2C 协议之下的串行通信,编

21、写了一些专用子程序。这些子程序段包括:符号定义、AT89C51的端口初始化、启动信号时序产生、停止信号时序产生、发送字节、读取字节、读取温度、显示。系统电路在上电后开始工作,最先程序单片机进行初始化设置,然后单片机利用模拟I2C总线对DS1621进行寻址。单片机在接收到DS1621应答后,紧接着单片机利用命令(AAh、ACh、EEh、22h)将设置/状态寄存器的值通过I2C总线写入DS1621状态寄存器,该系统中把DS1621设置为连续温度转换工作方式,之后DS1261在单片控制下进行温度测量,然后DS1261把所采集的温度传输给单片机,最后单片机把温度数据送到LED上显示。3.4 温度计算模

22、块设计计算温度子程序将从DS1621中读取的温度值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3-2所示。 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY图3-2 温度计算流程图3.5 串行总线编程在本系统中,单片机AT89C51 作为主控器件,3个DS1621作为被控器,所以我们只要考虑主方式下的状态处理模块,即考虑AT89C51主发送和主接收方式下的状态处理模块。该电路中为了简化电路设计在I2C总线的时钟和数据上各加了一个上拉电阻,以获取一定的上拉电流使信号采集可靠。本系统中挂在I2C总线上的各电路模块都有其节点

23、地址。AT89C51作为主控器其节点地址无意义,作为被控器的3个DS1621都有其节点地址,其地址为1001A2A1A0 ,其中,1001是器件编号,已由芯片生产厂家规定,A2A1A0为DS1621的3个引脚,在电路中分别接高低电平决定2个DS1621的不同地址。2个DS1621的地址分别为10010001001010。本系统中的I2C总线的寻址方式为的广播寻址,即AT89C51对挂在I2C总线上所有的DS1621的广播呼叫寻址。AT89C51发出开始信号S后的第一个字节确定由AT89C51所选择的一个DS1621的地址,然后在第一个字节以后开始数据传送。具体实现寻址的方法是:由AT89C51

24、发出启动位S后紧跟着发送从器件DS1621的7位地址码,即S+SLA,在节点地址寻址中SLA为被寻址的从节点地址,主控设备在发送数据前,在时钟为高时,在数据线上发送一个由高到低的信号来表示开始传送数据,DS1621 接收到开始信号时,移入后续8 位(高7 位地址线和一个R/W 位)来确定进行如何操作,R/W 位为0 表示写,为1 表示读。读写操作完成后,在时钟为高时,在数据线上发送一个由低到高的信号表示传送结束。具体数据格式如图3-3所示,时序如图3-4所示。图3-3 串行通信的数据格式图3-4 串行通信的时序图 4.软硬件调试结果分析本设计应用Proteus及Keil软件,首先根据自己设计的

25、电路图用Proteus软件画出电路模型,关于这个软件的使用通过查一些资料和自己的摸索学习;然后用Keil软件对所编写的程序进行编译、,如果没有错误和警告便可生成程序的hex文件,调试好程序后将目标文件导入Proteus的AT89C51芯片中进行软件调试。最后进行三路温度的对比测试。数字温度计的仿真电路图如图4-1所示。图4-1 仿真图 仿真结果分析:不断调整三路DS1621的温度值,发现LED显示器上的数值和DS1621屏幕上的标准值相差无几,在误差允许的围之。当某一路的温度不在50-80围时,两个LED同时发光,表示告警信息。经调试,证明开发者最终设计出结构合理、美观,主要电气指标良好,性能

26、稳定可靠的电路。5.设计总结不知不觉中,一周的课程设计实习已经接近尾声了。可能是假期快到的缘故,总感觉这次实习特别短暂。此刻,真是感慨万千啊!现在我可以自豪的说,这次实习我达到了预期的目标。因为在实习期间,我每天都在接触新的东西,每天都会有新的问题等待我去探讨去解决,每天都有新收获。回想课设第一天,我们做点电脑前,不知道自己能干点什么,对于指导老师的讲解也是云里雾里的。因为头一回接触Proteus和Keil这两个软件。但是我相信,只要自己用心了,没有办不成的事。于是,我静下心来,仔细研究老师下发的教程。我珍惜每一次的上机机会,勤加练习,课下积极研究手册和相关书籍。两天过后,才算有点眉目了。到这

27、时心里才算稍微安稳了一些,再加上以前学过名为Protel的电路设计软件,所以我的自信心加强了。在这次设计过程中,体现出自己单独设计电路的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感我们的田红霞、国旭老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次简易数字温度计设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。同时感对我帮助过的同学们,你们对我的帮助和支持,让我感受到同学

28、的友谊。6.参考文献1肖看.群芳.单片机原理、接口及应用,清华大学.2010.92楼然苗.单片机课程设计指导.:航空航天大学.2002. 3育才主编,MCS-51系列单片微型计算机及其应用.东南大学附录A 多点温度采集系统电路原理图附录B C语言源代码#include reg51.h#include intrins.h#define uchar unsigned char#define uint unsigned int#define DiSdata P0 /七段码数据输出口#define discan P2 /扫描数据输出口sbit DIN=P07; /小数点控制sbit Scl=P30;

29、/串行时钟sbit Sda=P31; /串行数据sbit alarm=P17;sbit alarm2=P16;uint i;uint h; uint temp;uchar dath2; /温度输入口uchar ff2,ff1=0,t3=0;uchar code dis_712=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共阴LED段码表 0 1 2 3 4 5 6 7 8 9 灭 - uchar code scan_con5=0xfd,0xfb,0xf7,0xef,0xdf; /LED显示控制,对应0的LED有效uc

30、har data display5=0x00,0x00,0x00,0x00,0x002; /显示单元数据,共6个数据和一个运算暂用uchar data display15=0x01,0x02,0x03,0x04,0x052;uchar data DD4=0x90,0x92,0x94; /void delay_us(uint t) /延时函数 for (;t0;t-); /scan() /LED扫描函数 uchar k; for(k=0;k5;k+) discan=scan_conk; /控制位送P2口 DiSdata=dis_7displayk; /数据位送P0口 if (k=3)DIN=1; else DIN=0; /小数点显示 delay_us(150); /void delay(void) /延时函数 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /void i_start(void) /开始 Sda=1; Scl=1; delay(); Sda=0; de

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

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