数字温度计的设计_第1页
数字温度计的设计_第2页
数字温度计的设计_第3页
数字温度计的设计_第4页
数字温度计的设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

扬州人老惚源与劭力工程学浣

课程设计报告

题目:数字温度计的设计

课程:单片机原理及应用课程设计

专业:电气工程及其自动化

班级:电气1202班

姓名:

学号:

第一部分

2

《单片机原理及应用》课程设计任务书

一、课题名称

硬件设计题目五:数字温度计的设计

二、课程设计目的

课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,

它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重

要的意义。

《单片机原理及应用》是•门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的

地位。单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机

多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与

实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排

错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。为今后能够独立进行某些单片机

应用系统的开发设计工作打下一定的基础。通过单片机硬件和软件设计、调试、整理资料等环节的培训,使

学生初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

三、课程设计内容

设计以89c51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。

1.系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进

行总体方案的设计。

2.硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,

尹画出总体电路图。

3.软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件

系统的主程序。

4.调试:在单片机周立功实验箱上进行相关设计并调试。

四、课程设计要求

1.学习DS18B20功能与使用方法:

2.每秒采集一次温度并在LED上显示;

3.具有显示最高与最低温度的功能;

4.设计硬件原理图;

5.编写程序。

五、进度安排

3

序号内容天数

1布置任务,熟悉课题要求0.5

2总体方案确定,硬件电路设计1.5

3软件编程1.5

4在周立功实验箱上调:武2

5总结,撰写课程设计报告1.5

七、课程设计报告内容:

总结设计过程,写出设计报告,设计报告具体内容要求如下:

1.课程设计的目和设计的内容。

2.课程设计的要求。

3.控制系统总框图及系统工作原理。

4.控制系统的硬件电路连接图,电路的原理。

5.软件设计流程图及其说明。

6.电路设计,软件编程、调试中遇到的问题及分析解决方法。

7.实验结果及其分析。

8.体会。

4

第二部分

5

目录

1课题简介................................................1

1.1目的..........................................................................1

1.2任务.........................................................................1

1.3要求..........................................................................1

2方案设计................................................1

2.1总体设计.....................................................................1

2.2设计思路.....................................................................1

2.3工作原理.....................................................................2

3硬件电路设计...........................................2

3.1主控电路设计.................................................................2

3.2显示电路设计.................................................................2

3.3温度采集电路设计............................................................3

4系统软件编辑设计.......................................6

4.1系统软件设计流程图...........................................................6

4.2单总线软件设计...............................................................6

4.312c总线软件设计............................................................6

5实验与结果分析..........................................8

5.1系统结果显7K................................................................................................................................................8

5.2实验注意事项..................................................................8

6小结与体会..............................................9

参考文献..................................................10

附录......................................................10

6

数字温度计的设计

1课题简介

1.1目的:

熟练掌握单总线方式器件DS18B20的应用,熟悉12c总线协议,学习I2C器件ZLG7290的

使用方法。并能把它们结合,组成数字式温度计。

1.2任务:

设计一个数字温度计

1.3要求:

1.学习DS18B20功能与使用方法;

2.每秒采集一次温度并在LED上显示;

3.具有显示最高与最低温度的功能;

4.设计硬件原理图;

5.编写程序。

2方案设计

2.1总体设计

图1系统框图

2.2设计思路

系统在温度采集时主要应用了DS18B20芯片,该器件经过初始化后单片机首先进行ROM匹配,当收到

测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很

高。设计中还应用了ZLG7290芯片进行数码管显示的驱动,一共应用了6位数码管。

图2设计思路

2.3工作原理

如图1所示基于单总线和12c结合的温度采集与报警控制系统框图。系统利用单片机做主控制器,驱动

基于单总线的温度传感器DS18B20和基于I2C总线的ZLG7290数码管显示控制器,温度传感器DS18B20负

责采集实时温度值,ZLG7290作为显示数码管的驱动芯片,当采集到的温度值大于40度或个于10度时,数

码管进行频闪显示报警。单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上下

限进行频闪报警。

3硬件电路设计

