版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连理工大学本科设计报告题目:单总线高精度温度采集系统课程名称:单片机综合设计实验学院(系):信息与通信工程学院专业:电子信息工程班级:电子学 号:学生姓名:2016年5月5日一.设计要求1 .启动DS18B20进行12位高精度环境温度采集2 .利用12864LCD屏/数码管显示数据3 .具有温度上限声光报警器4.可以通过键盘设定报警上限值(选)二.设计分析及系统方案设计通过DS18B20进行小数12位温度转换、采集,通过单片机读取 DS18B20采 集到的12位温度值进行二进制到十六进制的转换,利用 ZLG7290进行八位数码管 显示;利用键盘进入中断来设定报警上限,当温度高于上限时进入报警
2、子程序。利 用SW1进入中断来查看当前设置的温度报警上下限值,利用ZLG7290和数码管来显示。主程序不断循环采集温度比较,并可随时进入中断来修改温度上下限和查看 温度值。三.系统电路图四.外围接口模块硬件电路功能描述1 .DS18B20:用于测定温度,测量范围-55+125,分辨率为0.0625C ,数据格式为 二进制补码形式。2 .ZLG7290B:用于数码管动态显示驱动,键盘扫描管理。能够驱动 8位共阴极结构 的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键的扫描识别, 其中八个键可以作为功能键使用。接口采用 I2C结构。3 .蜂鸣器:这里用作报警,为无源蜂鸣器五.主程
3、序中主要变量定义变量名称内存单元功能TEMPER_L36H存放温度低四位TEMPER_H35H存放温度高四位TEMPER34H转换后的温度值TEMPER_BCD33HBCDB式温度值TEMPER_NUP660H温度值缓冲单元WSLA_729070H7290写控制单元RSLA_729071H7290读控制单元20-27H数码管显示缓冲区28H存放温度上限值30-31H存放温度BC则个位十位六.系统软件中各个子程序的功能描述子程序名称入口参数出口参数功能描述GET_TEMPEF【无35H,36H读取18B20的温度值READ_1820035H,36H无向18b20读控制字TEMPER_CO/35H
4、, 36H20H,21H温度转换成十进制BCDK形式CF无R3,R4拆分子程序,拆分送数码管显示INIT_1820无无温度传感器初始化BUZZER无无蜂鸣器控制发声子程序INT_7290无28H读取按键外部中断子程序RDKEY无A读取键值子程序DELAY无无延时子程序七.主程序程序流程图开始程序初始化拨码为1? >询温度采其子程序荒集强度值转换成8LD到(查询底读>没敢冠喳写得按覆触发 中断拆分甚MQO湿示/-: N:色值为Q 9?;T ¥拆分送了2国显 示邑间按谖濯笠站位保存为个位蜂吗弱胆 数码管闪烁拆分送7LG729O 三示弋否为第保存为十位'果存昌式上限值8
5、.程序清单(要求打印格式要规范、重要的语句要有必要的注释SDABIT P1.0SCLBIT P1.1TEMPERL EQU 36HTEMPERH EQU 35HTEMPER EQU 34H;转换后温度值TEMPERBCD EQU 33H;BCD码温度值TEMPERNUM EQU 60H;缓冲单元WSLA 7290 EQU 70HRSLA 7290 EQU 71HMAIN:FLAG1BIT 00HDQORGLJMPORGLJMPORGBIT P3.30000HMAIN0003HINT72900100HMOWP,#70H;总线控制单元;ZLG7290 复位CLRP1.7LCALL DELAYSET
6、B P1.7MOD8H,#1EHMOVTMOD,#01H;温度上限初始值30度;模式一,16位计数器;允许INTO中断MODE:JB P1.3,SETTMP;拨码为0时采集温度TMP:LP1:;温度采集CLREX0MOV27H,#1FH;tLCALL GET_TEMPERLCALL TEMPER_COV;7290显示MOVR7,#08HMOVR0,#20HMOVR2,#10HMOVR3,#WSLA_7290LCALL WRNBYTLCALL DELAYMOVk,TEMPER;判断温度上限MOD8H,R5CLRCCJNE A,28H,rel ;此处报警温度为30度rel:JC NETSETB E
7、ALCALL BUZZER;大于等于时蜂鸣器报警;闪烁MOD8H,#70H;闪烁命令字MOD9H,#7FH;闪烁命令字MO决7,#02H;设定数据个数MO取0,#28H;设置源数据首地址MO取2,#07H;设置外围器件内部寄存器首地址MO决3,#WSLA_7290设定外围器件地址LCALL WRNBYT ;调用显示子程序LCALL DELAYLJMP NEXTT;设定温度上限SETTMP:SETB EX0;7290复位CLRP1.7LCALL DELAYSETB P1.7;显示设定内容MOV27H,#0B6H ;SMOV26H,#9EH ;EMOV25H,#1FH ;T.MO决7,#03HMO
8、决2,#15HMO决3,#WSLA_7290LCALL WRNBYTLCALL DELAYSJMP NEXTTNET:MOV28H,#70H;不能闪烁MOV29H,#00HMO决7,#02HMO决0,#28HMO决2,#07HMO决3,#WSLA_7290LCALL WRNBYTLCALL DELAYNEXTT: CALL DELAYSJMP MODEGET_TEMPER:SETB DQ ;定时入口BCD: LCALL INIT_1820JB FLAG1,S22LJMP BCD ;若ds18b20不存在则返回S22: LCALL DELAY1MOVk,#0CCH;跳过rom匹配0cchLCAL
9、L WRITE1820MOVk,#44H;发出温度转换命令LCALL WRITE1820LCALL DELAYCBA:LCALL INIT1820JB FLAG1,ABCLJMP CBAABC:LCALL DELAY1MOVk,#0CCH;跳过rom匹配LCALL WRITE1820MOVk,#0BEH;发出读温度命令LCALL WRITE1820LCALL READ 18200RETWRITE1820:;写ds18b20程序MOVR2,#8CLRCWR1:CLRDQMOVR3,#6;延时24usDJNZ R3,$RRCAMO决3,#23;延时60usDJNZ R3,$SETB DQNOPDJ
10、NZ R2,WR1SETB DQRETREAD_18200:;从1820中读出两个字节温度数据PUSH 01HMOVR4,#2MOVR1,#36HRE00: MO决2,#8RE01: CLRCSETB DQNOPCLRDQNOPNOPSETB DQMOV R3,#2DJNZ R3,$MOV C,DQMOV R3,#23HDJNZ R3,$RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00POP 01HRETU8TEMPER_COV:;将读出的数据转换PUSH DPHPUSH DPLPUSH 02HMOV A,#0F0HANL A,TEMPER_L ;舍去小数
11、点后的四位SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER,A;转换成十进制数显示MOW,#10DIV ABMOW0H,B;个位MOW,#10DIV ABMOW1H,B;十位ANLA,#0FH;百位SWAP AADDA,BMOVTEMPER_BCD,ALCALL CF2;拆分查表MOD5H,R3MOD6H,R4MOVk,30HANLA,#0FHLCALL CFMOD4H,R3;处理四位小数位数据MOVk,TEMPER_LANLA,#0FH;取低四位数据MOW,#02 HMULAB;字节转
12、为字MOV)PTR,#NUMSEGMOVTEMPER_BCD,ALCALL CF2MOV22H,R3MOV23H,R4MOVA,TEMPER_LANLA,#0FHMOW,#02 HMUIABINC AMOVC A,A+DPTRMOVTEMPER_BCD,ALCALL CF2MOD0H,R3MOD1H,R4POP02HPOPDPLPOPDPHRET; 小数部分查表NUMSEG: DW 0000H,0625H,1250H,1875H,2500H,3125H,3750H,4375HDW 5000H,5625H,6250H,6875H,7500H,8125H,8750H,9375H; 拆分显示整数子程
13、序CF:PUSH 02HPUSH DPHPUSH DPLMOVDPTR,#LEDSEGMO取2,TEMPER_BCDANLA,#0FHMOVC A,A+DPTR;查表得字形码MOVR3,AMOA,R2SWAP AANLA,#0FHMOVC A,A+DPTRMOVR4,AINC R3;加上小数点POPDPLPOPDPHPOP02HRET; 拆分显示小数子程序PUSH DPHPUSH DPLPUSH ACCMOVDPTR,#LEDSEGMO取2,TEMPER_BCDMOA,R2ANLA,#0FHMOVC A,A+DPTRMOVR3,AMOVk,R2SWAP AANLA,#0FHMOVC A,A+D
14、PTRMOVR4,A;加上小数点POPACCPOPDPLPOPDPHPOP02HRET ;led 字型码LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4HDB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHINIT_1820:SETB DQNOPCLRDQMOVR0,#80HTSR1: DJNZ R0,TSR1SETB DQMOVR0,#25HTSR2: DJNZ R0,TSR2JNBDQ,TSR3LJMP TSR4TSR3: SETB FLAG1LJMP TSR5TSR4: CLRFLAG1LJMP TSR7TSR5: MO
15、VR0,#06BHTSR6: DJNZ R0,TSR6TSR7: SETB DQ;延时300us;96us;延时;致标志位;ds18b20 存在;清标志位;ds18b20不存在;延时200usRETDELAY1:MOVR7,#20H;80us 延时RET; 蜂鸣器驱动子程序BUZZER:PUSH 07HMOW7,#00HMOVTL0,#33H;设置定时0.5us初值MOVTH0,#0FEHSETB TR0;启动 t0WAIT: JNBTF0,$CLRTF0MOVTL0,#33HMOVTH0,#0FEHCPLP1.2DJNZ R7,WAITCLRTR0SETB P1.2POP07HRET; 外部
16、中断服务程序 INT_7290:PUSH 00HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWSJMP RD1RD1:JB P3.2,$;以查询方式等待下一次按键操作SWAP ALCALL RDKEYCJNE A,#0AH,WAITT;容错功能调整WAITT: JNC RD1MOV TEMPER_BCD,ALCALL CF2MOV B,#0AHMUL ABMOV R5,AMOV 23H,R3MOV R7,#01HMOV R0,#23HMOV R3,#WSLA_7290LCALL WRNBYTKEY2: JB P3.2,$;以查询方式等待下一次按
17、键操作LCALL RDKEYCJNE A,#0AH,WAITT2WAITT2: JNCKEY2MOVTEMPER_BCD,ALCALL CF2MOVk,R5ADDA,TEMPER_BCDMOV R5,AMOV 22H,R3MOV 21H,#9CH ;CMOV R7,#02HMOV R0,#21HMOV R2,#11HMOV R3,#WSLA_7290LCALL WRNBYT;确定键COMF: JB P3.2,$;等待确认键LCALL RDKEYCJNE A,#0FH,COMFDOWN:;7290复位CLRP1.7LCALL DELAYSETB P1.7CLRIE0 ;必须清标志POPPSWPO
18、PACCPOP07HPOP04HPOP03HPOP02HPOP00HRETI; 读取键值子程序(键值保存在 A中)-RDKEY: MOR0,#1FHMOVR7,#01HMOVR2,#01HMOVR3,#WSLA_7290MOVR4,#RSLA_7290LCALL RDADDDECARETJ; 延时子程序DELAY: PUSH 00H;延时子程序PUSH 01HMOVR1,#00LP: MOVR1,#00HDJNZ R1,$DJNZ R0,LPPOP01HPOP00HRET;(I2C子程序省略)九.系统调试运行结果说明、分析所出现得问题,设计体会与建议硬件使用ZLG51单片机开发平台,软件使用 KEil2软件进行程序的编写编译以 及调试。运行结果:能够实现当前环境温度的采集以及分为整数部分和小数部分的显示,设定温 度上限,超过设定上限温度进行蜂鸣器报警,数码管同时闪烁,温度低于设定值立刻停 止闪烁和报警。能够通过拨码控制模式切换,切换到设定上限温度模式,通过按键输入 上限温度值改变当前上限温度,能够纠错,输入1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园环境安全制度
- 农民专业合作社财务管理制度
- 2026年企业内部控制制度与实践应用试题
- 2026年通信协议与网络协议进阶题集
- 2026年解释针对职场沟通技巧和礼仪的考核题目
- 2026年金融投资安全试题解析投资风险与防范策略
- 2026年系统架构师面试复杂算法题的解决思路
- 2026年企业内部培训资料CNAS企业质量认证标准相关试题
- 2026年能源工程项目收尾技术要点题解
- 2026年政府政策与法律解读公务员笔试实务模拟题
- 专利免责合同范例
- 《我国中药饮片产业国际竞争力探析》9200字(论文)
- 检验项目管理培训
- 《梅毒诊断及治疗》课件
- DB45T 2313-2021 奶水牛同期发情-人工授精操作技术规程
- 购买助动车合同模板
- 两个合伙人股权协议书范文模板
- GB/T 44082-2024道路车辆汽车列车多车辆间连接装置强度要求
- 控烟中医科普知识讲座
- 脱碳塔CO2脱气塔设计计算
- 产品报价单货物报价表(通用版)
评论
0/150
提交评论