温度采集系统课程设计报告(共19页).doc

上传人:飞****2 文档编号:13557785 上传时间:2022-04-30 格式:DOC 页数:19 大小:5.49MB
返回 下载 相关 举报
温度采集系统课程设计报告(共19页).doc_第1页
第1页 / 共19页
温度采集系统课程设计报告(共19页).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《温度采集系统课程设计报告(共19页).doc》由会员分享,可在线阅读,更多相关《温度采集系统课程设计报告(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1、设计目的 1)查资料了解8255A和ADC0809AD转换器的工作原理 2)原理图设计,用PROTEL画出原理图 3)软件设计,给出流程图及源代码并加注释2、所用设备1)8088CPU2)DS18B20温度传感器3)A/D570转换器4)8255A可编程并行接口5)3片LED显示6)74LS138译码器3、设计内容及步骤以8088 CPU 为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,LED显示器等。首先传感器把所测的温度转换为电压,输入A

2、/D转换器中进行转换,然后再把得到的二进制数经过CPU在LED上显示出来系统总体方案按照设计要求我们把传感器选择DS18B20,A/D转换采用AD570,把温度传感器采集过来的电压信号直接传给A/D 转换器,然后通过8路数据接入8255可编程芯片,经微处理器8088处理后输出,通过LED显示当前采集的温度值。图-1 系统框图4、程序设计(各个软件模块设计和流程图)4.1温度采集DS18B20的读数据流程图图-2 温度采集DS18B20的读数据流程图4.2 处理温度BCD码流程图图-3 处理温度BCD码流程图4.3 显示数据刷新流程图图-4 显示数据刷新流程图4.4系统总的流程图图-5系统总的流

3、程图4.5系统总程序TEMPER_L DATA 36H ;温度寄存器的低位 TEMPER_H DATA 35H ;温度寄存器的高位 TEMPER_NUM DATA 60H ;保存温度值 FLAG BIT 00H ;器件是否存在的标志位,器件存在由软件置1,否则清0 DQ BIT P1.0 ORG 0000H AJMP START ;*; /*主程序*/ * ;* ; ORG 0030H START: MOV SP,#70H CALL GET_TEMPER ;读取温度值 CALL TEMPER_COV ;读取转换后的温度值 MOV R0,A CALL DISP CALL DELAY AJMP S

4、TART ;* /*查询方式取得AD转换结果子程序*/ * ;* READAD:MOV AL,92H ;方式字,端口AB为输入方式,C为输出方式OUT PORTCT,AL ;PORTCT为控制端口地址,设方式字MOV AL,01OUT PORTC ,AL ;使PC0为1,PORTC为C端口地址MOV AL,00OUT PORTC,AL ;使PC0为0,启动AD转换W: IN AL,PORTB ;读取端口B中的状态 RCR AL,01 ;如PB0为1,则再查询 JC WMOV AL,01OUT PORTC,AL ;使PC0为1,撤销启动信号IN AL,PORTA ;读取转换数据 ;* ; /*取

5、得温度子程序*/ * ;* ; GET_TEMPER: SETB DQ CALL CHECK ; MOV A,#0CCH ; 跳过ROM匹配(当总线上只有一个器件时可跳过读ROM命令) CALL DSWRITE ; 写入命令 MOV A,#44H ; 发出温度转换命令 CALL DSWRITE NOP CALL DELAY CALL DELAY CALL CHECK MOV A,#0CCH ; 跳过ROM匹配 CALL DSWRITE MOV A,#0BEH ; 发出读温度命令 CALL DSWRITE CALL DSREAD ;读取温度的低位 MOV R0,#TEMPER_L MOV R0,

6、A ;存入TEMPER_L CALL DSREAD ;读取温度的低位 DEC R0 ;存入TEMPER_H MOV R0,A RET ; ;* ; /*读DS18B20的程序,从DS18B20中读出一个字节的数据*/ * ;* ; DSREAD: MOV R2,#8 READ1: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#01 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,READ1 RET ; ;* ; /*写DS18B20子程序*/ * ;* ; DSWRI

7、TE: MOV R2,#8 CLR C WRITE1: CLR DQ MOV R3,#6 ;延时12US DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 ;46US DJNZ R3,$ SETB DQ NOP DJNZ R2,WRITE1 SETB DQ RET ; ;*; /*温度转换程序*/ * ;*; TEMPER_COV: MOV A,#0F0H ANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值 SWAP A MOV TEMPER_NUM,A MOV A,TEMPER_L JNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值,

