大连理工单片机专业课程设计
大连理工大学本科设计汇报 题目基于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 33H BCD形式温度值 TEMPER_NUM 60H 温度值缓冲单元 WSLA_7290 70H 7290写控制单元 RSLA_7290 71H 7290读控制单元 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库函数省略) SDABITP1.0 SCLBITP1.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;总线控制单元 ORG0000H LJMPMAIN ORG0003H LJMPINT_7290 ORG0100H MAINMOVSP,70H ;ZLG7290复位 CLRP1.7 LCALLDELAY SETBP1.7 MOV28H,1EH;温度上限初始值30度 MOVTMOD,01H;模式一,16位计数器 SETBEA;许可中止 MODEJBP1.3,SETTMP;拨码为0时采集温度 ;温度采集 TMPCLREX0 MOV27H,1FH;t LP1LCALLGET_TEMPER LCALLTEMPER_COV ;7290显示 MOVR7,08H MOVR0,20H MOVR2,10H MOVR3,WSLA_7290 LCALLWRNBYT LCALLDELAY MOVA,TEMPER ;判定温度上限 MOV28H,R5 CLRC CJNEA,28H,rel;此处报警温度为30度 rel JCNET LCALLBUZZER;大于等于时蜂鸣器报警 ;闪烁 MOV28H,70H;闪烁命令字 MOV29H,7FH;闪烁命令字 MOVR7,02H;设定数据个数 MOVR0,28H;设置源数据首地址 MOVR2,07H;设置外围器件内部寄存器首地址 MOVR3,WSLA_7290;设定外围器件地址 LCALLWRNBYT;调用显示子程序 LCALLDELAY LJMPNEXTT ;设定温度上限 SETTMP SETBEX0 ;7290复位 CLRP1.7 LCALLDELAY SETBP1.7 ;显示设定内容 MOV27H,0B6H;S MOV26H,9EH;E MOV25H,1FH;T. MOVR7,03H MOVR0,25H MOVR2,15H MOVR3,WSLA_7290 LCALLWRNBYT LCALLDELAY SJMP NEXTT NETMOV28H,70H;不能闪烁 MOV29H,00H MOVR7,02H MOVR0,28H MOVR2,07H MOVR3,WSLA_7290 LCALLWRNBYT LCALLDELAY NEXTTCALLDELAY SJMPMODE GET_TEMPER SETBDQ;定时入口 BCD