3.1主控电路设计

本系统采用AT89c51单片机作为主控制器。AT89c51是一种带4K字节FLASH存储器的低电压、高性

能CMOS8位微处理器,是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存

储器可以反复擦除1(X)()次。ATS9C5I提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,

32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及

时钟电路。同时,AT89c51司.降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停

止CPU的工作,但允许RAM,定时/计数器,中行通信口及中断系统继续工作。掉电方式保存RAM中的内

容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。设计电路如图:

••••••••••••••••••••

C1

LH

XTAL1POBWDO

PQ.I^DI

C2P口2AD2

X、ZTTMCL12P03^D3

用PO.i^OC

P0J5^D5

注R1•P0J6^D6

YTF*1

RSTPO.T^D?

A3•­

C3•P2IW

P2.13

P22AK10

皿23_PSENP23ffK11

JOG.JI-ALEP2.IXM2

31

.R2aP25^13

P2JSWU

P2.7A15

P1DP3IVRX0

Pl.1P3.1/TXD

._3_P12

P13P33HNT1

P1.4P3.4/TO

:_6_P15P35TT1

P1J6P3J6^R

8_fl49

SDAFl.TPU.i/nO1__

ZLG7290»«WS^$CL..AT99C5.1

■sTBO*.

3.2显示电路设计

显示电路采用两只6位共阴LED数码管和数码管的阴动芯片ZLG7290。

3.2.1四位数码管

分8尺寸及《长,JE,*,5C8,19.8,8.CJ

casjOKMOKUC«X4:

86.8aB8Ba

图3数码管的外形尺寸

2

986

102OO0

—1

图3数码管的引脚排布

注:管脚顺序:从数码管的正面看,以第一引脚为起点,管脚的顺序是逆时针排列的。

A-llB-7C-4D-2E-lF-10G-5DP-3

322数码管的驱动芯片ZLG7290

ZLG7290的核心是一块ZLG7290B芯片,它采用12c接口,能直接驱动8位共阴式数码管,司时可扫描管理

多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、

段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向

显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流°此外,ZLG7290B

的电路简单,使用也很方便。

用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会

自动撤销。正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息,°微控制器可通过两种方

式得到用户的键盘输入信息。其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制渊的一

个外部中断源。其二是查询方式,即通过不断杳询INT引脚来判断是否有键按下,该方式可以节省微控制器

的一根1/0口线,但是代价是12c总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。

由于采用了12c总线接口,因而用ZLG7290与微控制器设计电力仪表的硬件电路连接非常简单。它只需要

两根信号线(一根数据线SDA,一根时钟信号线SCL)。但应注意进行12c通信的双方要共地,并应用,INT传递

键盘中断信号。微控制器通过RST可以将ZLG7290复位。设冲电路如图:

3.3温度采集电路设计

DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频

率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法

i-数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时

钟脉冲进行计数进而完成温度测最。计数门的开启时间由高温度系数振荡器来决定,每次测最前,首先将一

55c所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在一55℃所对

应的一个基数值。

3

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温

度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生.的

肽冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数

值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温

度寄存器值大致被测温度值。

表1一部分温度对应值表

温度/C二进制表示十六进制表示

+125000001111101000007D0H

+8500000101010100000550H

+25.06250000000110010000019111

+10.125000000001010000100A2H

+0.500000000000000100008H

000000000000010000000H

-0.51111111111110000FFF8H

-1().125111111110101111()FF5EH

-25.06251111111001101111FE6FH

-551111110010010000FC90H

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20

的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)一发ROM功能命令一发存储器操作命

令一处理数据。

33.1DS18B20详细引脚功能描述见下表。

序号名称引脚功能描述

1GNI)地信号

2DQ数据输入/输出弓脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以

向器件提供电源。

3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。

33.2通信过程:

(1)主机拉低单总线至少480us产生复位脉冲;

(2)主机释放单总线,进入接收模式,糅放时产生上升沿;

(3)单总线器件检测到上升沿,延时15-60us;

(4)单总线器件通过拉低总线60-240us来产生应答脉冲;

