




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、太原理工大学矿业工程学院课程设计报告PAGE 基于51单片机的数字(shz)温度计的设计摘 要 本设计主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C51结合实现最简温度检测系统,该系
2、统结构简单,抗干扰能力强,适合于恶劣( li)环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;数字(shz)温度传感器;最简温度检测系统;目录 目录(ml) TOC o 1-3 h z u HYPERLINK l _Toc389601622 1 绪论(xln) PAGEREF _Toc389601622 h 1 HYPERLINK l _Toc389601623 1.1 选题(xun t)的目的和意义 PAGEREF _Toc389601623 h 1 HYPERLINK l _Toc389601624 1.1.1选题的目的 PAGEREF _Toc389601624 h 1 HYP
3、ERLINK l _Toc389601625 1.1.2选题的意义 PAGEREF _Toc389601625 h 1 HYPERLINK l _Toc389601626 2 数字温度计的设计方案 PAGEREF _Toc389601626 h 1 HYPERLINK l _Toc389601627 2.1 设计方案的确立及论证 PAGEREF _Toc389601627 h 1 HYPERLINK l _Toc389601628 2.2系统器件选择 PAGEREF _Toc389601628 h 2 HYPERLINK l _Toc389601629 2.2.1 单片机的选择 PAGEREF
4、 _Toc389601629 h 2 HYPERLINK l _Toc389601630 2.2.2 温度传感器的选择 PAGEREF _Toc389601630 h 2 HYPERLINK l _Toc389601631 3 系统硬件电路的设计 PAGEREF _Toc389601631 h 4 HYPERLINK l _Toc389601632 3.1 温度检测电路 PAGEREF _Toc389601632 h 4 HYPERLINK l _Toc389601633 3.2 显示电路 PAGEREF _Toc389601633 h 5 HYPERLINK l _Toc389601634
5、4 系统软件的设计 PAGEREF _Toc389601634 h 6 HYPERLINK l _Toc389601635 4.1 概述 PAGEREF _Toc389601635 h 6 HYPERLINK l _Toc389601636 4.1.1 温度数据的计算处理方法 PAGEREF _Toc389601636 h 7 HYPERLINK l _Toc389601637 4.2 主程序模块 PAGEREF _Toc389601637 h 7 HYPERLINK l _Toc389601638 4.3 读温度值模块 PAGEREF _Toc389601638 h 8 HYPERLINK
6、l _Toc389601639 4.4 中断模块 PAGEREF _Toc389601639 h 9 HYPERLINK l _Toc389601640 4.5 数码管驱动模块 PAGEREF _Toc389601640 h 10 HYPERLINK l _Toc389601641 5 实验仪器及元件清单 PAGEREF _Toc389601641 h 11 6 HYPERLINK l _Toc389601642 心得体会 PAGEREF _Toc389601642 h 12 HYPERLINK l _Toc389601643 致谢 PAGEREF _Toc389601643 h 14 HYP
7、ERLINK l _Toc389601644 参考文献 PAGEREF _Toc389601644 h 15 HYPERLINK l _Toc389601645 附录:源程序 PAGEREF _Toc389601645 h 16 太原理工大学矿业工程学院课程设计报告第 PAGE 35页1 绪论(xln)1.1 选题的目的(md)和意义1.1.1选题(xun t)的目的利用单片机AT89S51和温度传感器DS18B20设计一个设计温度计,能够测量-55 128之间的温度值,用液晶屏直接显示,测量精度为1。通过这次设计能够更加了解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识。1.1
8、.2选题的意义随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S51为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。本课题研究的重要意
9、义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关。2 数字(shz)温度计的设计方案2.1 设计方案的确立(qul)及论证基本功能要求(yoqi):(1)温度测量范围:-55128度(2)测量精度:1度(3)能够运用Protues仿真2.2
10、系统器件选择2.2.1 单片机的选择 对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。AT89C51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位 AT89C51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89C51 具有低电压供电和体积小等特点,四个端口只
11、需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2.2 温度传感器的选择DS18B20 简单介绍:DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出
12、;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 的性能(xngnng)特点如下:独特的单线接口方式,DS18B20在与微处理器连接时仅需要(xyo)一条口线即可实现微处理器与DS18B20的双向通讯DS18B20支持(zhch)多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温DS18B20在使用中不需要
13、任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电测温范围55128,精度为1零待机功耗测量结果直接输出数字信号,以“一线总线”穿行传送给CPU,同时可传送CRC校验位,具有极强的抗干扰纠错能力负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 4.2 所示,DQ 为数据输
14、入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 传感器电路图3 系统硬件(yn jin)电路的设计本设计由DS18B20温度传感器芯片测量当前的温度并将转换后的结果送入单片机。然后通过A89C51单片机驱动两位共阳极8段LED数码管显示测量温度值。如附录中本设计硬件电路(dinl)图所示,本电路主要有DS18B20温度传感器芯片,两位共阳极数码管,AT89C51单片机及相应外围电路组成。其中DS18B20采用“一线(yxin)制”与单片机相连。3.1 温度检测电路DS18B20 最大
15、的特点是单总线数据传输方式,DS18B20 的数据I/O 均由同一条线来完成。DS18B20 的电源供电方式有2 种: 外部供电方式和寄生电源方式。工作于寄生电源方式时, VDD 和GND 均接地, 他在需要远程温度探测和空间受限的场合特别有用, 原理是当1 W ire 总线的信号线DQ 为高电平时, 窃取信号能量给DS18B20 供电, 同时一部分能量给内部电容充电, 当DQ为低电平时释放能量为DS18B20 供电。但寄生电源方式需要强上拉电路, 软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM 时) , 同时芯片的性能也有所降低。外部电源供电方式是DS18B20最佳的工作方式
16、,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。因此本设计采用外部供电方式。如下图所示:+5VDS18B204.7K+5V温度传感器DS18B20的测量范围为-55+125,在-10+85时精度(jn d)为0.5。因为(yn wi)本设计只用于测量环境温度,所以只显示0+85。 本设计(shj)采用液晶动态显示,电路如下图所示:显示部分电路 4 系统软件的设计4.1 概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执
17、行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。4.1.1 温度数据的计算(j sun)处理方法从DS18B20读取出的二进制值必须转换成十进制值,才能用于字符(z f)的显示。DS18B20的转换精度为912位,为了提高精度采用12位。在采用12位转换精度时,温度寄存器
18、里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察表4-1可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0F,转换成十进制小数就是0.0625的倍数(015倍)。这样需要4位的数码管来表示小数部分。实际应用不必(bb)这么高的精度,采用1位数码管来显示小数,可以精确到0.1。表4.1 二进制与十进制的近似对应关系表4.2 主程序模块主程序需要调用2个子程序,分别为: 温度设定、驱动数码管把实时温度值
19、送出在LED数码管显示 主程序流程图:图1 主程序流程图4.3 读温度(wnd)值模块读温度值模块需要调用(dioyng)4个子程序,分别为: DS18B20初始化子程序:让单片机知道(zh do)DS18B20在总线上且已准备好操作 DS18B20写字节子程序:对DS18B20发出命令 DS18B20读字节子程序:读取DS18B20存储器的数据 延时子程序:对DS18B20操作时的时序控制(1). 读温度值模块流程图: 图2 读温度(wnd)值子程序流程图(2). DS18B20初始化子程序流程图:图3 DS18B20初始化子程序流程图(3). DS18B20写字节(z ji)和读字节子程序
20、流程图:图4 DS18B20写字节(z ji)子程序流程图 图5 DS18B20读字节子程序流程图4.4 中断模块中断采用T0方式1,初始值定时为50ms。中断模块需调用两个子程序: 读温度值子程序:定时读取温度值,实时更新温度值 记录(jl)温度值子程序:定时记录温度值,供查询使用 把这两个子程序放在中断的原因是,不会因为调整(tiozhng)报警温度或查询历史温度值而停止更新温度值和记录温度值。中断(zhngdun)模块流程图: 图6 中断模块流程图入口关段选P0置高关位选开位选P0清零开段选送段码送位码关段选延时返回 图7 数码管驱动模块流程图5 实验仪器(yq)及元件清单器件名称规格型
21、号数量单片机ATS89C511温度传感器Ds18b2016 心得体会该基于DS18B20的多点温度测量系统(xtng)具有硬件结构简单、易于制作、价格低廉、测量值精确和易于操作等许多优点。实际应用中可根据具体情况进行更多点的扩展和对多点进行控制。随着现代信息技术的飞速发展和传统工业改造的逐步实现,基于DS18B20的多点温度测量系统已经广泛应用于控制、化工等诸多(zhdu)领域。总之,本次课程设计顺利完成,基本达到了课程设计的要求。本文在深入分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。总结这一星期以来的工作,得
22、到以下结论:1.针对现有测温系统的特点,提出了一套应用数字式温度传感器DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济实用性。2.以单总线为基本结构,采用ATMEL公司的 AT89S51单片机为总线命令,实现与DSl8B20的总线接口,并提供具体电路设计。3.软件编程采用模块化、结构化设计,易于修改和维护。由于时间和精力的限制,对后续的研究还应在以下方面逐步完善: 1.应用软件的完善(wnshn)。温度采集方面,一次命令全部单总线上的DS18B20进行温度转换,减少系统所需时间。2.进一步完善系统的可靠性。由于实际经验的欠缺(qinqu),设计上难免有考虑
23、不周之处。当某一个传感器出现故障时,虽然系统能发现该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还需要在今后应用时加以完善。3.可以增加控制部分,以后在该部分进行PID算法控制,以提高控制精度。 总之 ,本论文在新型数字温度测控系统方面做了一定的研究工作。该系统初步完成了温度测控方案的预定(ydng)目标,为今后实现数字化与网络化的温度测控系统工程提供了一种参考。社会经济效益分析本温度测控系统可以产生的社会经济效益是显而易见的。在工农业许多场合,温度测量和控制对生产起着非常重要的作用,通过温度测控,可以更好的提高工农业生产的产量和效率。 本设计利用数字化的温度传感器作
24、为载体,以AT89S51单片机为控制核心,通过对所测量的温度值进行控制和数据上传,将数字信息上传给上位机进行进一步的处理,从而可以实现这套系统的商品化和技术服务的稳定性。这套系统可以产生的功能强大,扩展温度传感器端口后,可以同时对多个传感器进行测量和控制,并且只需添加DS18B20的初始化程序和与本设计两点测控类似的程序即可以实现,所以程序修改上也比较方便。本系统可以实现产品的专业化和工厂化大生产,应用领域广泛,例如,可以对小区内的供暖系统进行多点温度监控,实时处理DS18B20温度传感器上传的数据;可以在对温度要求比较严格的车间内进行多点温度测控,以保持室内的精准温度;可以在化学反应炉内安装
25、本系统,使化学反应可以在精确的温度条件下进行等等。在课程设计的整个过程中,我遇到了许多意想不到的困难,如自己设计电路,进行软件编译等等。不仅如此,很多从未遇见过的问题和现象困扰着我,比如在调试的过程中,时常出现问题,但每次经过仔细反复查找,终于可以将这些问题针对性的找到并进行合理的改正,确保其正常实现对应的功能,在自己处理难题的过程中,真正学到了很多新的知识。 致谢(zh xi)在本次课程设计即将完成之际,我要感谢同班同学,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次毕业设计(b y sh j)就不会如此的顺利进行。当然,不积跬步何以至千里,这一切也归功于各位任课老师的认真负责,使我能
26、够很好的掌握和运用专业知识,并在设计中得以体现。 诚挚的感谢我的指导老师陈琦老师。她在忙碌的教学工作中挤出时间来审查、修改我的论文,告诉我应该注意的细节问题,细心的给我指出错误并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,她严谨细致、一丝不苟的作风一直是我生活、学习(xux)中的榜样。在接下来的一年里,我会加倍努力,不辜负老师们的悉心教导,弥补自己在学习生活中的不足,完善知识体系,争取能够更加熟练地运用在课堂上学到的知识,提高自己的成绩,给自己一份满意的答卷。 最后,向所有关心我的亲人、师长和朋友们表示深深的谢意。参考文献(1)徐玮. C51单片机高效(o xio)入门(第2版).
27、北京:机械工业出版社,2010. (2)龙脉工作室,刘鲲,孙春亮(修订版). 北京(bi jn):人们邮电出版社,2010.附录(fl):源程序数字温度仪DS18B20的汇编语言程序 TEMP_ZH DATA 24H ;实时温度值存放单元 TEMPL DATA 25H ; TEMPH DATA 26H ; TEMP_TH DATA 27H ;高温报警值存放单元 TEMP_TL DATA 28H ;低温报警值存放(cnfng)单元 TEMPHC DATA 29H ; TEMPLC DATA 2AH K1 EQU P1.4 K2 EQU P1.5 K3 EQU P1.6 K4 EQU P1.7 B
28、EEP EQU P3.6 RELAY EQU P3.7 LCD_X EQU 2FH ;LCD 地址(dzh)变量 LCD_RS EQU P2.0 LCD_RW EQU P2.1 LCD_EN EQU P2.2 flag1 EQU 20H.0 ;DS18B20是否存在(cnzi)标记 KEY_UD EQU 20H.1 ;设定 KEY 的UP与DOWN 标记 date_line EQU P3.3;= ORG 0000H JMP MAINMAIN: MOV SP,#60H MOV A,#00H MOV R0,#20H / ;将 20H-2FH 单元清零 MOV R1,#10HCLEAR: MOV R
29、0,A INC R0 DJNZ R1,CLEAR CALL SET_LCD CALL RE_18B20start: CALL RESET ;18B20复位子程序 JNB FLAG1,START1 ;DS1820不存在 CALL MENU_OK CALL READ_E2 CALL TEMP_BJ ;显示温度(wnd)标记 JMP START2START1: CALL MENU_ERROR CALL TEMP_BJ ;显示温度(wnd)标记 JMP $START2: CALL RESET JNB FLAG1,START1 ;DS1820不存在(cnzi) MOV A,#0CCH ; 跳过ROM匹配
30、 CALL WRITE MOV A,#44H ; 发出温度转换命令 CALL WRITE CALL RESET MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE MOV A,#0BEH ; 发出读温度命令 CALL WRITE CALL READ call CONVTEMP Call DISPBCD CALL CONV CALL TEMP_COMP CALL PROC_KEY ; 键扫描 SJMPSTART2;PROC_KEY: JB K1,PROC_K1 ; 按键K1处理 CALL BEEP_BL JNB K1,$ MOV DPTR,#M_ALAX1 MOV A,#1 CAL
31、L LCD_PRINT CALL LOOK_ALARM JB K3,$ CALL BEEP_BL JMP PROC_K2PROC_K1: ; 按键(n jin)K2处理 JB K2,PROC_END CALL BEEP_BL JNB K2,$ MOV DPTR,#RESET_A1 MOV A,#1 CALL LCD_PRINT CALL SET_ALARM CALL RE_18B20 ;将设定(sh dn)的TH,TL值写入DS18B20内 CALL WRITE_E2PROC_K2: CALL MENU_OK CALL TEMP_BJPROC_END: RET;=;设定(sh dn)报警值 T
32、H、TL;=SET_ALARM: ;CALL RESET_ALARM CALL LOOK_ALARMAS0: JB K1,AS00 CALL BEEP_BL JNB K1,$ CPL 20H.1 ;UP/DOWN 标记AS00: JB 20H.1,ASZ01 ;20H.1=1,UP JMP ASJ01 ;20H.1=0,DOWNASZ01: JB K2,ASZ02 ;TH值调整(增加) CALL BEEP_BL INC TEMP_TH MOV A,TEMP_TH CJNE A,#120,ASZ011 MOV TEMP_TH,#0ASZ011: CALL LOOK_ALARM MOV R5,#1
33、0 CALL DELAY JMP ASZ01ASZ02: JB K3,ASZ03 ;TL值调整(tiozhng)(增加) CALL BEEP_BL INC TEMP_TL MOV A,TEMP_TL CJNE A,#99,ASZ021 MOV TEMP_TL,#00HASZ021: CALL LOOK_ALARM ; MOV R5,#10 CALL DELAY JMP ASZ02ASZ03: JB K4,AS0 ;确定(qudng)调整 OK CALL BEEP_BL JNB K4,$ RETASJ01: JB K2,ASJ02 ;TH值调整(tiozhng) (减少) CALL BEEP_B
34、L DEC TEMP_TH MOV A,TEMP_TH CJNE A,#0FFH,ASJ011 JMP ASJ022ASJ011: CALL LOOK_ALARM MOV R5,#10 CALL DELAY JMP AS0ASJ02: JB K3,ASJ03 ;TL值调整(减少) CALL BEEP_BL DEC TEMP_TL MOV A,TEMP_TL CJNE A,#0FFH,ASJ021 JMP ASJ022ASJ021: CALL LOOK_ALARM ; MOV R5,#10 CALL DELAY JMP AS0ASJ022: CPL 20H.1 JMP ASZ01ASJ03: J
35、MP ASZ03 RETRESET_ALARM: MOV DPTR,#RESET_A1 ;指针(zhzhn)指到显示信息区 MOV A,#1 ;显示(xinsh)在第一行 CALL LCD_PRINT RETRESET_A1: DB RESET ALERT CODE;=;实际(shj)温度值与标记温度值比较子程序;=TEMP_COMP: MOV A,TEMP_TH SUBB A,TEMP_ZH ;减数被减数,则 JC CHULI1 ;借位标志位C=1,转 MOV A,TEMP_ZH SUBB A,TEMP_TL ;减数被减数,则 JC CHULI2 ;借位标志位C=1,转 MOV DPTR,#
36、BJ5 CALL TEMP_BJ3 CLR RELAY ;继电器吸合 RET CHULI1: MOV DPTR,#BJ3 CALL TEMP_BJ3 SETB RELAY ;继电器关闭(gunb) CALL BEEP_BL RET CHULI2: MOV DPTR,#BJ4 CALL TEMP_BJ3 CALL BEEP_BL RET;TEMP_BJ3: MOV A,#0CEH CALL WCOM MOV R1,#0 MOV R0,#2BBJJ3: MOV A,R1 MOVC A,A+DPTR CALL WDATA INC R1 DJNZ R0,BBJJ3 RETBJ3: DB HBJ4: D
37、B BCD DIV AB ;B= A % 100 MOV R4,A ;R7 = 百位数 MOV A,#0AH XCH A,B DIV AB ;B = A % B SWAP A ORL A,B RET; 小数(xiosh)部分码表;TEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H DB 05H,05H,06H,06H,07H,08H,08H,09H;=LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指针(zhzhn)指到显示信息区 MOV A,#2 ;显示在第二行 CALL LCD_PRINT MOV A,#0C6H CALL TEMP_
38、BJ1 MOV A,TEMP_TH ;加载TH数据 MOV LCD_X,#3 ;设置位置 CALL SHOW_DIG2H ;显示数据 MOV A,#0CEH CALL TEMP_BJ1 MOV A,TEMP_TL ;加载TL数据 MOV LCD_X,#12 ;设置(shzh)位置 CALL SHOW_DIG2L ;显示(xinsh)数据 RET;M_ALAX1: DB LOOK ALERT CODE,0M_ALAX2: DB TH: TL: ,0;TEMP_BJ1: CALL WCOM MOV DPTR,#BJ2 ;指针(zhzhn)指到显示信息区 MOV R1,#0 MOV R0,#2BBJ
39、J2: MOV A,R1 MOVC A,A+DPTR CALL WDATA INC R1 DJNZ R0,BBJJ2 RETBJ2: DB 00H,C;SHOW_DIG2H: ;在 LCD 的第二行显示数字 MOV B,#100 DIV AB ADD A,#30H PUSH B MOV B,LCD_X CALL LCDP2 POP B MOV A,#0AH XCH A,B DIV AB ADD A,#30H INC LCD_X PUSH B MOV B,LCD_X CALL LCDP2 POP B INC LCD_X MOV A,B MOV B,LCD_X ADD A,#30H CALL LC
40、DP2 RETSHOW_DIG2L: ;在 LCD 的第二行显示(xinsh)数字 MOV B,#100 DIV AB MOV A,#0AH XCH A,B DIV AB ADD A,#30H PUSH B MOV B,LCD_X CALL LCDP2 POP B INC LCD_X MOV A,B MOV B,LCD_X ADD A,#30H CALL LCDP2 RET;显示(xinsh)区 BCD 码温度值刷新子程序;DISPBCD: MOV A,TEMPLC ANL A,#0FH MOV 70H,A ;小数位 MOV A,TEMPLC SWAP A ANL A,#0FH MOV 71H
41、,A ;个位 MOV A,TEMPHC ANL A,#0FH MOV 72H,A ;十位(sh wi) MOV A,TEMPHC SWAP A ANL A,#0FH MOV 73H,A ;百位 MOV A,TEMPHC ANL A,#0F0H CJNE A,#010H,DISPBCD0 SJMP DISPBCD2DISPBCD0: MOV A,TEMPHC ANL A,#0FH JNZ DISPBCD2 ;十位数是0 MOV A,TEMPHC SWAP A ANL A,#0FH MOV 73H,#0AH ;符号(fho)位不显示 MOV 72H,A ;十位数显示(xinsh)符号DISPBCD
42、2: RET;=; LCD 1602 显示子程序;=CONV: MOV A,73H ;加载百位数据 MOV LCD_X,#6 ;设置位置 CJNE A,#1,CONV1 JMP CONV2CONV1: MOV A,# MOV B,LCD_X CALL LCDP2 JMP CONV3CONV2: CALL SHOW_DIG2 ;显示(xinsh)数据CONV3: INC LCD_X ; mov a,72h ;十位(sh wi) CALL SHOW_DIG2 inc LCD_X mov a,71h ;个位 CALL SHOW_DIG2 inc LCD_X MOV A,#. MOV B,LCD_X
43、CALL LCDP2 MOV A,70h ;加载小数点位 INC LCD_X ;设置(shzh)位置 CALL SHOW_DIG2 ;显示数据 RET;SHOW_DIG2: ;在 LCD 的第二行显示数字 ADD A,#30H MOV B,LCD_X CALL LCDP2 RET;LCDP2: ;在LCD的第二行显示字符 PUSH ACC ; MOV A,B ;设置显示地址 ADD A,#0C0H ;设置LCD的第二行地址 CALL WCOM ;写入命令 POP ACC ;由堆栈取出A CALL WDATA ;写入数据 RET;SET_LCD: ;对 LCD 做初始化设置(shzh)及测试 C
44、LR LCD_EN CALL INIT_LCD ;初始化 LCD CALL STORE_DATA ;将自定义字符(z f)存入LCD的CGRAM RETINIT_LCD: ;8位I/O控制(kngzh) LCD 接口初始化 MOV A,#38H ;双列显示,字形5*7点阵 CALL WCOM call delay1 MOV A,#38H CALL WCOM call delay1 MOV A,#38H CALL WCOM call delay1 MOV A,#0CH ;开显示,显示光标,光标不闪烁 CALL WCOM call delay1 MOV A,#01H ;清除 LCD 显示屏 CALL WCOM call delay1 RET;=CLR_LINE1: ;清除LCD的第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海租房合同自由交易版
- 邵阳市毕业考试卷及答案
- 水运市场营销策略研究考核试卷
- 木地板品牌形象与公关策略考核试卷
- 粮食仓储品种改良技术考核试卷
- 纺织品标准与法规考核试卷
- 组织学习与知识管理策略考核试卷
- 电气设备绝缘与接地知识考核试卷
- 粮食加工副产物综合利用考核试卷
- 焊接设备在金属建筑模板制造中的应用考核试卷
- 承插型盘扣式钢管进场验收记录表
- 科技论文写作课件(原创)
- 小学书法粤教版 五年级下册 集字练习
- 外研版(一起)二年级英语下册全册教案教学设计版
- 农村建房安全合同书参考
- 施工电梯租赁合同及安全协议
- 安徽省【小升初】小升初数学试卷试题附答案(有难度)
- 青岛农业大学毕业实习鉴定表
- 广汽设计cs000t zn00z016车身密封条
- 2019第五版新版PFMEA 注塑实例
- (完整word版)计算机社团活动记录
评论
0/150
提交评论