8、INC TEMPER_NUM ;D3为1则加1,为0则舍去 TEMPER_COV1: MOV A,TEMPER_H ; 高位 ANL A,#07H ;温度寄存器的高字节只有后3位有效 SWAP A ORL A,TEMPER_NUM ; 拼装 MOV TEMPER_NUM,A ; 保存变换后的温度数据 CALL BIN_BCD RET ; ;* ; /*检查器件是否存在子程序*/ * ;* ; CHECK: CALL DSINIT ; 初始化 JB FLAG,CHECK1 ; 检查标志位判断器件是否存在 AJMP CHECK ; 若DS18B20不存在则继续检测 CHECK1: CALL DEL

9、AY1 RET ; ;*; /*BCD码转换子程序*/ * ;* ; BIN_BCD: MOV DPTR,#TEMP_TAB MOV A,TEMPER_NUM MOVC A,A+DPTR MOV TEMPER_NUM,A RET ; ;* ; /*初始化子程序程序*/ ;初始化时序是由总线发出一个复位信号,然后由器件发 * ;出一个应答信号,表示该器件存在,并准备好开始工作 ;* * ; DSINIT: SETB DQ NOP CLR DQ ;总线发一个复位信号 MOV R0,#80H DJNZ R0,$ ; 延时 SETB DQ ;拉高总线准备检测 MOV R0,#25H ;延时 DJNZ

10、R0,$ JNB DQ,INIT2 ;检测是否有应答信号,有应答信号跳转 AJMP INIT3 ; 延时 INIT2: SETB FLAG ; 置标志位,表示DS1820存在 AJMP INIT4 INIT3: CLR FLAG ; 清标志位,表示DS1820不存在 AJMP INIT5 INIT4: MOV R0,#6BH DJNZ R0,$ ; 延时 INIT5: SETB DQ ;拉高总线 RET ; ;* ; /*配置程序*/ * ;*; RE_CONFIG: JB FLAG,RE_CONFIG1 ; 若DS18B20存在,转RE_CONFIG1 RET RE_CONFIG1: MOV

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

12、位 ACALL DSEND ;显示 RET DSEND: MOV DPTR,#SGTB1 MOVC A,A+DPTR ;取字符 MOV SBUF,A JNB TI,$ CLR TI RET ; ;* ; /*延时程序*/ * ;* ; DELAY: MOV R7,#00H DELAY0: MOV R6,#00H DJNZ R6,$ DJNZ R7,DELAY0 RET DELAY1: MOV R7,#20H DJNZ R7,$ RET ; ;* ; /*字符编码*/ * ;* ; SGTB1: DB 03H ;0 DB 9FH ;1 DB 25H ;2 DB 0DH ;3 DB 99H ;4

13、DB 49H ;5 DB 41H ;6 DB 1FH ;7 DB 01H ;8 DB 09H ;9 DB 11H ;A DB 0C1H ;B DB 63H ;C DB 85H ;D DB 61H ;E DB 71H ;F DB 00H TEMP_TAB: DB 00H,01H,02H,03H,04H,05H,06H,07H DB 08H,09H,10H,11H,12H,13H,14H,15H DB 16H,17H,18H,19H,20H,21H,22H,23H DB 24H,25H,26H,27H,28H,29H,30H,31H DB 32H,33H,34H,35H,36H,37H,38H,3

14、9H DB 40H,41H,42H,43H,44H,45H,46H,47H DB 48H,49H,50H,51H,52H,53H,54H,55H DB 56H,57H,58H,59H,60H,61H,62H,63H DB 64H,65H,66H,67H,68H,69H,70H,71H DB 72H,73H,74H,75H,76H,77H,78H,79H DB 80H,81H,82H,83H,84H,85H,86H,87H DB 88H,89H,90H,91H,92H,93H,94H,95H DB 96H,97H,98H,99H END5、硬件设计5.1温度采集模块温度采集部分运用DS18B20

