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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

课程设计内容.docx

1、课程设计内容课程设计目录一、概述3二、设计思路3三、软件及元件的选取介绍4(一)Proteus简介4(二)、主控器AT89C51单片机简单介绍4(3)DS18B20简单介绍5(四)显示器LCD1602简单介绍5四、电路设计7五、系统程序设计9六、总结及心得12参考文献12附录(程序清单)11Proteus仿真图工作流程图一、概述由于科技的不断进步,现代信息技术的飞速发展传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已

2、成为当今的主流,本可课程设计选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器,通过LCD1602实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于0.01。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,DS1820具有测温系统简单、测温精度高、连接方便、占用口线少等优点。而LCD1602是工业字符型液晶,能够同时显示16x02即32个字符,具有微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。2、设计思路 采用数字温度芯片DS18B20 测量温度,输出

3、信号全数字化。采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,它直接输出温度的数字信号,也可直接与计算机连接。采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。该系统扩展性非常强。该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。系统框图如图1所示。 图一 温度检测及显示系统框图三、软件及元件的选取介绍(一)Proteus简介

4、Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列

5、以及各种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。(二)、主控器AT89C51单片机简单介绍 1、AT89C51 提供以下标准功能: 4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片

6、内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 2、主要特性: 与MCS-51 兼容; 4K字节可编程FLASH存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;288位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。(三)DS18

7、B20简单介绍:DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。其实物图如图所示,其引脚的功能描述可见下表所示。 DS18B20的引脚功能描述引脚功能说明GND地DQ数字输入输出引脚VDD可选的VDD引脚DS18B20的特点: (1)只要求一个端口即可实现通信。 (2)在DS18B20中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55C到125C之间。 (5)数字温度计的分辨率用户可以

8、从9位到12位选择。 (6)内部有温度上、下限告警设置。 AT89C51与温度芯片DS18B20的连接在仿真软件中,可以用DS18B20仿真器上的上、下键来调节温度的高低,以此来检测读、写温度程序是否成功。具体的DS18B20与AT89C51连接如图2-14所示(四)显示器LCD1602简单介绍 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602LCD是指显示的内容为16X2,即可以显示两行,

9、每行16个字符液晶模块(显示字符和数字)。1602LCD的特性: +3.3V电压,对比度可调;内含复位电路;提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有192个5X7点阵的字型的字符发生器:8个可由用户自定义的5X7的字符发生器CGRAM:图2-7 LCD1602外观LCD1602采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、

10、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。四、电路设计 1、电源电路 2、振荡电路:3、复位电路:4、DS18B20与单片机的接口电路:5、PROTEUS仿真电路图五、系统程序设计 1、主程序模块设计本系统程序设计采用汇编语言进行编写。主程序设计思路为:先对系统进行初始化,如:LCD1602初始化等,然后才能进入主显示模块,即可在LC

11、D1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。具体的主程序流程如图:主程序源代码:MAIN:LCALL INIT_LCD1602 ;调用显示器LCD1602的初始化LCALL INIT_DS18B20;调用DS18B02的初始化START:LCALL DISPLAY_TEMP ;调用温度显示程序JMP START2、液晶显示器LCD1602模块 本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分

12、别以子程序的形式写在程序里,以便主程序中的调用。对LCD1602的具体操作过程如图所示。1602LCD的总体操作流程图见下图所示: 软件流程图LCD初始化程序:INIT_LCD1602:MOV LCD,#01H ;清屏CALL ENABLE_ORDERMOV LCD,#38H ;8位点阵,两行显示CALL ENABLE_ORDERMOV LCD,#0CH ;显示开关为开,光标开关为关,闪烁开关为关CALL ENABLE_ORDERMOV LCD,#80H ;显示的起始位置为第一行的第一位CALL ENABLE_ORDERRET3、温度芯片DS18B20操作模块具体的DS18B20的操作过程如下

13、图所示:DS18B20的操作过程读DS18B20的流程图见下图所示。其源程序可查阅附录中的源代码部分。 读DS18B20的流程图六、总结及心得通过本次课程设计,我学到了很多东西,理论知识得到强化,实践能力得到了提高。在这课程设计中,让我对单片机AT89C51有了更深入的理解,在运用上能力得到很大提高,让我更多的知道它的优点:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。因此,它应用广泛前景美好,它的实用性大大地提高了我对课程设计的兴趣。在课程设计开始前,自己感到很茫然,因为对软

