综合训练二-温度检测系统设计资料.doc

上传人:牧羊曲112 文档编号:4296243 上传时间:2023-04-14 格式:DOC 页数:15 大小:364.50KB
返回 下载 相关 举报
综合训练二-温度检测系统设计资料.doc_第1页
第1页 / 共15页
综合训练二-温度检测系统设计资料.doc_第2页
第2页 / 共15页
综合训练二-温度检测系统设计资料.doc_第3页
第3页 / 共15页
综合训练二-温度检测系统设计资料.doc_第4页
第4页 / 共15页
综合训练二-温度检测系统设计资料.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《综合训练二-温度检测系统设计资料.doc》由会员分享,可在线阅读,更多相关《综合训练二-温度检测系统设计资料.doc(15页珍藏版)》请在三一办公上搜索。

1、辽宁工程技术大学专业课程综合训练项目说明书题 目: 温度检测系统设计 课程名称: 单片微型计算机原理与应用 班级: 学 号: 姓名: 指导教师: 李文华 完成日期: 2016/12/26 一、设计题目温度检测系统设计二、设计内容1-温度由8个LED小灯显式040的温度范围,即,8个小灯全灭表示当前温度小于0,全亮为大于40,在此其间有8个档位,每亮一盏小灯表示升高5。2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。三、综合训练要求设计说明书(30005000字) 1份四、 评分标准序号评分标准满分实际得分1设计方案是否可行,设计依据是否充分,软硬件资源分配是

2、否合理42设计说明书设计过程是否清晰,设计内容是否全面,计算是否正确,行文章节格式是否规范43绘图是否清晰,标注是否表达准确规范2总分10补充评分要求:对综合训练项目中,能够采用开发板调试,或软件仿真的形式实现功能,将视难易程度及能够按时提交情况酌情提分,但不超过每个综合项目满分10分的标准。五、指导教师评语该生设计的过程中表现 ,设计内容反映的基本概念及计算 ,设计方案 ,说明书撰写 ,答辩表现 。成 绩: 指导教师日期 目录1 系统总体设计1.1 系统总体设计思路.41.2 设计目的.41.3 设计步骤.41.4 设计方案.42 硬件设计2.1 温度检测系统的硬件组成.42.2 单片机功能

3、和特点.42.3 A/D模数转换.72.4 DS18B20温度传感器.83 软件设计3.1 程序流程图.103.2 汇编语言程序.114 结论.155参考文献.151 系统总体设计1.1系统总体设计思路:将 DS18B20的温度寄存器与单片机相接,然后单片机没间隔多长时间就读取一下DS18B20的温度寄存器,然后判定一下温度大概的范围,找到满足的范围就跳转相应的程序段,点亮相应的小灯。1.2设计目的:利用单片机的8个LED小灯大概显示温度范围1.3 1.明晓硬件的功能和原理。 2.设计外部电路。3.画出程序流程图。4.设计程序。5.将程序输入开发板或模拟器进行验证修改。1.4设计方案:(1)调

4、用延时子程序,设定读取间隔时间 (2)读取DS18B20的温度寄存器(3) 判断温度范围(4)跳转到相应的程序段,点亮LED小灯(5)进行循环显示2 硬件设计2.1温度检测系统的硬件组成:主要是由单片机、模数转换器、温度传感器三部分组成2.2各部分的功能:(1)单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪

5、烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它主要负责各个模块的初始化工作;设置定时器、寄存器的初值;读取并处理来自温度传感器的信号;处理按键响应;控制液晶实时显示等。 AT89C51管脚图VCC:电源GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程

6、序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制

7、)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2

8、口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号RST:复位输入。ALE/PROG:地址锁存控制信号。PSEN:外部程序存储器选通信号。EA/VPP:访问外部程序存储器控制信号。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相

9、放大器的输出端。(2)模数转换模块:ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。 引脚功能(外部特性)ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下:15和2628(IN0IN7):8路模拟量输入端。8、14、15和1721:8位数字量输出端。22(ALE):地址锁存允许信号,输入

