版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、28 成都理工大学工程技术学院实验报告成都理工大学工程技术学院单片机课程设计报告 数字温度计设计 指导教师: 学 生: 学 号: 2013年12月 25 日摘要在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,作为自动化专业的学生,我们学习了单片机,就应该把它熟练应用到生活之中来。本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。关键词:单片机,数字
2、控制,数码管显示,温度计,DS18B20,AT89S52。 目录1概述41.1设计目的41.2设计原理41.3设计难点42 系统总体方案及硬件设计42.1数字温度计设计方案论证52.2.1 主控制器52.4 系统整体硬件电路设计83系统软件设计83.1初始化程序83.2读出温度子程序93.3读、写时序子程序103.4 温度处理子程序123.5 显示程序124 Proteus软件仿真125硬件实物136课程设计体会.14附录1:151概述1.1设计目的 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的
3、要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,可广泛用于食品库、冷库、粮库、温室大棚等需要控制温度的地方。目前,该产品已在温控系统中得到广泛的应用。1.2设计原理 本系统是一个基于单片机AT89S52的数字温度计的设计,用来测量环境温度,测量范围为-50110度。整个设计系统分为4部分:单片机控制、温度传感器、数码显示以及键盘控制电路。整个设计是以AT89S52
4、为核心,通过数字温度传感器DS18B20来实现环境温度的采集和A/D转换,同时因其输出为数字形式,且为串行输出,这就方便了单片机进行数据处理,但同时也对编程提出了更高的要求。单片机把采集到的温度进行相应的转换后,使之能够方便地在数码管上输出。LED采用三位一体共阳的数码管。1.3设计难点 此设计的重点在于编程,程序要实现温度的采集、转换、显示和上下限温度报警,其外围电路所用器件较少,相对简单,实现容易。2 系统总体方案及硬件设计2.1数字温度计设计方案论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行
5、数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.2总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用4位共阴LED数码管以串口传送数据实现温度显示。图1 总体设计框图2.2.1 主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设
6、计需要,适合便携手持式产品的设计使用。AT89S52单片机芯片具有以下特性:1)指令集合芯片引脚与Intel公司的8052兼容;2)4KB片内在系统可编程FLASH程序存储器;3)时钟频率为033MHZ;4)128字节片内随机读写存储器(RAM);5)6个中断源,2级优先级;6)2个16位定时/记数器;7)全双工串行通信接口;8)监视定时器;9)两个数据指针;2.2.2 显示电路2.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方
7、式。DS18B20的性能特点如下:1.全数字温度转换及输出。2.先进的单总线数据通信。3.最高12为位分辨率,精度可达±0.5摄氏度。4.12位分辨率时的最大工作周期为750毫秒。5.可选择寄生工作方式。6.检测温度范围为+55+125(-67+257)。7.内置EEPROM,限温报警功能。8.64位光刻ROM,内置产品序列号,方便多机链接。9.多样封装形式,便于不同硬件系统。2.3 DS18B20温度传感器与单片机的接口电路2.4 系统整体硬件电路设计2.4.1 主板电路 系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,单片机主板电路如
8、图5 所示:图5 单片机主板电路2.4.2 显示电路 图6 温度显示电路3 系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1初始化程序 置1发出存在脉冲延时15-60usP3.7设为总线发出复位脉冲释放总线检测总线=1 图7 初始化程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的2字节,读出温度的低八位和高八位,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图8示初始化ds18b20发送字节指令到总线发送转换指令调用读写指令读温度延时调用时序初始化判断F0=1EA=1 图8 读温
9、度程序流程图3.3读、写时序子程序读写的程序是本次设计中的重点和难点,通过我们对其时序的分析,从而写出高效的程序。写1,0时序读0,1时序释放总线所写位送到总线延时15-60us判断总线=0写入位=0第二次写写入位=1将总线拉低延时1.7us将总线拉高开始读位延时60-120us图9 写时序子程序流程图 图10 读时序子程序流程图3.4 温度处理子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图11所示从18620取温度低位保存读取高位保存进行十进制转换图11 温度处理程序流程图 轮流送温度值高低位至数码管3.5 显示程序 此函数实现的对数码管
10、显示的处理,其亮点在于可以直接对数码管进行操作,其本身是个两变量函数,第一个变量是要开通的位选,第二个变量是要显示的数据,这样我们可以直接方便而又简单直观的对数码管进行操作。程序流程图如图12。 显示小数位显示低位显示高位动态显示开小数位位选开低位位选开高位位选 4 Proteus软件仿真5 硬件实物6 课程设计体会这次课程设计虽然只有短短的两周时间,但我受益匪浅。刚开始时觉得自己的课题无处入手,但通过老师的讲解和查询资料,开始有了自己的思路,整理出了总体方案,然后设计出硬件原理图,源程序等。在这次设计中困难最大的就是调试,收获最多的也是调试,因为调试的时候你必须对程序相当的熟悉,对每一条指令
11、相当了解,并且硬件的连接也要清晰的印在脑海里,只有这样你才能让软件和硬件结合在一起,实现预期功能。在编程结束时需要编写END指令,这也是初学者编程时经常忘记的。总之,在课程设计中遇到了不少的困难,在老师的细心讲解和辅导下,最终完成了本次设计。在此,由衷感谢老师的指导和帮助。 参考文献1DS18b20数据手册。2 求是科技编著8051系列单片机C程序设计完全手册北京: 人民邮电出版社, 20063 余发山,王福忠.单片机原理及应用技术.徐州:中国矿业大学出版社,200附录1: DQ BIT P3.7 ; 定义p3.7为ds18b20的地址总线 swpH equ 0d2H; 定义swph=0d2h
12、 swpL equ 0ffH ; 定义swpL=0ffh 初始化 WDLSB DATA 30H ; 定义wdlsb=30h WDMSB DATA 31H ; 定义wdmsb=31h;* ORG 0000H ;主程序入口地址 LJMP MAIN ;跳转到main ORG 000BH ;timer0的入口地址 LJMP TMR0 ; 跳到Timer0 ;*; Timer0 Interrupt Service RoutineTMR0: MOV TH0,#swpH ;轮流送温度值的高低两位到数码管 高位 MOV TL0,#swpL ;温度值的低位 JB 21H,DSL JB 22H,DSL1; JB
13、23H,DSL2 MOV P0,43H ORL P0,#01000000B ; 十位位选为1 SETB P2.0;小数点不亮 SJMP EXITDSL: MOV P0,42H ORL P0,#00100000B ; 个位位选 CPL P2.0;个位后面小数位亮 SJMP EXIT1DSL1:MOV P0,41H ORL P0,#00010000B ;小数位位选SETB P2.0;小数点不亮SJMP EXIT2;DSL2: ; MOV P0,40H;ORL P0,#10000000B;SETB P2.0;SJMP EXIT3EXIT: CPL 21H; 21h取反,即21h=1 RETI EXI
14、T1: CPL 22H; 22h=1 CPL 21H ;21h=0 RETI EXIT2: ; CPL 23H; CPL 22H ;22h=0 RETI ;EXIT3: ; CPL 23H; ; RETI ; Main programMAIN: TOINIT: CLR EA MOV TMOD,#01H ;定义timer0的工作方式为1 MOV TH0,#swpH ;装初始值 MOV TL0,#swpL SETB EA ;开总中断 SETB ET0;开中断允许 SETB TR0;开定时器中断;* ; 地址清零,腾出地址空间 MOV R2,#3 ;R2里放循环次数为2次 MOV R0,#41H ;
15、 R0=42HOVER: MOV R0,#00H; 42H=00H INC R0; R0=43HDJNZ R2,OVER; 判断2次循环是否结束 LOOP: LCALL DSWD ; SJMP LOOP ;*; Read a temperature from the DS18B20DSWD: LCALL RSTSNR ; Init of the DS18B20 JNB F0,KEND ; F0=0则转移 MOV R0,#0CCH;R0=0cch LCALL SEND_BYTE ; Send a byte to the 1 wire line MOV R0,#44H LCALL SEND_BYT
16、E ; Send a Convert Command SETB EA ; MOV 48H,#1 ;SS2: MOV 49H,#255;SS1: MOV 4AH,#255;SS0: DJNZ 4AH,SS0; DJNZ 49H,SS1; DJNZ 48H,SS2 ; CLR EA ;进入读时序禁用任何中断 LCALL RSTSNR ; JNB F0,KEND; MOV R0,#0CCH ; LCALL SEND_BYTE ; MOV R0,#0BEH ; 读命令 LCALL SEND_BYTE ; Send Read Scratchpad command LCALL READ_BYTE ; Re
17、ad the low byte from scratchpad MOV WDLSB,A ; Save the temperature (low byte) LCALL READ_BYTE ; Read the high byte from scratchpad MOV WDMSB,A ; Save the temperature (high byte) LCALL TRANS12 ; 读取温度值的10进制数KEND: SETB EA ; RET;*; 从1820读取温度并转换为10进制TRANS12: MOV A,30H ;30H存从1820取的温度值的低位 ANL A,#0F0H ;选取读取
18、温度值低位中的高4位储存温度 MOV 3AH,A ;储存至3AH MOV A,31H ; 31h存从1820读取温度的高位 ANL A,#0FH ; 保存温度值高位中的低4位 ORL A,3AH ; A中为温度值 SWAP A ;半字节交换 MOV B,#10 ;转换为10进制 DIV AB ;MOV 42H,A MOV 42H,B ; 除10 取余数,42H即个位 MOV B,#10 DIV AB MOV 43H,B ;43H放十3位 MOV A,30H ANL A,#0FH ;1820中读取的温度值低位中的低4位,即小数位 MOV DPTR,#tab1 ;查表小数位 MOVC A,A+DP
19、TR MOV 41H,A ;41H中为小数位 RET ;*; Send a byte to the 1 wire lineSEND_BYTE: MOV A,R0 ;保存数值 A=0CCH MOV R5,#8;发送次数为8次SEN3: CLR C; 清零 RRC A; 循环右移送值 JC SEN1 ; 判断写0还是写1 LCALL WRITE_0 SJMP SEN2 SEN1: LCALL WRITE_1 SEN2: DJNZ R5,SEN3 ; 判断是否写完 RET;*; Read a byte from the 1 wire line 读时序READ_BYTE: MOV R5,#8 ;8次R
20、EAD1: LCALL READ ;跳转到读时序 RRC A ;把读的的值右循环给A DJNZ R5,READ1 ;判断是否读完 MOV R0,A RET;*; Reset 1 wire line时序初始化RSTSNR: SETB DQ ; P3.7=1 NOP;延时 NOP CLR DQ ;P3.7=0发出复位脉冲 MOV R6,#250 DJNZ R6,$ ; 保持500us MOV R6,#50 DJNZ R6,$ ; 100us SETB DQ ; 释放总线 MOV R6,#15 DJNZ R6,$ ; 30us CALL CHCK ;判断p3.7位是否被拉高,如已经拉高,则low,否
21、则,将其拉高 MOV R6,#60 DJNZ R6,$ ; 120us SETB DQ ; RET;*; low level subroutines 判断p3.7位是否被拉高,如已经拉高,则low,否则,将其拉高CHCK: MOV C,DQ ; C=P3.7 JC RST0 ;进位标志位P3.7=1则转移RST0 SETB F0 ; 标志位F0=1 SJMP CHCK0 RST0: CLR F0 ; FO=0CHCK0: RET;*WRITE_0: ;写0时序 CLR DQ ;开始写p3.7=0,拉低 MOV R6,#30; 延时60us DJNZ R6,$ ; 60us SETB DQ ;
22、p3.7=1 RET ;*WRITE_1: ;写1时序 CLR DQ ; 拉低 NOP ;延时 NOP NOP NOP NOP SETB DQ ;释放总线 MOV R6,#30 DJNZ R6,$ ;延时60us RET;*READ: ;读时序 SETB DQ ;拉高 NOP ;延时 NOP CLR DQ ;拉低 NOP ;延时 NOP SETB DQ ;拉高 NOP ;1us NOP NOP NOP NOP NOP NOP MOV C,DQ MOV R6,#23 DJNZ R6,$ ;等待46us RET;*;DELAY10: MOV R4,#20 此段程序未用到;D2: MOV R5,#3
23、0 ; DJNZ R5,$ ; 60us ; DJNZ R4,D2 ; 40us ; RETtab1: DB 00H,01H,01H,02H,02H,03H,03H,04HDB 05H,06H,06H,07H,07H,08H,08H,09H END 数字电子钟设计 目 录1实验目的22实验题目描述和要求 23设计报告内容23.1实验名称23.2实验目的23.3实验器材及主要器件23.4数字电子钟基本原理33.6数字电子钟电路图43.7数字电子钟的组装与调试44 实验结论55 实物效果图56、实验心得5参考文献 5附录 61实验目的(1).掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、
24、安装、测试方法;(2).进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;(3).提高电路布局布线及检查和排除故障的能力;(4).培养书写综合实验报告的能力。2实验题目描述和要求(1)设计一个有“时”、“分”、“秒”(23小时59分59秒)显示的电子钟;(2)用中小规模集成电路组成电子钟,并在实验电路板上进行组装、调试;(3)画出框图和逻辑电路图,写出设计、实验总结报告;3设计报告内容3.1实验名称数字电子钟3.2实验目的·掌握数字电子钟的设计、组装与调试方法;·熟悉集成电路的使用方法。3.3实验器材及主要器件28(1)2N5551( 6片)(2)AT89
25、S52(1片)(3)共阴七段三位显示器(2片)(4)电阻、电容、导线等(若干)3.4数字电子钟基本原理数字电子钟的逻辑框图如图3-4所示。它由计数器、显示器。晶振的振荡电路产生的信号经过AT89S52的P3.4口为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”、“秒”显示时间。图3-43.5数字电子钟单元电路设计、参数计算和器件选择(一)计数器秒脉冲信号经过AT89S52,分别得到“秒”个位、十位、“分”个位、十位以及“时”个位、十位的计时。“秒”“分”计数器为六十进制,小时为二十四进制。(1) 六十进制计数由分频器来的秒脉冲信号,首先送到“秒”计数器进行累加计数,秒计数器应完成一分钟之
26、内秒数目累加,并达到60秒时,进行分钟累加(2)二十四进制计数“12翻1”小时计数器是按照“0102032223000102”规律计数的,这与日常生活中的计时规律相同。利用清零端实现起从2300的翻转,其中“24”为过渡状态不显示。其中,“时”十位是3进制,“时”个位是十进制和四进制。开始主程序循环到来中断开始1秒到来,秒加160秒到了,分加160分到来,时加1(二)显示器本系统用七段发光二极管来显示输出的数字,显示器有两种:共阳极显示器或共阴极显示器。对应8031的显示器是共阳极显示器。3.6数字电子钟电路图 图3.63.7数字电子钟的组装与调试由图中所示的数字中系统组成框图按照信号的流向分
27、级安装,逐级级联。这里的每一级是指组成数字中的各个功能电路。4.实验结论通过运用数字集成电路设计的24小时制的数字电子时钟,经过试验,成功实现了一下基本功能: 能准确计时,以数字形式显示时、分、秒的时间。5、实物效果图6.实验心得通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。从中对我们学的知识有了更进一步的理解,而且更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。设计本身并不是有很重要的意义,
28、而是同学们对待问题时的态度和处理事情的能力。各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。另外,我还渐渐熟悉了proteus这个仿真软件的各个功能,让我体会到了期中的乐趣,还在电脑制作文档的过程中,使我对办公软件有了更进一步的了解和掌握。课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对单片机课程的理解,还让我感受到了设计电路的乐趣。在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此这次课程设计非常有意义
29、。参考文献:【1】. 现代数字电路与逻辑设计 清华大学出版社 北京交通大学出版社.【2】. 模拟电子技术(修订版) 清华大学出版社 北京交通大学出版社【3】. 模拟电子技术教程 电子工业出版社【4】. 朱定华主编.电子电路测试与实验.北京:清华大学出版社,2004.附录: ORG 0000H LJMP MAIN ;上电,跳向主程序 ORG 000BH ;T0的中断入口 LJMP IT0P ORG 1000HMAIN: MOV TMOD,#01H ;设T0为方式1 MOV 20H,#14H ;装入中断次数,20次即为1s钟了 CLR A ; A清0 MOV 40H,A ;"时“单元清0
30、 MOV 41H,A ;"分”单元清0 MOV 42H,A ;“秒”单元清0 SETB ET0 ;允许T0申请中断 SETB EA ;总中断允许 MOV TH0,#3CH ;给T0装入计数初值 MOV TL0,#0B0H SETB TR0 ;启动T0 MOV 40H,#23H MOV 41H,#59H MOV 42H,#40H / MOV R2,#3 ; 清除地址空间 / MOV R0,#60H /OVER: / MOV R0,#00H / INC R0 / DJNZ R2,OVERHERE: LCALL DISPLAY SJMP HERE RETIIT0P: PUSH PSW ;T
31、0中断服务子程序入口,保护现场 PUSH Acc MOV TH0,#3CH ;重新装入初值(方式1不带自动重装的) MOV TL0,#0B0H DJNZ 20H,RETURN ;1S时间未到,返回 MOV 20H,#14H ;重置中断次数 MOV A,#01H ;“秒”单元曾1 ADD A,42H DA A ;“秒"单元十进制调整 MOV 42H,A ;“秒”的BCD码存回“秒”单元 CJNE A,#60H,RETURN ;是否到60s,未到则返回 MOV 42H,#00H ;计满60s,“秒”单元清0 MOV A,#01H ;“分”单元曾1 ADD A,41H DA A ;“分”单
32、元十进制调整 MOV 41H,A ;“分”的BCD码存回“分”单元 CJNE A,#60H,RETURN ;是否到60分,未到则返回 MOV 41H,#00H ;计满60分,“分”单元清0 MOV A,#01H ;"时“单元曾1 ADD A,40H DA A ;”时“单元十进制调整 MOV 40H,A CJNE A,#24H,RETURN ;是否到24小时,未到则返回 MOV 40H,#00H ;到24小时,”时“单元清0 LCALLDISPLAYRETURN: POP Acc ;恢复现场 POP PSW ;中断返回 RETI DISPLAY: ;显示程序 MIAO: ;秒的显示程序 MOV A,42H ANL A,#0FH ;取秒的低位MOV DPTR,#TABMOVC A,A+DPTR MOV P0,A ;段码送p0口/MOV P2,#00100000B MOV P2,#0ORL P2,#00100000B ;开秒
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保洁服务合同样本范本
- 环保我们的责任与追求
- 电脑设备批量选购合同示例
- 物流平台服务合同的维权途径
- 银行环境清洁合作协议
- 招标文件审核技巧分享全解读详解
- 人工分包劳务合同范本
- 苗木采购供应商招募通知
- 钢材招标合同赠与
- 简化劳务分包协议样本
- 数学思想与方法-国家开放大学电大机考网考题目答案
- 杭州奥泰生物技术股份有限公司IVD研发中心建设项目环境影响报告表
- 公共卫生事业管理专业职业生涯规划书
- GB/T 43232-2023紧固件轴向应力超声测量方法
- 低压配电室的安全操作规程
- 新目标汉语口语课本2课件-第2单元
- 二手车买卖合同(标准版范本)
- 国有企业合规制度培训
- 血液透析的医疗质量管理与持续改进
- 铬安全周知卡、职业危害告知卡、理化特性表
- 部编小语必读整本书《西游记》主要情节赏析
评论
0/150
提交评论