14、件的和单片机不是很熟悉,可是但我逐渐的了解后,发现其实并不是想象的那么难,而且很好用。这次课程设计项目虽然不是很大,但用的技术和知识一点也不逊色于大点的项目,比如说其中用到了DS18B20中的串行通信技术,AT89C51基本操作知识,汇编语言方面的知识等。 这次课程设计也是一次非常难得的理论和实际相结合的机会,通过这次系统设计,使我摆脱了以往单纯的理论知识学习状态,并且在和实际设计的结合锻炼了我的综合运用所学的专业基础知识,使我的实践能力的得到很大的提高。在设计过程中遇到了的以下问题,然而在老师或同学的帮助下一个一个解决了,培养了我一丝不苟的和不厌其烦的态度。这次设计虽然顺利做完了,但还是许多

15、美中不足之处,让我认识到自己对单片机应用方面的知识贫乏,也让我知道了proteus和keil使用的方便,对于书本上的很多理论知识还不能灵活运用,有很多我们掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。同时还从中学到了一件很重要的东西,那就是如何从理论到实践的转化,怎么样将我所学到的知识运用到我以后的工作中去。此次的课程设计给我奠定了一个实践基础,为以后毕业设计打下良好的基础,也为我在毕业后的生活中磨练自己,使自己适应于以后工作中的竞争。参考文献1李晓林.牛昱光.单片机原理与接口技术(第二版)北京:电子工业出版社,2011,11,325-3382 许兴存.曾琪琳,微型计算机

16、接口技术M.北京:电子工业出版社,2005,7:308-3293 丁元杰.单片微机原理及应用M.北京:机械工业出版社,2006,3:1-10,166-1805 宋彩利,孙友仓.单片机原理与C51编程M.西安:西安交通大学出版社,2008,7:165-1916 赵文博,刘文涛.单片机语言C51程序设计M.北京:人民邮电出版社,2005,10 :176-1987 边春元.C51单片机典型模块设计与应用M.北京:机械工业出版社,2008,4:1-248 邱关源.电路,北京:高等教育出版社M.2005,12:1-249 朱定华.单片机原理及接口技术实验M.北京:北方交通大学出版社,2002,11:24

17、-55附录:源程序 ORG 0000H;DS1602引脚定义RS EQU P3.0 ;RS为寄存器选择RW EQU P3.1 ;RW为读写信号线E EQU P3.2 ;E为使能端,E由高变低进执行命令LCD EQU P2 ;数据总线;DS18B20引脚定义-DQ BIT P3.7;单总线口;DS18B20数据存储单元定义-TEMPER_L EQU 50H ;暂存温度个位TEMPER_H EQU 51H ;暂存温度十位TEMPER_NUM EQU 52H;温度值存储FLAG1 BIT 00H ;DS18B20是否存在标志;*主程序*MAIN:LCALL INIT_LCD1602 ;调用显示器LC

18、D1602的初始化LCALL INIT_DS18B20;调用DS18B02的初始化START:LCALL DISPLAY_TEMP ;调用温度显示程序JMP START;*;LCD1602的初始化-INIT_LCD1602:MOV LCD,#01H ;清屏CALL ENABLE_ORDERMOV LCD,#38H ;8位点阵,两行显示CALL ENABLE_ORDERMOV LCD,#0CH ;显示开关为开,光标开关为关,闪烁开关为关CALL ENABLE_ORDERMOV LCD,#80H ;显示的起始位置为第一行的第一位CALL ENABLE_ORDERRET;DS18B20初始化程序-I

19、NIT_DS18B20: SETB DQ NOP CLR DQ MOV R0,#250TSR1: DJNZ R0,TSR1 ; 延时微秒SETB DQ MOV R0,#35 ;延时微秒TSR2: DJNZ R0,TSR2 JNB DQ,TSR3;如D0为低则复位成功,DS18B20存在LJMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在LJMP TSR5 TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在LJMP TSR7 TSR5: MOV R0,#100 ;延时微秒TSR6: DJNZ R0,TSR6 ; TSR7: SETB

20、DQ ;拉高总线RET ;欢迎界面WELCOME:MOV LCD,#01H ;清屏CALL ENABLE_ORDERLINE1: ;欢迎界面的第一行MOV DPTR,#TABLE1MOV R1,#00HW1:LCALL DELAY1MOV A,R1MOVC A,A+DPTR CJNE A,#00H,W2 ;判断第一行是否显示完毕JMP LINE2W2:MOV LCD,ALCALL ENABLE_DISPLAY ;写数据到芯片中LCALL DELAY ;调用延时程序INC R1 ;位置后移一位MOV A,#80HORL A,R1 ;调整显示位置MOV LCD,ACALL ENABLE_ORDER

21、 ;写命令到芯片中JMP W1LINE2: ;欢迎界面的第二行MOV LCD,#0C0HCALL ENABLE_ORDER ;写命令到芯片中MOV DPTR,#TABLE2MOV R1,#00HW3:LCALL DELAY1 ;调用延时程序MOV A,R1MOVC A,A+DPTR CJNE A,#00H,W4LCALL DELAY1LCALL DELAY1RETW4:MOV LCD,ALCALL ENABLE_DISPLAY ;写数据到芯片中LCALL DELAYINC R1 ;位置后移一位MOV A,#0C0HORL A,R1 ;调整显示位置MOV LCD,ACALL ENABLE_ORD

