LCD时钟温度计设计 毕业设计论文.doc

上传人:白大夫 文档编号:4508372 上传时间:2019-11-13 格式:DOC 页数:33 大小:2.13MB
返回 下载 相关 举报
LCD时钟温度计设计 毕业设计论文.doc_第1页
第1页 / 共33页
LCD时钟温度计设计 毕业设计论文.doc_第2页
第2页 / 共33页
LCD时钟温度计设计 毕业设计论文.doc_第3页
第3页 / 共33页
LCD时钟温度计设计 毕业设计论文.doc_第4页
第4页 / 共33页
LCD时钟温度计设计 毕业设计论文.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《LCD时钟温度计设计 毕业设计论文.doc》由会员分享,可在线阅读,更多相关《LCD时钟温度计设计 毕业设计论文.doc(33页珍藏版)》请在三一文库上搜索。

1、LCD时钟温度计设计 1.设计背景随着社会的不断发展,在工业生产中越来越重视温度对机器和生产的影响,很多场合都要经常测量温度, 经常要每隔一段时间测量室内和机器内部等的温度,并作记录,这样就要求有一个人完成这份工作,现在希望可以利用单片机来完成测温和记录的工作,这种方法的准确性也比较高,而且可以方便查询过去某段时间的温度,可以减小工作量。我们设计的LCD时钟温度显示系统是一个可以记录时间及温度的系统,该系统是由中央控制器、温度检测器、时钟系统、存储器,显示器及键盘部分组成。控制器采用单片机STC89C52,温度检测部分采用DS18B20温度传感器,时钟系统用时钟芯片DS1302,用LCD液晶1

2、2232F作为显示器,用AT24C16作为存储器件。单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;温度传感器采用DS18B20采集温度信号送给单片机处理,存储器通过单片机对某些时间点的数据进行存储;单片机再把时间数据和温度数据送液晶显示器12232F显示,键盘可以调时和温度查询,可以查某一个时间的温度。2.方案论证2.1设计原理由于本设计硬件上简单,方法上易于实现,成本低的要求,设计中利用电子技术和传感技术。主要应用各种芯片实现设计中的要求,依靠一颗主芯片控制个芯片的动作。2.2方案选择按照系统的设计功能要求,本时钟温度系统的设计须采用单片机软件系统实现,用单片机的自动控制

3、能力配合按键控制,来控制时钟、温度的存储和查询及显示。初步确定设计系统由单片机主控模块、时钟模块、测温模块、存储模块、显示模块、键盘接口模块共6个模块组成,对于单片机的选择,如果用8031系列,由于它没有内部RAM,系统又需要大量内存存储数据,因而不可用;51系列单片机的ROM为4K,对于我们设计的系统可能有点小,这里我们用W78E516B,它与STC89C52单片机产品兼容,有8K字节在系统可编程Flash存储器W78E516B是一种低功耗、高性能CMOS8位微控制器。 时钟功能的实现有两种方案:一是用软件实现,直接用单片机的定时器编程以实现时钟;二是用专门的时钟芯片实现时钟的记时,再把时间

4、数据送入单片机,由单片机控制显示。比较两种方案,用软件实现时钟固然可以,但是程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,用专用时钟芯片可以实现准确记时。故选方案二。时钟和温度的显示可以用数码管,但是数码管的只能显示简单的数字,我们设计的系统有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,用可以显示汉字的液晶显示器还可以增加显示信息的可读性,让人看起来会很方便。2.3系统原理图系统由单片机主控模块、时钟模块、测温模块、存储模块、显示模块、键盘接口模块共6个模块组成如图2-1所示。其总电路图见附录1LCD显示器12232F存储器AT24C16主

5、控器件STC89C52时钟DS1302键盘部分温度检测DS18B20图21系统原理3.硬件电路设计3.1整体电路原理根据方案的选择,系统由W78E516B、时钟芯片DS1302、测温芯片DS1802、AT24C16存储电路、液晶显示电路、键扫描电路组成。 本系统采用汇编语言编写,控制器采用单片机STC89C52,温度检测部分采用DS18B20温度传感器,时钟系统用时钟芯片DS1302,用LCD液晶12232F作为显示器,用AT24C16作为存储器件。单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;温度传感器采用DS18B20采集温度信号送给单片机处理,存储器通过单片机对某些时

