单片机课程设计-数字温度计的设计.doc_第1页
单片机课程设计-数字温度计的设计.doc_第2页
单片机课程设计-数字温度计的设计.doc_第3页
单片机课程设计-数字温度计的设计.doc_第4页
单片机课程设计-数字温度计的设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南工业大学课程设计任务书2013 2014学年第 1学期 电气与信息工程学院 学院(系、部) 自动化 专业 1101 班级课程名称: 单片机应用系统 设计题目: 数字温度计的设计 完成期限:自 2013 年 11 月 11 日至 2013 年 11 月 22 日共 2 周内容及任务利用DS18B20(熟悉它的工作原理和性能并熟练掌握它)智能温度传感器、DS1302时间基准电路和单片机AT89S51小系统,键盘采用独立按键,显示器采用HD7279驱动4位LED显示以串口传送数据,实现温度显示,设计一个数字温度采集系统(温度显示为0100,精度误差在0.5以内)其中有温度上下线的报警措施。进度安排起止日期工作内容2013.11.2013.13.讲述设计内容及基本原理2013.14.2013.20.进行单片机系统的设计2013.21.2013.22.进行系统的调试主要参考资料中国知网 数字温度计的国外动态及建议 数字温度传感器DS18B20介绍指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日14(单片机应用系统)设计说明书数字温度计的设计起止日期: 2013 年 11 月 11 日 至 2013 年 11 月 22日学生姓名肖慧芝 孟敏华班级自动化1101学号1140170022511401700238成绩指导教师(签字)电气与信息工程学院2013年 11 月22日一、设计任务:本次单片机课程设计将以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。测温范围为0100,精度误差在0.5以内。二、单片机最小系统硬件资源介绍:DS18B20温度传感器:DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20温度转换的时间比较长,而且设定的分辩率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辩率和转换时间权衡考虑。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地,如下图所示。 图1.1 DS18B20管脚图DS18B20的初始化: (1) 先将数据线置高电平“1”。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。 (4) 延时750微秒(该时间的时间范围可以从480到960微秒)。 (5) 数据线拉到高电平“1”。 (6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8) 将数据线再次拉高到高电平“1”后结束。 DS18B20的写操作: (1) 数据线先置低电平“0”。 (2) 延时确定的时间为15微秒。 (3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45微秒。 (5) 将数据线拉到高电平。 (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 三、设计原理及思路1.主程序:主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。图1.2 主程序流程2.读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,检验有错时不进行温度数据的改写。其程序流程图如图1.3所示。发DS18B20复位命令发跳过ROM命令发读取温度命令移入温度暂存器结束图1.3 读出温度子程序流程图3.温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。4.计算温度子程序计算温度子程序将RAM值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图1.4所示。开始温度零下?置“+”标志NY温度值取补码置“”标志计算小数位温度BCD计算整数位温度BCD结束图1.4 计算温度子程序流程图 四、源程序汇编:DQ BITP3.0 ;从DS18B20向8051传送的数据端口FLAG BIT00HFLAG_NEGBIT01H ;温度正负值标志位TEMP_LEQU 30H ;所设报警最低值温度值TEMP_HEQU31H ;所设报警最高值温度值TEMP_INTEQU 32HTEMP_DPEQU 33HTEMP_100EQU34H ;TEMP_10EQU35HTEMP_1EQU36HC0BIT P3.1 ;负温度标志位C1BIT P3.2 ;超过100 标志位C2BIT P3.3 ;超过10 标志位C3BIT P3.4 ;超过1 标志位C4BIT P3.5 ;超过0 标志位;*;*主函数*ORG 0000HLJMP STARTORG 1000HSTART:MOV SP,#60HMAIN: LCALL READ_TEMP ;调用函数读DS18B20所示温度 LCALL PROC_TEMP ;调用函数对温度进行处理 LJMP MAIN;*;*READ_TEMP:LCALL INI_DQJB FLAG,RE_0 RETRE_0:MOV A,#0CCHLCALL WRITE_DQ ;读出传感器所示温度MOV A,#44HLCALL WRITE_DQLCALL DISP_LED;调用LED显示程序LCALL INI_DQMOV A,#0CCHLCALL WRITE_DQMOV A,#0BEHLCALL WRITE_DQLCALL READ_DQRET;*DS18B20初始化程序*INI_DQ:SETBDQNOP ;NOP ;空操作 PC值加2CLRDQMOV R1,#3INI_0: MOV R0,#80 DJNZ R0,$ DJNZ R1,INI_0SETB DQNOP ;NOP ;NOP ;空操作 PC值加3MOVR7,#25INI_1: JNB DQ,INI_2 ;DQ为0则转 DJNZ R7,INI_1 ;延时 LJMP INI_3INI_2: SETB FLAG ;标志位 LJMP INI_4INI_3: CLR FLAG LJMP INI_5INI_4: MOV R0,#80 DJNZ R0,$ ;时序要求延时一段时间INI_5: SETB DQ RET;*DS18B20写命令*WRITE_DQ:MOVR6,#8 CLR CTloop:CLRDQMOV R2,#6DJNZ R2,$RRCA;最低位移到C中MOV DQ,CMOV R2,#23DJNZ R2,$SETB DQNOPDJNZ R6,TloopSETB DQRET;*读DS18B20数据函数*READ_DQ:MOV R5,#2MOV R0,#30HREAD_0:MOV R6,#8READ_1:CLRCSETB DQNOPNOPCLRDQNOPNOPNOPNOPSETBDQMOV R2,#9DJNZ R2,$MOV C,DQMOV R3,#23DJNZ R3,$RRCADJNZR6,READ_1MOV R0,AINC R0DJNZ R5,READ_0SETB DQRET;*温度数据处理程序*PROC_TEMP:CLR FLAG_NEGMOV A,TEMP_LSWAP A ; A中高低四位互换ORL A,#0F0HMOV TEMP_INT,AMOV A,TEMP_HSWAP AORL A,#0FHANL TEMP_INT,AMOV A,TEMP_H CLR P3.6 CLR P3.7 JB ACC.7,BAOJING1 ;低于零度亮红灯报警;JBACC.7,NEGTIVEMOV A,TEMP_LANL A,#0FHMOV DPTR,#TAB3MOVC A,A+DPTRMOV TEMP_DP,ALJMP PRO_0;*报警函数*BAOJING1: SETB P3.6 RET;NEGTIVE: ;温度值为负时处理程序,按实际情况,处理过程比较复杂;SETB FLAG_NEG;MOV A,TEMP_L;CPL A;ANL A,#0FH;MOV R1,A;CJNE R1,#0FH,PRO_1 ; ;低于0则调用报警函数;PUSH ACC;MOV A,TEMP_INT;SUBB A,#1;MOV TEMP_INT,A;POP ACC;MOV TEMP_DP,#00H ; LJMP PRO_2PRO_1: ADD A,#1MOV DPTR,#TAB3MOVC A,A+DPTRMOV TEMP_DP,APRO_2:MOV A,TEMP_INTCPL AMOV TEMP_INT,APRO_0:MOV A,TEMP_INT MOV B,#100DIV ABMOV TEMP_100,AMOV A,BMOV B,#10DIV ABMOV TEMP_10,AMOV TEMP_1,B RET;*LED初始化*CLR_LED:CLR C0CLR C1CLR C2CLR C3CLR C4RET;*LED显示*DISP_LED:LCALL CLR_LEDSETB C0JNB FLAG_NEG,DL_0MOV P1,#0BFH LCALL DELAY_10MSLJMP DL_1DL_0: MOV P1,#0FFHLCALL DELAY_10MSDL_1:LCALL CLR_LEDSETB C1 ;显示百位 MOV A,TEMP_100 MOV DPTR,#TAB4MOVC A,A+DPTRMOV P1,A CJNE A,#0F9H,CESHI LCALL BAOJING2 ;超过一百启动扬声器报警 CESHI:LCALL DELAY_10MSLCALL CLR_LEDSETB C2 ;显示十位MOV A,TEMP_10MOV DPTR,#TAB4MOVC A,A+DPTRMOV P1,ALCALL DELAY_10MSLCALL CLR_LEDSETB C3MOV A,TEMP_1 ;显示 个位MOV DPTR,#TAB5MOVC A,A+DPTRMOV P1,ALCALL DELAY_10MSLCALL CLR_LEDSETB C4 ;显示小数点后的数MOV A,TEMP_DPMOV DPTR,#TAB4MOVC A,A+DPTRMOV P1,A RET;*BAOJING2: SETB P3.7 RET ;*延时函数*DELAY_10MS:MOV R3,#20DEL_1:MOV R4,#248DJNZ R4,$DJNZ R3,DEL_1RET;*小数位转换*TAB3:DB00H,01H,01H,02HDB02H,03H,04H,04HDB05H,06H,06H,07HDB07H,08H,09H,09H;*无小数点位的段码*TAB4:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;*有小数点*TAB5:DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10HEND系统硬件原理图五、心得体会本次课程设计我们进行了两个课程设计:一是单片机的学习与应用;二是新器件的学习。单片机的学习与应用相关的总结与体会。在课设过程中,我们不仅巩固了平时所学习的单片机知识,而且通过不断查阅相关资料,学习新的知识,可以说,通过这次单片机的实践学习,我们学到了很多,而且对单片机的有关知识以及其在现实生活中的多方面应用有了更深层次的认识,这对于我们以后的学习和步入社会后参加工作都有很大的帮助。在此次课程设计的进程中,我们遇到了很多问题,例如,一开始我们在确定课程时间的题目后,在编写程序时,由于思路不太清晰,而且设计要求中需要使用新器件DS18B20智能测温,而其相关知识我们很模糊甚至可以说一无所知,不过后来,我们通过查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论