温度采集系统课程设计报告(共19页).doc
《温度采集系统课程设计报告(共19页).doc》由会员分享,可在线阅读,更多相关《温度采集系统课程设计报告(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 采集 系统 课程设计 报告 19
限制150内