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