(5)主机接受应答信号,对从机ROM进行命令和功能命令操作:

所有读写时序至少60us,两个独的时序间至少lus回复时间。

33.3DS18B20的基本参数

DSI8B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,

最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器

TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储滞还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图4所示。头2个字节包含测得的温度信息,第3和第4

字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确

定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的

定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20

出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

4

TMRIRO11111

图3DS18B2O字节定义

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面

所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B2O接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进

制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在

先,高位在后,数据格式以O.O625C/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,

表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温

度数据。

DS18B20完成温度转换后,就把测得的温度值与RAM中的Til、TL字节内容作比较。若T>TII或TVTL,

则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测

量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)o主机ROM的前56位来计算CRC值,并和

存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为

lOuso采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。设计电

路如图:

5,

J2—XTAL1

PDB'XDO

PO.1JWO1

PD2JWD2

1S—XTAL2

PO3WD3

PO.W^Di

PDS^DS

POJ6^D6

POmDT

P2BW8

P2.1A9

P22A10

PSENP23^11

ALEP2.4XPI12

苗P2soM3

3

P28A1,

P2了依15

1pu

^

pP3MXD

3pP3.1/TXD

4pP324NT0

5pPJzJViNTT3:

6pP3.4/TD4.7«•

7PJSfTI<TEXT

8P6U2

PP3JSWR"

了P3.7/RF

4系统软件编程设计

5

4.1系统软件设计流程图

4.2单总线软件设计

系统上电先初始化DS18B20,然后判断芯片是否存在,对芯片操作命令进行写入,然后出去温度值,读

取后返回采集到的温度值。

4.312c总线软件设计

12c总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

CPU向受控单元发Hi•个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况

作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。

6

图4DS18B20软件设计框图

图512c总线软件设计框图

5实验与结果分析

7

5.1系统结果显示

硬件环境:DP-51PR0.NET单片机综合仿真实验台。

软件环境:PC及Keil等软件。

通过DS18B20采集温度后显示在数码管上(2位整数、4位小数),可在程序中任意设定报警上下限温度,

L

o

w

,

5.2实验注意事项:

1、硬件调试或运行的运行的时候打开电源,不要保持电源的常开状态,以免实验箱运行时间过长烧坏。

2、Debug时,需关掉DPflash,否则调试时开发环境报错。

6小结与体会

8

随着时代的不断发展,科技的不断进步,单片机在我们的生活和以后的工作中是经常用到的,所以学好

它对我们来说是非常重要的。本次的课程设计就是让我们通过单片机来实现生活中的某一种功能,分为程序

编辑和硬件实现两个方面。我此次的课题是实现数字温度计的实现。

首先,在拿到课题后,我们需要上网查询相关资料,对网上资料进行整合和对课设中用到的器件进行了

解和学习。本次课设我用到了温度传感器DS18B20和数码管等器件。在网上查询了DS18B2O的使用程序,

并理解其含义。从网上参考相关课题的程序在Keil软件中进行运行,理解其运行各步骤的含义并且借鉴到自

己的程序中。在程序编写完毕后,再到试验箱中运行看是否能实现数字温度计的功能。在试验过程中,要对

器件的引脚熟悉确定后再接入实验电路中,经过多次实验,最终终于显示了当前的温度值。在手动改写了程

序的温度上下限报警值后也实现了频闪报警的功能。

本次课设既考验了我们对相关软件的学习和应用是否到位,又考验了我们的单片机知识的掌握程度和动

手能力。要实现数字温度计的功能,程序是相当复杂的!在前期编写程序的过程中,我就遇到了很大的困难。

程序很复杂,要读懂程序需要耗费很长的时间,还要对器件有足够的了解。比如对于DSI8B20,实现不同的

功能其需要的准备时间就不同,所以在程序会出现很多的空操作来达到延时的目的。我在刚开始时就不是很

了解,所以对于这样的程序编辑表示很不理解,直到我的组员给我提醒后,我才恍然大悟。所以此次课设还

