成绩:
大连理工大学本科设计报告
题目:单总线高精度温度采集系统
课程名称:单片机综合设计实验 学院(系):信息与通信工程学院 专业:电子信息工程 班级:电子 学号: 学生姓名:
2016 年 5 月5 日
一.设计要求
1. 启动DS18B20进行12位高精度环境温度采集 2. 利用12864LCD屏/数码管显示数据 3. 具有温度上限声光报警器
4. 可以通过键盘设定报警上限值(选)
二.设计分析及系统方案设计
通过DS18B20进行小数12位温度转换、采集,通过单片机读取DS18B20采集到的12位温度值进行二进制到十六进制的转换,利用ZLG7290进行八位数码管显示;利用键盘进入中断来设定报警上限,当温度高于上限时进入报警子程序。利用SW1进入中断来查看当前设置的温度报警上下限值,利用ZLG7290和数码管来显示。主程序不断循环采集温度比较,并可随时进入中断来修改温度上下限和查看温度值。
三.系统电路图
103
- 1 - B4区 AT89C51 P1.0 P1.1 P1.7 /INT0(P3.2) P3.3 P3.4 DQ 4.7K 2 DQ 3 VDD VDD 5V VDD 5V IC总线 2VCC
上拉电阻 5K×2 ZLG7290B SDA SCL /RST /INT 8位数码管 P1.3 SW1 DS 18B20 1 GND GND VCC 8550 保护电阻47欧 BUZZ B5区 10K 四.外围接口模块硬件电路功能描述
1.DS18B20:用于测定温度,测量范围-55~+125,分辨率为0.0625℃,数据格式为二进制补码形式。
2.ZLG7290B:用于数码管动态显示驱动,键盘扫描管理。能够驱动8位共阴极结构的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键的扫描识别,其中八个键可以作为功能键使用。接口采用I2C结构。 3.蜂鸣器:这里用作报警,为无源蜂鸣器。
五.主程序中主要变量定义
变量名称 TEMPER_L TEMPER_H TEMPER TEMPER_BCD TEMPER_NUM WSLA_7290 RSLA_7290 内存单元 36H 35H 34H 33H 60H 70H 71H 20-27H 28H 30-31H 功能 存放温度低四位 存放温度高四位 转换后的温度值 BCD形式温度值 温度值缓冲单元 7290写控制单元 7290读控制单元 数码管显示缓冲区 存放温度上限值 存放温度BCD码个位十位 六.系统软件中各个子程序的功能描述
子程序名称 GET_TEMPER READ_18200 TEMPER_COV CF INIT_1820 BUZZER INT_7290 RDKEY DELAY
- 2 -
入口参数 无 35H,36H 35H,36H 无 无 无 无 无 无 出口参数 35H,36H 无 20H,21H R3,R4 无 无 28H A 无 功能描述 读取18B20的温度值 向18b20读控制字 温度转换成十进制BCD码形式 拆分子程序,拆分送数码管显示 温度传感器初始化 蜂鸣器控制发声子程序 读取按键外部中断子程序 读取键值子程序 延时子程序 七.主程序程序流程图
8. 程序清单(要求打印格式要规范、重要的语句要有必要的注释)
SDA BIT P1.0 SCL BIT P1.1
TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER EQU 34H TEMPER_BCD EQU 33H
;转换后温度值 ;BCD码温度值
- 3 -
TEMPER_NUM EQU 60H WSLA_7290 EQU 70H RSLA_7290 EQU 71H FLAG1 BIT 00H
;缓冲单元
DQ BIT P3.3 ORG LJMP ORG LJMP ORG
0000H MAIN 0003H INT_7290 0100H
;总线控制单元
MAIN:
MOV SP,#70H
;ZLG7290复位
CLR P1.7 LCALL DELAY SETB
P1.7
MOV 28H,#1EH MOV TMOD,#01H SETB
;t
;拨码为0时采集温度
;温度采集
CLR EX0
MOV 27H,#1FH
EA
;温度上限初始值30度 ;模式一,16位计数器 ;允许INTO中断
MODE: JB P1.3,SETTMP TMP: LP1:
LCALL GET_TEMPER
;7290显示
LCALL TEMPER_COV MOV R7,#08H MOV R0,#20H MOV R2,#10H MOV R3,#WSLA_7290 LCALL WRNBYT LCALL DELAY MOV A,TEMPER
;判断温度上限
MOV 28H,R5
- 4 -
大连理工大学单片机实验报告 - 图文