6、间点的数据进行存储;单片机再把时间数据和温度数据送液晶显示器12232F显示,键盘可以调时和温度查询。可以查某一个时间的温度。3.2各电路原理3.2.1晶振电路单片机的晶振频率应低于40MHZ,所以我们采用11.0592MHZ,加两个30F电容。图3-1所示。实时时钟电路DS1302采用普通32.768kHz晶振。如图32 图3-1 晶振电路 图32 时钟晶振3.2.2时钟模块的设计我们采用DS1302作为主要计时芯片,主要为了提高计时精度,更重要的就是DS1302可以在很小的后备电源下继续计时,并可编程选择充电电流来对后备电源进行充电,可以保证后备电源基本不耗电。(1) DS1302的结构及

7、工作原理DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。(2)引脚功能及结构图33 DS1302的引脚排列图33示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电

8、源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次 数据传送,

9、I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的3

10、1个字节,命令控制字为FEH(写)、FFH(读)。 (3)DS1302与CPU的连接实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A (典型值),省电模式时

11、小于1A,工作电压为2.4V3.3V,显示清晰。 图34 DS1302与CPU连接的电路原理图3.2.3 温度传感器设计由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。而DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。电路图如图35所示。图3-5 温度传感器电路图(1)DS18B20的性能特点如下:a) 独特的单线接口仅需要一个端口引脚进行通信;b) 多个DS18B20可以并联在惟一的三线上,

12、实现多点组网功能;c) 无须外部器件;d) 可通过数据线供电,电压范围为3.05.5V;e) 零待机功耗;f) 温度以9或12位数字量读取;g) 用户可定义的非易失性温度报警设置;h) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;i)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(2)DS18B20的使用由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对STC89C52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根

13、I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。表1DS18B20详细引脚功能描述 序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,

14、此引脚必须接地。DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 图36 DS18B20的读时序DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线

15、被拉低之后,在15us之内就得释放单总线。 图37 DS18B20的写时序3.2.4 液晶显示电路(1) 显示电路采用12232F液晶显示器。12232F是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及12832全点阵液晶显示器组成。可完成图形显示,也可以显示7.52个(1616点阵)汉字.与外部CPU接口采用串行方式控制。图38 12232F液晶显示器主要技术参数和性能:1.电源:VDD:+3.0+5.5V。(电源低于4.0伏LED背光需另外供电)2.显示内容:122(列)32(行)点。3.全屏幕点阵。4.2M RO

16、M(CGROM)总共提供8192个汉字(1616点阵)。5.16K ROM(HCGROM)总共提供128个字符(168点阵)。6.2MHZ频率。7.工作温度: 0 +60 ,存储温度: -20 +70(2)模块的外部接口表2 12232F液晶显示器并行接口管脚号管脚名称LEVER管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3VEE-对比度调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR

17、6E(CLK)H/L使能信号7DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15BL+VDD背光源电压+4.2V+5V16BL-Vss背光源公共端(3)显示芯片电路图39 12232F电路图3.2.5 存储电路存储电路采用ATMEL公司生产的AT24C16,具有16KB的存储空间。其管脚接法是1、2、3、4接地,5、6分别接单片机的端口,7、8接5V电源。图310 存储电路3.2.6 键盘接口电路按键有6个,分别实现为时间选择、调整、时间的加减、查询温度、复位的功能。用中断

18、法完成读键功能。如图:图311 按键电路3.2.7复位电路上电复位采用电平方式开关复位。如图(2)所示。 上电复位用RC电路,电容用10F,电阻用10K。图312 复位电路3.2.8系统PCB图单片机W78E516B是本系统的核心部分,它控制着数据显示、温度检测存储数据等功能。根据以上各功能模块得到应用电路总原理图,然后画出PCB图。图 313 总电路PCB图4软件系统设计41主程序系统主程序首先对系统进行初始化,包括设置定时器、中断和端口;然后显示开机画面。由于单片机没有停止指令,所以可以设计系统程序不断地循环执行上述显示效果。下图是系统的流程图。图41 系统流程图4.2系统各子程序 4.2

19、.1时间显示程序我们采用了时钟芯片DS1302,所以只需从DS1302各寄存器中读出小时、分钟、秒,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读取数据,再经过处理后,送给显示缓冲单元。流程图见图42。图42时间显示程序4.2.2 时间调整程序调整时间用5个调整按钮,一个作为选择,另外两个做为移位控制用,最后两个做为加减用,分别定义控制按钮,移位按钮,加、减按钮。在调整时间过程中,要调整的那位与别的位应该有区别,所以增加了闪烁功能,即调整的那位一直在闪烁直到调整下一位。闪烁原理就是让要调整的那一位,每隔一定时间熄灭一次,比如说50MS。利用定时器计时,