15、传感器,其测温系统简单,测温精度高,连接方便,占用口线少,转换速度快,与微处理器的接口简单,给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。5.1.1 DS18B20简介 (1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围: 3.05.5 V。(4)测温范围:-55 125 。固有测温分辨率为0.5 。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,

16、实现多点测温。5.1.2 DS18B20的内部结构(1) 64 b闪速ROM的结构如下: 开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。 (2) 非易市失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。 (3) 高速暂存存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM。后者用于存储TH,TL值。数据先写入RAM,经校验后再传给E2RAM。而配置寄存器为高速暂存器中的第5个字节,他的内容用于确定温度值的数字转换分辨率,DS18B

17、20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下: 低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即是来设置分辨率,如表1所示(DS18B20出厂时被设置为12位)。 设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。 高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如下所示。其中温度信息(第1,2字节)、TH和TL值第3,4字节、第68字节未用,表现为全逻辑1;第9字节读出的是前

18、面所有8个字节的CRC码,可用来保证通信正确。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5 /LSB形式表示。温度值格式如下: 对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。表2是对应的一部分温度值。 DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若TTH或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,

19、可用多只DS18B20同时测量温度并进行告警搜索。 (4) CRC的产生在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确5.1.3 DS18B20的工作原理 DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解 18B20的内部存储器资源。18B20 共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放 DS18B20ID 编码,其前

20、 8 位是单线系列编码(DS18B20 的编码是19H) ,后面48 位是芯片唯一的序列号,最后 8位是以上 56的位的 CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20 共 64 位 ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20 共9 个字节 RAM,每个字节为 8 位。第1、2 个字节是温度转换后的数据值信息,第 3、4 个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第 5 个字节则是用户第 3 个 EEPROM的镜像。第 6、7、8 个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计

21、的,同样也是内部温度转换、计算的暂存单元。第 9 个字节为前 8个字节的 CRC码。EEPROM 非易失性记忆体,用于存放长期需保存的数据,上下限温度报警值和校验数据, DS18B20共3位EEPROM,并在 RAM 都存在镜像,以方便用户操作。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。 5.1.4 DS18B20的精确延时问题 虽然DS18B20有诸多优点,但使用起来并非易事,由于采用单总线数据传输方式,DS18

22、B20的数据I/O均由同一条线完成。因此,对读写的操作时序要求严格。为保证DS18B20的严格I/O时序,需要做较精确的延时。在DS18B20操作中,用到的延时有15 s,90 s,270 s,540 s等。因这些延时均为15 s的整数倍,因此可编写一个DELAY15(n)函数,源码如下: 只要用该函数进行大约15 sN的延时即可。有了比较精确的延时保证,就可以对DS18B20进行读写操作、温度转换及显示等操作。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。软件模块设计和流程图5.2 A/D转换部分本模块采用A/D570进行转换,A/D570内部带有三态输出门,但不是

23、外部可控的,转换结束时,三态门会自动接通,因此,从转换结束到取走数据这段时间内,输出数据线始终被占据。A/D570的输入模拟电压可为单极性,也可为双极性,极性可通过标为15脚的不同接法来选择。但接地时为单极性输入,电压范围为010V,若悬空则为双极性,电压范围为-5+5V. A/D570要求用低电平启动信号,启动信号输入端为B/-C. 其结构图如下:图-6 A/D转换电路图5.3 数据处理部分本部分采用8255A可编程接口与8088处理器共同作用,进行数据运算,其硬件连接图如下:图-7 数据处理电路图5.4 数据显示电路部分数据显示用3片LED数码管,其电路连接图如下,图中103为排阻1000

24、K。图-8 数据显示电路图5.5系统总电路图图-9 系统总电路图6、心得体会经过一周的学习和设计,终于完成了这次课程设计的内容。通过和其他成员合作,实现了程序的基本功能,以及运用网络和其他书籍查询相关知识的能力,让我们有了灵活使用丰富资源的能力。在程序的设计和编码过程中,不仅将书本的知识又重新巩固了一遍,同时还查阅了大量的书籍文献,提高了自身能力;从项目的角度来看做到了知识的灵活运用,提高了软件的设计能力和编码熟练度。在课程设计过程中,我遇到了很多问题,虽然只是一个很简单的设计课题,却让我从中体会到了,做好一件事所需要的努力。但是,这是一个很好的经历,在遇到问题的时候,能查阅相关书籍和询问老师

25、,在老师的引导下,一步步完成设计的任务。这次汇编课程设计为我们提供了不一般的学习方法和机会,让我们从传统的被动授学转变为主动求学;从死记硬背的模式中脱离出来,转变为在实践中学习,增强了领悟、创新和推断的能力。掌握了自学的方法,思考方式逐渐趋于成熟,逻辑性规范、明确。这些方法的提高是终身受益的,我认为这难得的一周,让我真正懂得了生活和学习的基本规律。7、参考文献1 戴梅萼,微型计算机及应用,清华大学出版社,第四版2 张毅坤,陈善久,单片微型计算机原理及应用,西安电子科技大学出版社3 雷晓平,微机原理与接口技术, 人民邮电出版社 8、具体分工 张 辉 程序设计整理 韩 帅 绘图并查找资料 郭新梦 硬件设计整理专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