考验了我的耐心和细心程度。在一句一句程序的摸索和相关时序表的学习中,经过两天的程序理解和编辑,

我终于搞懂了程序部分,然后就开始运用Keil软件进行仿真。先是在试验箱上对正确的引脚进行连接,然后

运行。刚开始时会有失误,比如引脚连接不对或者有些引脚不知道要连接,经过多次的尝试,最后终于成功

我觉得经过这次课设,我的单片机知识更加充实和稳固了。以前对一些命令因为使用不多,所以不够熟

悉,经过这次课设也变得熟悉了,还有Keil软件也能熟练使用了。其次,我对器件的引脚和使用更加熟悉了。

为了实现相应的功能,我把课设要用到的器件引脚的功能每个都进行了了解,还有相应时序表的学习都让我

对器件的使用更加得心应手,而不再是拘泥于书本的学习,正所谓实践出真知,真是一点不假。还有,这次

误设极大的考验了我的细心和耐心,在面对复杂无比的程序要一句一句的弄懂其含义和先后功能的实现,还

要在一次次的失败之后不气馁,重新开始一次次的实验!在最开始确实很折磨人,可当你发现大家都在为各

自的任务而奋斗,不抛弃,不放弃,一次次的实践史到成功的到来。在成功的那一刻,那满腔的满足感是无

法言喻的!

最后,我要感谢我的老师夏老师和组员袁同学对我的帮助!在我遇到困难无法进行下去时,是你们给予

了我帮助。或者是一句程序的不懂,或者是调试不出正确结果,感谢你们耐心的给我讲解,让我在一次次调

试中,最终能取得成功。所以说人是群居动物,无论在生活或者工作中,很多时候都需要和别人的交流和合

作来达到相应的目的,就像这次的课程设计,如果我遇到了困难而一味自己瞎琢磨,这样不仅浪费了大量时

同和精力,而且还可能得不得正确结果。所以在遇到自己难以解决的问题时,要敢于寻求他人的帮助,互助

互惠才是最好的生活方式!

我相信经过这次课设,我不仅更加牢固的掌握了单片机的知识和和相关软件的应用,也锻炼了自己的实

践能力,相信在未来的日子里,无论遭遇失败或成功,我都会继续进步,继续成长,为将来的工作奠定•个

好的基础!

参考文献

9

m张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004

[2]陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,2008

[3]周润景主编,PROTEUS入门实用教程,北京:机械工业出版社,2007

⑷皮大能主编,单片机课程设计指导书,北京:北京理工大学出版社,2010

附录

,******************************

;设置DSI8B20端口参数

,******************************

THI_WARNINGEQU40H

TLI.WARNINGEQU4IH

TEMPER_FLAGEQU42H;温度符号位数据保存区

TEMPER_POINTEQU43H;温度小数部分数据保存区

TEMPEREQU44H;温度整数部分数值保存区

TEMPER.HEQU45H;温度整数部分高位数值保存区

TEMPER_LEQU46H;温度整数部分低位数值保存区

TI.SHOWEQL47H;十进制温度整数部分数值保存区

T_SAVEEQU48H

TEMPER_NUMEQU60H

FLAG1BIT00H

DQBITP3.3

・******************************

;设置ZLG7290端口参数

•木木*木*木*木木*木***木******木*木*木*木木*

SDABITP3.0

SCLBITP3.1

WSLAEQU70H

RSLAEQU71H

DISDAEQU20H

DISCONEQU08H

・木**木******木*木*木*木****水*木*木*木木*木**

9

ORG8000H

UMP81OOH

,*********************************

;初始化部分

,*********************************

ORG81OOH

MOVSR#60H

CLRP3.6

LCALLDELAY

10

SETBP3.6

・***************************

被置报警上卜.限值

***************************

MOVTHI_WARNING,#40

MOVTLI_WARNING#10

,******************************************************************************

;主程序部分

LPI:LCALLGET_TEMPER;从DSI8B20读取温度数据

LCALLTEMPER_COV;转换读取的温度整数、符号位和小数部分数据并保存

LCALLDATA_PRO;数码管显示前对要显示数据的相关处理

