文档详情

大连理工单片机课程设计.docx

发布:2016-07-25约1.21万字共23页下载文档
文本预览下载声明
大连理工大学本科设计报告 题目:基于DS18B20、ZLG7290的温度 采集系统设计 课程名称: 单片机综合设计实验 学院(系): 信息与通信工程学院 专 业: 电子信息工程 班 级: 电子 学 号: 学生姓名: 成 绩: 20 16 年 5 月 6 日 题目: 1 设计要求 1.利用DS18B20实现现场环境温度的采集; 2.利用ZLG7290B实现温度数据证书的十进制显示; 3.默认一个上限温度的报警(蜂鸣器); 4.能够利用ZLG7290B的键盘操作修改“上限报警值”; 5.可以显示温度的小数位,以提高温度检测的分辨率; 6.程序中必须有中断环节。 2 设计分析及系统方案设计 利用P3.3口采集DS18B20的温度信息,采集后,通过I2C协议控制ZLG7290显示温度信息,并且将小数部分显示出来,通过P1.3连接一个拨码用来做模式控制,控制是温度显示状态模式或者设定温度上限模式,其中温度上限存放在28H单元中。 利用T0定时器控制蜂鸣器发声一段时间,超过温度上限报警声音提示,同时数码管进行闪烁以报警。 利用INT0外部中断读取按键值,用于设定上限温度并保存。 3 系统电路图 P1.3 P1.3 P1.2 5 主程序中主要变量说明 内存单元的定义、功能等。 变量名称内存单元功能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码个位十位 6 系统软件中各个子程序的功能描述 子程序的名称、功能,以及入口、出口参数。 子程序名称功能 描述GET_TEMPER读取18B20的温度值WRITE_1820向18b20写控制字READ_18200向18b20读控制字TEMPER_COV温度转换成十进制BCD码形式CF拆分子程序,拆分送数码管显示INIT_1820温度传感器初始化BUZZER 蜂鸣器控制发声子程序 INT_7290:读取按键外部中断子程序RDKEY读取键值子程序DELAY延时子程序7 主程序程序流程图 8 程序清单(I2C库函数省略) 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 ;允许中断 MODE: JB P1.3,SETTMP ;拨码为0时采集温度 ;温度采集 TMP: CLR EX0 MOV 27H,#1FH ;t LP1: LCALL GET_TEMPER LCALL TEMPER_COV ;7290显示 MOV R7,#08H MOV R0,#20H MOV R2,#10H MOV R3,#WSLA_7290 LCALL
显示全部
相似文档