20、当达到50MS溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束,此时送正常显示值给该位,再进入下一位调整闪烁程序,时间调整程序流程图如图43。图43 时间调整程序流程图4.2.3读取温度子程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次,流程图如图44。读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图45。YESNONOYES结束读取操作,CRC校验移入温度暂存器9字节完?CRC校验正确?图45读出温度子程序流程图发DS18B2

21、0复位命令位命令发跳过ROM命令发读取温度命令YESYESNONO初始化调用显示子程序读出温度值温度计算处理显示数据刷新发温度转换开始命令1秒到?初次上电?图44 DS18B20温度计主程序流程图4.2.4计算温度子程序YESNO开 始温度值取补码置“-”标志计算小数位温度BCD值温度零 下?图46 计算温度子程序流程图置“+”标志计算整数位温度BCD值结束计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图 464.2.5显示数据刷新子程序显示数据刷新子程序主要时对显示缓冲器中的显示数据进行刷新操作,当最高显示位为零时将符号显示位移入下一位。程序流程

22、图如图 47NOYESNOYES结束温度数据移入显示寄存器十位数显示符号百位数不显示十位数零?百位数零?图47 显示数据刷新子程序流程图百位数显示数据(不显示符号)4.2.6 温度数据的计算处理方法从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20的转换精度为9-12位可选的,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。下表就是二进制和十进制的近似对应关系表。表3 小数部分二进制和十进制的近似对应关系表小数部分二进制值01234567

23、89ABCDEF十进制值00112334556678894.2.7 温度值存储子程序存储时间对应的温度数据开始是否为6点?是否为9点?是否为12点?是否为15点?是否为00点?是否为18点?存储最高最低温度温度结束图 48根据要求,系统要存储某几个时间点的温度,在时钟到达这几个时间点时,通过软件判断,把此时的温度数据读到单片机内存,再通过24C16的读写程序把温度数据存储到24C16对应地址单元,这样温度数据就储存起来了。程序流程图见图48。4.2.8 查询子程序根据实际要求将某一天某一个时间的具体温度值可进行查看,以及当天温度的最高、最低温度(可查询10天)。通过按钮确定要显示第几天的温度值

24、,把温度值读到单片机内存,发命令给24C16的读写程序,查找对应的地址单元,把地址单元内容读取出来。程序流程图见图49。显示前一天0点时温度开始温度查询键按下时间1S天数改变键按下1S温度查询键按下时间1S时间改变键按下1S查最高最低温度键按下1S结 束转天数改变转时间改变显示当天最高最低温度图49查询子程序流程图5.电路调试5.1调试设备微机电源(+5V/+12V) 一台51系列编程器(烧录器+软件) 一台PC微机 一台数字万用表 一台RS-232串口通信线(9pin) 一条5.2调试步骤5.2.1硬件诊断先检查印制板及焊接的质量是否符合要求,有无虚焊点及线路间有无短路、断路。然后用万用表测

25、试,通电检测,检查个芯片电压是否正常,检查无误后,可通电检查LCD液晶显示器亮度情况,一般情况下取背光电压为45.5V即可得到满意的效果。5.2.2单片机程序调试软件调试是在MedWin编译器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后结合硬件实时调试。子程序调试包括:1. DS1302的计时和读写程序、显示程序;2. AT24C16读写程序;3. DS18B20读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序。根据程序各部份子程序先进行独立调试,1.由于采用了DS1302作为计时器使用,其计时精度相对来说比较高。用制作的成品与万年历计时比较,基本没有

26、误差。2.由于DS18B20的误差指标在0.1oC以内,在一般场合完全适用。3.根据实验要求记录并显示某些时间的温度值及一天当中的最高、最低温度。经测试,AT24C16能存储十天内的所有要求的数据。5.2.3 电路仿真电路使用Proteus软件进行仿真,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析

27、仪等。图51 显示仿真图52 温度仿真结论及尚存在的问题一、设计总结随着科学的不断进步和发展,一项工程的建设,非常注重其实用性和价值性。所以在设计上如何选材、如何规划起了举足轻重的作用。本次毕业设计正是要通过个人的思考和研究,制作出价格便宜、功能齐全的实用器件。这毕业设计,要求掌握和灵活运用多门课程知识,并通过个人思考和查找资料,培养分析问题和解决问题的能力,培养动手能力。本次毕业设计,需要掌握protel软件和绘制电路板的方法,同时也通过设计,体验理论联合实际的复杂性,增强工程设计的观念。为日后的工作打下良好的基础。从这次毕业设计中,我更深刻地掌握了所学的学科知识,学到了很多课外的知识,提高