LCALLLEDSHOW;数码管显示程序

MOVA,TEMPER

CJNEA.TLI_WARNINGWAR;判断温度值是否低于报警下限值,低于则报警,不低于则判断

WAR:JNCLOOP10;是否大于报警上限值

LCALLTWINKLE

SJMPLP1

LOOP10:CJNEA,THI_WARN1NC;WAR1;判断温度值是否低于报警下限值,低于则报警,不低于则跳转

WAR1:JCLP2

LCALLTWINKLE

SJMPLP1

LP2:LCALLNOTWINKLE;对ZLG7290写入不闪烁控制字

UMPLP1

・4:木木木*木*率木*木木木木****木木木木木木*木*木木木木***求*率木木木木木琴**木木木木木木*木东木木木木木****木木木木木****木木木木木木

诙取DS18B20温度值子程序

•木木*木***木木*木***木******木*木*木*木木***木*木**木木木*木*木*木木*木*木*求******木*木*木*木木*木*木*木木木木*木

GET_TEMPER:SETBDQ;定时入口

BCD:LCALLINIT_1820

JBFLAG!,S22

UMPBCD;若DS18B20不存在则返回

S22:LCALLDELAY1

MOVA,#OCCH;跳过ROM匹配——0CC

LCALLWRITE_1820

MOVA,#44H;发出温度转换命令

LCALLWRITE_1820

LCALLDELAY

CBA:LCALLINIT_1820

JBFLAGLABC

LJMPCBA

ABC:LCALLDELAY1

MOVA,#0CCH;跳过ROM匹配

LCALLWRITE_1820

11

MOVA,#()BEH;发出读温度命令

LCALLWRITE_1820

LCALLREAD_I8200

RET

;....写DSI8B2O的程序

WRITE_1820:

MOVR2,#8;写一个字节的数据

CLRC

WRI:CLRDQ

MOVR3,#6

DJNZR3,$;延时

RRCA;带进位的右移

MOVDQ,C

MOVR3,#23

DJNZR3,$;延时

SETBDQ

NOP

DJNZR2,WRI

SETBDQ

RET

……读DS18B20的程序,从DS18B2O中读出二个字节的数据

READ.182(H):

MOVR4,#2;读出两个字节的数据

MOVR1,#46H

REOO:MOVR2.#8

REOkCLRC

SETBDQ

NOP

CLRDQ

NOP

NOP;空操作延时以达到DS18B20可以读的状态

SETBDQ

MOVR3,#2

DJNZR3,$

MOVC.DQ

MOVR3,#23

DJNZR3,$

RRCA

DJNZR2,RE0i

MOV@R1,A

DECRI

DJNZR4,RE00

RET

・木木********木**********木*木*木木*木**********木*木*木木木木*木****;****木***;!:木***木****木木木****

12

;DS18B20温度值提取整数部分、符号位和小数部分的子程序

******************************************************************************

TEMPER.COV:

MOVA,#0F0H;数据省略低四位

ANLA,TEMPER_L

SWAPA;交换高低半字节的数据

MOVTEMPER_NUM,A

MOVA,TEMPER_H

ANLA,#07H:只保留高字节中的低三位数据

SWAPA

ADDA,TEMPER_NUM

MOVTEMPER_NUM,A

MOVTEMPER,TEMPER_NUM

MOVA.#0FH;只保留低四位数据

ANLA,TEMPER_L

SWAPA

MOVTEMPER_POINT,A

MOVA.TEMPERJI

ANLA,#08H

SWAPA

MOVTEMPER_FLAGA

RET

;整数和小数的位偏移数据存储

,******************************************************************************

;30H——37H为数据存储区,其中3OH-33H为小数值

;34H--35H为整数值,36H为百位值,37H为符号位值

•牛赤字小衣市赤市赤东市本赤学小李幸存奉市奉亦*孝衣市孝市市本市字字率市孝辛市本市字市本未学市市东市*孝字市东本中东市东小在市存市市东市字小今字亦未赤衣小衣市

DATA.PRO:

MOV37H,#0AH