22、ER ;写命令到芯片中JMP W3RET;清屏程序DISPLAY_BLANK:LCALL DELAY1 ;长延时(使其显示有闪烁效果)MOV LCD,#01H ;清屏命令LCALL ENABLE_ORDERLCALL DELAY1RET;TEMPERATURE信息提示程序-TEMPERATURE_LOGO:MOV LCD,#01H ;清屏CALL ENABLE_ORDERMOV LCD,#86H ;设置显示T的位置CALL ENABLE_ORDERMOV LCD,#54H ;显示TLCALL ENABLE_DISPLAYMOV LCD,#87H ;设置显示E的位置CALL ENABLE_ORD

23、ERMOV LCD,#69H ;显示ELCALL ENABLE_DISPLAYMOV LCD,#88H ;设置显示M的位置CALL ENABLE_ORDERMOV LCD,#6DH ;显示MLCALL ENABLE_DISPLAYMOV LCD,#89H ;设置显示P的位置CALL ENABLE_ORDERMOV LCD,#65H ;显示PLCALL ENABLE_DISPLAYMOV LCD,#8AH ;设置显示E的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示EMOV LCD,#8AH ;设置显示R的位置CALL ENABLE_ORDERMOV LCD,#72H ;

24、显示RMOV LCD,#8AH ;设置显示A的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示A MOV LCD,#8AH ;设置显示T的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示T MOV LCD,#8AH ;设置显示U的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示U MOV LCD,#8AH ;设置显示R的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示R MOV LCD,#8AH ;设置显示E的位置CALL ENABLE_ORDERMOV LCD,#72H ;显示ELCALL ENABLE_

25、DISPLAYRET;显示温度的程序DISPLAY_TEMP:MOV LCD,#01H ;清屏LCALL ENABLE_ORDERLCALL GET_TEMP ;读取温度数据MOV A,TEMPER_NUMMOV B,#10DIV AB ;分离温度数据MOV TEMPER_H,AMOV TEMPER_L,BMOV LCD,#0CDH ;设置显示位置LCALL ENABLE_ORDERMOV A,TEMPER_HADD A,#30H ;进行显示调整MOV LCD,A ;显示温度的十位LCALL ENABLE_DISPLAYMOV LCD,#0CEH ;设置显示位置LCALL ENABLE_ORD

26、ERMOV A,TEMPER_LADD A,#30H ;进行显示调整MOV LCD,A ;显示温度的个位LCALL ENABLE_DISPLAYMOV LCD,#0CFH ;设置显示位置CALL ENABLE_ORDERMOV LCD,#0DFH ;显示温度符号LCALL ENABLE_DISPLAYRET;写数据到液晶显示器LCD1602-ENABLE_DISPLAY:SETB RS ;设置RS为高,选择数据寄存器CLR RW ;设置RW为低,进行写操作CLR E ;设置E为低,执行命令SETB ERET;写命令到液晶显示器LCD1602-ENABLE_ORDER:CLR RS ;设置RS为

27、低,选择指令寄存器CLR RW ;设置RW为低,进行写操作CLR E ;设置E为低,执行命令LCALL DELAY ;延时SETB E RET;读出转换后的温度值GET_TEMP: SETB DQ GT1:LCALL INIT_DS18B20 ;初始化DS18B20JB FLAG1,GT2 ;判断DS18B20是否存在LJMP GT1 GT2: MOV A,#0CCH ;跳过ROM匹配命令LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820 NOP GT3:LCALL INIT_DS18B20 ;初始化DS18B20JB FLAG1,GT

28、4 ;判断DS18B20是否存在LJMP GT3 GT4:MOV A,#0CCH ;跳过ROM匹配LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令LCALL WRITE_1820 LCALL READ_1820 ;调用读DS18B20程序,读取温度低字节MOV TEMPER_L,A ;将读出的温度低位放入TEMPER_L中LCALL READ_1820 ;调用读DS18B20程序,读取温度高字节MOV TEMPER_H,A ;将读出的温度低位放入TEMPER_H中MOV A,#0F0H ANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP A MOV TEMPER_NUM,A ;得到温度的个位数MOV A,TEMPER_L JNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC TEMPER_NUM TEMPER_COV1: MOV A,TEMPER_H ANL A,#07H SWAP A ORL A,TEMPER_NUM ;得到高四位,再与低四位相或得到温度值MOV TEMPER_NUM,A ; 保存变换后的温度数据

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

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