28、了自我分析问题、解决问题的能力,同时也使我认识到,理论联系实际是十分困难的,要设计成功是需要很大的努力和不断钻研的精神。我也由这次毕业设计,看到了自己许多的不足之处,在今后在社会的工作中,我将朝自己的目标继续努力,希望以后能为国家的建设多出一分贡献。二、尚存在的问题在本次设计中,主要应用芯片集成来实现时钟和温度显示。因此在设计过程中要熟练运用单片机主芯片,而且要有清晰的思路,运用时要画出它们的电路图才能准确的设计成功,不懂的时候要查阅相关的资料及书籍。电路设计好并仿真成功了,还要运用protel软件来印制电路板。由于我对PROTEL软件不太熟悉,所以课后要仔细的看书学习,最后顺利了完成了电路的

29、原理图和PCB图,并顺利制作了一块电路板。电路设计以及单片机、电脑程序设计均已达到要求,但实际做出样品后,尚存在一些问题。设计过程中亦遇过不少问题。芯片的工作电压不正常或者过高电压,则可能出现不能发送码或者不能译码的现象,所以要检查电源电压是否符合要求。 致 谢通过三个多月的努力,毕业设计终于完成,心里有种成就感,冲劲也更大了。大学四年,从理论知识的学习,动手能力的培养,综合能力的提高,到实际应用的操作,是一步一步慢慢走来,慢慢积累,慢慢提高的。在这次的毕业设计中,首先要感谢我的导师吴茂老师。吴老师平日里工作繁多,但在我做毕业设计的每个阶段,查阅资料,设计草案的确定和修改,中期检查,后期详细设

30、计,装配草图等整个过程中都给予了我悉心的指导。总在我最迷惘的时候,给予支持并提出宝贵的意见,使我认准方向,积极提高。我的设计较为复杂烦琐,但是吴老师仍然细心地纠正图纸中的错误。除了敬佩吴老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 还要感谢大学四年来所有的老师,为我打下了电子专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。 。这次毕业设计对于我来说,意义非常不同,它是我大学四年来的综合,有形的与无形的结合,每字句都认真仔细地琢磨,是那么真实,那么沉甸,那么有价值,那么意义重大。它的背后是老

31、师、学生、知识三者有机互动的全面综合的体现。最后感谢机电与信息工程学院和我的母校佛山科学技术学院四年来对我的精心栽培。参考文献1 胡汉才单片机原理及其接口技术(第2版)北京:清华大学出版社,20042 赵晓安编著,MCS51单片机原理及应用,天津大学出版社,1994年3 阎 石主编.数字电子技术基础(第四版).北京:高等教育出版社,2000.54 康华光.电子技术基础模拟部分M. 第四版. 北京:高等教育出版社, 20015 陆坤主编,电子设计技术,电子科技大学出版社,1998.106 清华天则工作室主编,编程技巧及故障排除即时通,兵器工业出版社,2001.1附录一 电路图附图11电路图附录二

32、 引脚封装图附图21 78E516B引脚封装图附图22 显示芯片外部接口附录三 部分程序ORG0000HAJMPSTARTORG0003HAJMPINTX0ORG000BHAJMPINTT0ORG0030HSTART:MOVSP,#070H;-MOVZT,#00H;清状态MOV21H,#00H;清状态CLRFLAG2;-LCALLQINGMOVDT1_1,#30MOVDT1_2,#31MOVDT1_3,#32MOVDT1_4,#33MOVDT1_5,#34MOVDT1_6,#34MOVDT1_7,#34MOVDT1_8,#34MOVDT1_11,#10MOVDT1_14,#10MOVDT2_1

33、,#20MOVDT2_2,#21MOVDT2_3,#22MOVDT2_4,#23MOVDT2_5,#11MOVDT2_6,#11MOVDT2_7,#11MOVDT2_8,#11MOVDT2_9,#11MOVDT2_16,#13;第16位显示CMOVDINSHI,#6;定时50ms*6=300msMOVDAOSHI,#33;定时50*6*33s(9.9s)对状态清零MOVJISHU_A,#2MOVFLASH,#10;-MOVP1,#0FFHMOVP3,#0FFHCLRRSTCLRP3.3CLRP3.4CLRP3.5 ;-MOVTMOD,#01H;定时器0,50msMOVTH0,#03CHMOVT