MOVA,TEMPER_FLAG;把标志位的值给A

JZPOSITIVE

MOVA,TEMPER

CPLA

ANLA,#7FH;保留低7位

ADDA,#01H

MOVTEMPERA

MOV37H.#OBH

POSITIVE:MOVA,TEMPER

CJNEA,64H,SETHUNDREDBIT;条件转移

SETHUNDREDBIT:

JCSETHUNDREDBITI

SUBBA,#64H

MOVTEMPER,A

MOV36H,#01H

13

SJMPSET1

SETHUNDREDBIT1:MOV36H.#00H

SET1:MOVA,TEMPER

MOVB,#10

DIVAB;A除以B,商存放在A中,余数存放在B中

MOV34H,B

MOV35H,A

MOVA,TEMPER_P()INT

CLRC

RLCA;数据左移

SWAPA

RRA;不带进位的右移

JNZPOINT1;不为。则跳转到POINT1

MOV30H.#00H

MOV31H,#OOH

MOV32H,#OOH

MOV33H,#t)OH

SJMPSIIOW

POINT1:DECA:小数数据的输入

JNZPOINT2

MOV30H.#05H;堆栈区数据不断修改

MOV31H,#02H

MOV32H,衲6H

MOV33H,#OOH

SJMPSHOW

POINT2:DECA

JNZPOINT3

MOV30H,#00H

MOV31H,#05H

MOV32H.#O2H

MOV33H,#O1H

SJMPSHOW

POINT3:DECA

JNZPOINT4

MOV3OH.#O5H

MOV31H,#07H

MOV32H.#O8H

MOV33H,#O1H

SJMPSHOW

POINT4:DECA

JNZPOINT5

MOV30H,#00H

MOV3IH,#OOH

MOV32H.#O5H

14

MOV33H,#02H

SJMPSHOW

P0INT5:DECA

JNZP0INT6

MOV3OH,#O5H

MOV31H,#02H

MOV32H柳6H

MOV33H,#OOH

SJMPSHOW

P0INT6:DECA

JNZP0INT7

MOV30H.#00H

MOV31H,#05H

MOV32H.#O7H

MOV33H,#03H

SJMPSHOW

P0INT7:

MOV30H,#05II

MOV31H,#07H

MOV32H,#03H

MOV33H.#O4H

SHOW:JNCSH0W1

MOVA,33H

ADDA,#05H

MOV33H,A

SHOW1:RET

•牛赤本小李市今本亦本市*赤本市李幸存率中*市*孝衣市孝辛市本市本市亭市孝市市*赤东小衣市存*存东市*孝字市不辛中东赤东小*市存市市幸中学小才市字市市东市字市

;ZLG7290数据显示部分子程序

・******************************************************************************

LEDSHOW:PUSH00H;堆栈

PUSH01H

PUSH02H

PUSH03H

PUSH07H

MOVDPTR,#LEDSEG

CLRA

MOVR7,#()8H

MOVR0,#20H

MOVR1,#30H

L00P1:MOVA.@R1

MOVCA,@A+DPTR:查表依次输入

MOV@R0,A

INCRI

15

INCRO

DJNZR7,LOOP1

MOVA,24H

ADDA,#OIH

MOV24H,A

LOOP:MOVR7,#08H

MOVRO,#20H

MOVR2,#IOH

MOVR3,#WSLA

LCALLWRNBYT

LCALLDELAYO

POP07H

POP03H

POP02H

POP01H

POPOOH

RET

******************比********************比*************季**********比********

;延时子程序

DELAYO:PUSH00H

PUSH01H

MOVRO,#OOH

DELAY2:MOVR1,#()()H

DJNZRI.S

DJNZR0,DELAY2

POPOIH

POPOOH

RET

DELAY1:MOVR7,#20H

DJNZR7,$

RET

DELAY:PUSHOOH

PUSH01H

MOVR0.#00

LP:MOVRI,#(X)H

DJNZRI,$

DJNZR(),LP

POPOIH

POPOOH

RET

・木木***木**#*木*木***木*木**水***木*****

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论