10、,高电平有效。6(START):AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。7(EOC):AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+)和16(VREF(-):参考电压输入端11(Vcc):主电源输入端。13(GND):地。2325(ADDA、ADDB、ADDC):3位地址输入线,用

11、于选通8路模拟输入中的一路 ADC808管脚图(3)数据采集模块:传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。其管脚图如图 1.DS18B20的特性9(1)适应电压范围更宽,电压范围:3.05.5V,寄生电源方式下可由数据线供。(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一

12、只三极管的集成电路内。(5)温范围55125,在-10+85时精度为0.5。(6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。(8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2.DS18B20内部结构及DS18B20的管脚排列64位光刻ROM是出厂前被光刻好的,它可以看作

13、是该DS18B20的地址序列号。不同的器件地址序列号不同。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的引脚定义:(1)DQ为数字信号输入/输出端(2)GND为电源地(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)3 软件设计3.1主程序流程图: 子程序流程图:开始开始结 束循环程序判断温度延时程序结 束信号处理温度显示初始化获取温度模数转换3.2 主程序:TEMPER_L DATA 36H ;温度寄存器的低位TEMPER_H DATA 35H ;温度寄存器的高位TEMPER_NUM DATA 6

14、0H ;保存温度值FLAG BIT 00H ;器件是否存在的标志位,器件存在由软件置1,否则清0DQ BIT P1.0 ORG 0000HAJMP START; /*主程序*/ *ORG 0030HSTART: MOV SP,#70HCALL GET_TEMPER ;读取温度值CALL TEMPER_COV ;读取转换后的温度值MOV R0,ACALL DISPCALL DELAYAJMP START;*/*取得温度子程序*/ *GET_TEMPER: SETB DQ CALL CHECK ; MOV A,#0CCH ;跳过ROM匹配(当总线上只有一个器件时可跳过读ROM命令)CALL DSW

15、RITE ; 写入命令MOV A,#44H ; 发出温度转换命令CALL DSWRITENOPCALL DELAYCALL DELAYCALL CHECK MOV A,#0CCH ; 跳过ROM匹配CALL DSWRITE MOV A,#0BEH ; 发出读温度命令CALL DSWRITECALL DSREAD ;读取温度的低位MOV R0,#TEMPER_LMOV R0,A ;存入TEMPER_LCALL DSREAD ;读取温度的低位DEC R0 ;存入TEMPER_HMOV R0,ARET* /*读DS18B20的程序,从DS18B20中读出一个字节的数据*/ *;*DSREAD: MO

16、V R2,#8READ1: CLR CSETB DQNOPCLR DQNOPSETB DQMOV R3,#01DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,READ1RET* /*写DS18B20序子程序*/ *;* DSWRITE: MOV R2,#8CLR CWRITE1: CLR DQMOV R3,#6 ;延时12USDJNZ R3,$RRC AMOV DQ,CMOV R3,#23 ;46USDJNZ R3,$SETB DQNOPDJNZ R2,WRITE1SETB DQRET;* /*温度转换程序*/ *;* TEMPER_COV:

17、MOV A,#0F0H ANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值,INC TEMPER_NUM ;D3为1则加1,为0则舍去TEMPER_COV1: MOV A,TEMPER_H ; 高位ANL A,#07H ;温度寄存器的高字节只有后3位有效SWAP AORL A,TEMPER_NUM ; 拼装MOV TEMPER_NUM,A ; 保存变换后的温度数据CALL BIN_BCDRET*; /*检查器件是否存在子程序*/ *;* C

18、HECK: CALL DSINIT ; 初始化JB FLAG,CHECK1 ; 检查标志位判断器件是否存在AJMP CHECK ; 若DS18B20不存在则继续检测CHECK1: CALL DELAY1RET * /*BCD码转换子程序*/ * BIN_BCD: MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARET;* ; /*初始化子程序程序*/;初始化时序是由总线发出一个复位信号,然后由器件发 *;出一个应答信号,表示该器件存在,并准备好开始工作;*DSINIT: SETB DQNOPCLR DQ ;总线发一个

19、复位信号MOV R0,#80HDJNZ R0,$ ; 延时SETB DQ ;拉高总线准备检测MOV R0,#25H ;延时DJNZ R0,$JNB DQ,INIT2 ;检测是否有应答信号,有应答信号跳转AJMP INIT3 ; 延时INIT2: SETB FLAG ; 置标志位,表示DS1820存在AJMP INIT4INIT3: CLR FLAG ; 清标志位,表示DS1820不存在AJMP INIT5INIT4: MOV R0,#6BH DJNZ R0,$ ; 延时INIT5: SETB DQ ;拉高总线RET * /*配置程序*/ *;* RE_CONFIG: JB FLAG,RE_CO

20、NFIG1 ; 若DS18B20存在,转RE_CONFIG1RETRE_CONFIG1: MOV A,#0CCH ; 发SKIP ROM命令CALL DSWRITEMOV A,#4EH ; 发写暂存存储器命令CALL DSWRITEMOV A,#00H ; TH(报警上限)中写入00HCALL DSWRITEMOV A,#00H ; TL(报警下限)中写入00HCALL DSWRITE MOV A,#7FH ; 选择12位温度分辨率CALL DSWRITE RET ;* ; /*显示子程序*/ *;* DISP: MOV A,R0 ;转换结果低位ANL A,#0FHACALL DSEND ;显

21、示MOV A,R0SWAP AANL A,#0FH ;转换结果高位ACALL DSEND ;显示RETDSEND: MOV DPTR,#SGTB1MOVC A,A+DPTR ;取字符MOV SBUF,AJNB TI,$CLR TI RET ;* ; /*延时程序*/ *;* DELAY: MOV R7,#00HDELAY0: MOV R6,#00HDJNZ R6,$DJNZ R7,DELAY0RETDELAY1: MOV R7,#20H DJNZ R7,$RET4结论 经过必要的信息检索及借鉴,加上对流程图的分析。联系课上所学的定时/计数和循环内容。勉强达到设计要求。本次综合训练主要加深了对单

22、片机汇编语言编程中的延时、循环、判断程序模块的学习,其次也回顾了对单片机引脚的作用。对于设计心得来说,不要把它想的太过复杂,学会运用流程图,然后用程序模块挨个解决。由于条件的问题,程序没有进行调试,但对结果有一定的信心。强调的设计心得就是一定先要画出流程图来,知道哪块用什么!5参考文献1 胡乾彬,单片微型计算机原理与应用 第三版M,武汉: 华中科技大学出版社, 2015。2 刘乐善,等.微型计算机接口技术及应用M.武汉:华中理工大学出版社,1993.3 潘新民,等.单片微型计算机实用系统设计M.北京:人民邮电出版社,1992.4张毅刚,等.MCS-51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,1990.5李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1994.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号