34、L0,#0B0HSETBEASETBET0;SETBPT0;定时显示为高优先级SETBEX0;CLRPX0;按键处理为低优先级;SETBTR0SETBIT0;-ACALLINIT_TIME;初始化时间蕊片(振荡器工作允许,24小时模式,禁止涓流充电,禁止写入)LCALLINIT_LCD;初始化LCDLCALLDISPLAY_ALL;SETBZT3;MOVZT,#00H;=MAIN:;JMP$;LCALLDISPLAY;JMPMAINLCALLGET_1820;LCALLDS_1820LCALLDISPLAY;ACALLDISPLAYJMPMAIN;=QING:MOVR0,#20H;RAM清零Q

35、I_0:MOVR0,#00HINCR0CJNER0,#70H,QI_0RET;=INIT_LCD:LCALLDEL400MMOVD,#38HLCALLCOMMDMOVD,#38HLCALLCOMMDMOVD,#38HLCALLCOMMDMOVD,#01HLCALLCOMMDMOVD,#38HLCALLCOMMDMOVD,#0FHLCALLCOMMDMOVD,#06HLCALLCOMMDMOVD,#0000110BLCALLCOMMDRET;=COMMD:SETBECLRRSCLRRWCLRELCALLBUSYRET;=DTSEN:SETBESETBRSCLRRWCLRELCALLBUSYRET

36、;=BUSY:PUSHACCMOVD,#0FFHBUSY_1:CLRECLRRSSETBRWSETBEJBD.7,BUSY_1POPACCRET;=GET_1820:CLRTR0SETBDQ;ACALLINIT_1820JBFLAG1,GET_1820_1;RETGET_1820_1:MOVA,#0CCH;跳过ROM匹配ACALLWRITE_1820;MOVA,#044H;发出温度转换命令ACALLWRITE_1820;SETBTR0ACALLDELAY750;CLRTR0ACALLINIT_1820;准备读温度前先复位MOVA,#0CCH;跳过ROM匹配ACALLWRITE_1820;MOV

37、A,#0BEH;发出读温度命令ACALLWRITE_1820;ACALLREAD_1820;将读出的温度数据保存到内存中ACALLDS_1820;将从DS1820中读出来的温度数据转换为显示数据SETBTR0RET;-;从DS1820中取出来的温度数据*625DS_1820:MOVDT2_10,#11;第1位不显示MOVA,T_H8JNBACC.7,DS_1820_3;如果温度小于0,测到的数值需要取反加1再乘于0.0625即可得到实际温度CPLAMOVT_H8,AMOVA,T_L8CPLACLRCADDA,#1MOVT_L8,AMOVA,T_H8ADDCA,#0MOVT_H8,AMOVDT2

38、_10,#12;第1位显示-DS_1820_3:MOVJS_A4,#0MOVJS_A3,#0MOVJS_A2,T_H8MOVJS_A1,T_L8MOVJS_B4,#00HMOVJS_B3,#00HMOVJS_B2,#002HMOVJS_B1,#071HLCALLCHENFAMOVR1,#DT2_14MOVR2,#4MOVJS_B4,#00HMOVJS_B3,#00HMOVJS_B2,#00HMOVJS_B1,#10ACALLCHUFAACALLCHUFAACALLCHUFADS_1820_1:ACALLCHUFAMOVR1,JS_C1DECR1DJNZR2,DS_1820_1MOVDT2_15

39、,DT2_14MOVDT2_14,#14MOVA,DT2_11;温度值的百位为零就不显示JNZDS_1820_2MOVDT2_11,#11MOVA,DT2_12;温度值的十位为零就不显示JNZDS_1820_2MOVDT2_12,#11DS_1820_2:RET ;=INIT_1820:SETBDQNOPCLRDQACALLDE_500USETBDQNOPNOPNOPMOVR0,#25HINIT1:JNBDQ,INIT2DJNZR0,INIT1CLRFLAG1LJMPINIT4INIT2:SETBFLAG1MOVR0,#117DJNZR0,$INIT4:SETBDQRET;=WRITE_182

40、0:MOVR2,#8CLRCWRITE1:CLRDQMOVR3,#6DJNZR3,$RRCAMOVDQ,CMOVR3,#23DJNZR3,$SETBDQNOPDJNZR2,WRITE1SETBDQRET;=READ_1820:MOVR1,#T_L8 MOVR4,#2READ11:MOVR2,#8READ2:CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,#9DJNZR3,$MOVC,DQMOVR3,#23DJNZR3,$RRCADJNZR2,READ2MOVR1,ADECR1DJNZR4,READ11RET;=DE_500U:MOVR7,#5DE11:MOVR6,#48DE12:DJNZR6,DE12DJNZR7,DE11NOPNOPRET;=DELAY750:MOVR7,#98DE21:MOVR6,#50DE22:MOVR5,#75DE23:DJNZR5,DE23DJ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1