




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
日期:年月日 任务书世园会倒计时牌及温度表的设计要求(不能采用专用芯片):(1)显示倒计时天数以及小时、分钟、秒(各2位)。(2)参数可手动设置(3)选择传感器,并设计相应的信号处理电路。(4)实现实时温度显示功能(每秒刷新一次),温度测量范围4060(5)可采用电池组供电和交流电源供电 扩充功能:(1)防止极性接反,电压不足时,报警提示。(2)剩余天数、时分秒、温度交替显示。摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中倒计时牌和温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 主要功能:单片机控制的倒计时牌及温度计,可以设置倒计时剩余天时分秒的初值,并可以显示当前环境温度。输出剩余天数时分秒以及温度用动态显示LED数码,单片机使用AT89C52, 测温传感器使用DS18B20,实现实时温度显示功能(每秒刷新一次),温度测量范围4060。这一课程设计,主要考察单片机理论知识与实际应用的结合,要求我们既要有扎实的理论设计基础,还要有较强的变成及调试程序的能力和极大的耐心完成了这一课程设计,我们对于“从实践中得真知”有了真切的理解,而且加强了对单片机知识的应用,以及编制程序和调试程序的能力,熟悉了PROTEUS的应用,增强了查找分析解决软硬件问题的能力。尽管出现了许多问题,但从中获得的不仅仅是单片机倒计时牌,更重要的是懂得了学以致用的意义。前言 本设计主要实现倒计时牌和温度显示功能,即天时分秒的显示和实时温度的采集显示功能。时间显示天数显示三位,时分秒各两位,并能够手动设置时间参数。该功能由单片机内部定时计数器T0实现50ms定时,循环20次从而实现1s定时,到1秒时秒的个位减1,秒的个位减至0时秒的十位减1同时将秒的个位置9,以此类推,实现倒计时功能。天时分秒的显示电路是由74LS245驱动的六片集成数码管构成,数码管的片选是由74LS138实现的。剩余天数,剩余时分秒和温度显示可以通过对应秒的个位显示的不同数值实现跳转交替显示。温度传感器选择18B20数字温度传感器,温度显示选择高三位数码管显示,显示电路与时间显示类似。目录方案分析1设计中主要元件1主要元件功能简介2程序设计5主程序流程图5 0显示状态6 1示状态7 2显示状态8 计时9 键盘程序12调试 13软件调试13 实物调试16结论18附录1元件清单20附录2程序21附录3参考资料32附录4 电路图33方案分析总体方案介绍(工作原理) 本设计主要使作品处于三种显示工作状态。第一状态:倒计时和温度交替显示状态。轮流显示时分秒显示8秒,天数显示3秒,温度显示3秒,一次循环。第二状态:调整剩余天数状态(通过1号键实现状态跳转)。数码管显示天数,需调整的位数闪烁,通过2号键调整数值。第三状态:调整时分秒状态(通过1号键实现状态跳转)。数码管显示时分秒,需调整的位数闪烁,通过2号键调整数值。计时单片机内部使用TO用0方式实现计时,用定时计数器进行50毫秒的定时,触发中断循环二十次则实现了1秒的计时。每到一秒计时结束调用一次显示时间减一秒的子程序和温度子程序。显示时间减一的子程序:将时间从20H单元开始存储,子程序开始先判断秒是不是为0,若秒的个位不等于0,则秒的个位减1,结束;若等于0时将秒的个位置9,然后判断秒的十位是否为0,若秒的十位不为0则将秒的十位减一,结束:若为0则将它置5,然后判断分的个位是否为0。若分的个位不为0则将分的个位减一,结束;若为0则将它置9,然后判断分的十位是否为0。若分的十位不为0则将分的十位减一,结束;若为0则将它置5,然后判断时的个位是否为0。若不为0则将时的个位减一,结束;为0再判断时的十位是否为0。若不为0则将时的十位减一,再将时的个位置9,结束;若为0将时的十位置2,时的个位置3,再判断天的个位是否为0。若不为0则将天的个位减一,结束;若为0将它置9,然后判断天的十位是否为0。如果不为0则将天的十位减一,结束;为0将它置9,然后判断天的百位是否为0。若不为0则减一,结束;为0则将所有位清0,倒计时也到此结束了。显示倒计时显示由74LS245驱动六位八段共阴极数码管实现,P0口作为输出口接到74LS245的输入端。P1口输出显示的位置,数码管运用动态显示,用74LS138进行片选,从低位到高位轮流显示。 键盘 本作品只用了两个按键,按键1用来转换显示状态,按键2用来改变闪烁位数的数值。没按一次1键,显示器上显示的位数就会向后退一位,没按一次按键2,闪烁的位数的值就会加1,从未实现参数的改变,实现手动设置参数。设计中主要原件1)89C52RC芯片一个2)74LS245两片3)74LS138一片4)MAX232一片5)DS18B20温度传感器一个6)9012运算放大器一个7)三位八段共阴极数码管两个8)振荡器一个9)若干开关、电阻、电容、双排插针、单排插针等10)伟福仿真器系列调试软件11)Proteus仿真模拟环境 主要原件功能简介(1)8051单片机 80C51是INTEL公司MCS-51系列单片机中最基本的产品,其图见图一,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。 图一 图二 表一(2)74LS245驱动器如图一74LS245的引脚图,图表一为其功能表。图中G为使能端,DIR为方向控制端,A1-A8为A端的数据输入/输出,B1-B8为B端的数据输入/输出。74LS245是一种三态输出的8总线收发驱动器,无锁存功能。当G为低电平时,如果DIR为高电平,则74LS245将A端的数据传送至B端;如果DIR为低电平,则74LS245将B端的数据传送至A端。在其他情况下不传送数据,输出呈高阻态。(3)74LS138芯片 如图三74LS138的引脚图,该译码器在CBA输入不同时在Y0-Y7端输出低电平。在本设计中,CBA为P1口的低三位,Y0-Y7与74LS245的输入端相接,通过输出低电平来控制数码管的显示。实现了数码管的动态显示。在连接电路时,E1接高电平,E2、E3接低电平,使74LS138实现译码功能。A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U174LS138图三 (4) DS18B20温度传感器美国DALLAS公司生产的单线数字温度传感器DS1820见图三把温度信号直接转换成串行数字信号供微机处理。由于每片DS1820含有唯一的硅串行数所以在一条总线上可挂接任意多个DS1820芯片。从DS1820读出的信息或写入DS1820的信息,仅需要一根口线(单线接口)。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS1820供电,而无需额外电源。DS1820提供九位温度读数,构成多点温度检测系统而无需任何外围硬件。DS1820的测温原理:内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时振荡器的脉冲无法通过门电路。计数器设置为-55时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以上过程。温度表示值为9bit,高位为符号位。 图三 图四(5)数码显示管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本设计采用2个3联共阴8段数码管,如图4所示。数码管的驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S52单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。由于每个显示字段显示通常需要十到几十毫安的驱动电流,因此显示控制信号必须经过驱动电路(即通过74LS245)才能使显示器正常工作。本设计中由74LS138控制控制数码管的动态显示。程序设计主程序流程图开 始初始化程序,将显示状态存入40H,初始为0判断状态,散转40H为4至940H为1,2,340H为02显示状态1显示状态0显示状态天数、时分秒、温度交替显示 调整天数 调整时分秒 0显示状态开 始启动计时器显示时分秒扫描键盘YN判断状态,散转显示状态改变N显示8秒Y显示三位天数Y扫描键盘N判断状态,散转显示状态改变N显示3秒Y显示温度扫描键盘YNN判断状态,散转显示状态改变显示3秒Y1显示状态开 始停止计时显示三位天数扫描键盘YNN判断状态,散转显示状态改变显示30次Y显示两位天数,不显示需调节位Y扫描键盘显示状态改变判断状态,散转NNY显示50次 2显示状态开 始停止计时显示六位时分秒扫描键盘YNN判断状态,散转显示状态改变显示20次Y显示五位时分秒,不显示需调节位Y扫描键盘显示状态改变判断状态,散转NNY显示20次计时中断入口N保护现场中断了20次Y 涮洗温度调用时间更改程序 重赋中断次数值 恢复现场RETI时间更改程序开始N秒的个位为0 秒的个位减1Y RET 秒的个位赋9 YN 秒的十位减1秒的十位为0Y秒的十位赋5分的个位为0 N 分的个位减1Y RET分的个位赋9N分的十位为0 分的十位减1Y RET 分的十位赋5N 时的个位减1时的个位为0YN时的十位为0 时的十位减1Y 时的个位赋9 RET 时的个位赋3 时的十位赋2N天的个位为0 天的个位减1Y RET 天的个位赋9N天的十位为0 天的十位减1Y RET 天的十位赋9N时天的百位为0 天的百位减1Y RET全部位赋0,计时结束键盘程序开 始置P2为输入输出NRET 有按键按下赋9Y延时20ms消抖NYRET 有按键按下? 按键识别NY 按键释放? 延时20ms消抖NY 按键释放?Y 1号键处理程序 1号键按下?NYN 2号键处理程序 2号键按下?RET 1号键处理程序开 始Y 40H单元赋040H单元为9?N 40H单元加1开 始 2号键处理程序开 始调用40H单元值判定需更改位 更改一次值RET 调试软件调试软件的调试过程在proteus中实现以下给出调试过程:电路图载入程序后,正常显示时分秒,显示8秒,转入显示天数正常显示三位天数,显示3秒,转入温度显示正常显示温度,显示3秒后,转入时分秒显示出现问题:一开始在中断计时处调用温度程序,想实现每秒刷新一次温度,但显示温度后无法再跳转显示剩余天数和时分秒。解决方法:将测量温度程序在显示剩余天数和时分秒的程序中调用,基本满足温度测量的调用要求。 实物图开机初始化,各位全为0 实物图赋值后天数,时分秒和温度交替显示下图为显示时分秒下图为天数显示下图为温度显示温度显示误差较大,冬季宿舍室温不可能达到25度,分析原因,可以采用程序修改误差,然而单靠温度程序修改是不能达到目的的。由于18B20在电路板上与LS245靠得很近,随着系统的运行,LS245会发热导致传感器测温误差,对于温度的校正,要采用导线使18B20远离发热元件,同时适当的调整测温软件的初值。结论 对于基本的实验要求,天时分秒的倒计时,可实现时分秒调整,基于18B20的温度测试显示,已基本实现。然而温度测试未能实现每秒刷新一次,这是一大遗憾,但温度显示是每隔几秒显示一次,不太影响温度计的显示。通过做这个课程设计,我学到了很多。从刚开始的一头雾水到最好的豁然开朗,不仅是一个挑战自我战胜自我的过程,更重要的是把所学的知识运用到了实践当中,看着仿真成功的电路图,相信每一个和我一样努力过的同学都会有一种满足感。首先在方案的选择上就化了很大的心思,在同学的帮助下才渐渐有了眉目,我也明白了在方案实施之前一定要对硬件的理论可行性有足够的把握,而不是一味主观臆断。DS18B20温度传感器其部分也是一个巨大的难题,对这一部分可以说是一无所知,完全摸不到头脑,最好还是调用在网上搜到的温度程序。由此也暴露出在自己在接触新知识时不能很好的理解和学习,没有较好的自学能力,以后要加强。 本次的课设,我认为键盘扫描的部分是也是难点和突破口,键盘设计合理,可以省去很多步骤,简单的实现多种操作(时分秒的加调整,减调整),然而扫描程序的设计要和实际的物理电路,操作目的紧密联系,并不是那么容易就能实现协调统一的。我设计的键盘有些复杂,要用九个键实现对时间的改变,操作有些复杂。但程序比较简单。今后我要努力强化自己在这一方面的知识,编出更简单,使操作更方便的程序。 纵观整个实验过程,我深刻的体会到了单片机是一门强调动手能力的使用性很强的课程,小小的单片机,运用得当可以解决相当多的问题。通过本次毕业设计,我在老师的精心指导和同学单独帮助下,获得了丰富的理论知识,极大地提高了实践能力,这对我今后进一步学习计算机方面的知识有极大的帮助。在此,忠心感谢老师以及许多同学的指导和支持。附录1 元件明细元器件数量备注电阻31K电阻45.1K电阻28K独石电容60.1uF独石电容230PF电解电容110Uf 25V51单片机实验板189C52芯片1MAX232芯片174LS245芯片274LS138芯片1DS18B201三极管90122PNP二极管IN40011数码管2三位八段 共阴继电器1晶振111.0592MHz芯片座6电源座1三脚 5V通信插座1CON232电源适配器1通讯电缆1微型按钮开关10实验插板1单排插针若干双排插针若干短路块若干导线若干附录2 程序 ORG 0000H LJMP MAIN ORG 000BH LJMP P_T0 ORG 0030HMAIN:TEMPER_NUM EQU 50H ;TEMPER_NUM:保存读出的温度数据 TEMPER_L EQU 36H ;温度的低位 TEMPER_H EQU 35H ;温度的高位 FH EQU 34H ;温度的符号 MOV 20H,#00H ;从20H至28H存时间参数 MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#00H MOV 27H,#00H MOV 28H,#00H MOV 40H,#00H ;存显示状态值 MOV 41H,#00H MOV SP,#60H ;中断初始化 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 MOV 30H,#20HCHOOSE:CLR TR0 ;判断显示状态,实现跳转 MOV DPTR,#JMP_STATE MOV A,40H RL A JMP A+DPTRJMP_STATE:AJMP STATE0 AJMP STATE1 AJMP STATE1 AJMP STATE1 AJMP STATE2 AJMP STATE2 AJMP STATE2 AJMP STATE2 AJMP STATE2 AJMP STATE2STATE0: SETB TR0 ;0显示状态 SHOW_HOU:MOV 43H,#8 SHOW_HOU_1: LCALL DSPLY0;显示时分秒 LCALL SCAN_KEY ;扫描键盘 MOV A,40H CJNE A,#00H,CHOOSE;判断显示状态是否改变,改变则跳转 MOV A,43H CJNE A,#0,SHOW_HOU_1;判断显示完8秒,没则跳转 LCALL TEMPERSHOW_DAY: MOV 43H,#3SHOW_DAY_1:LCALL DSPLY1 ;显示三位天数 LCALL SCAN_KEY ;扫描键盘 MOV A,40H CJNE A,#00H,CHOOSE;判断显示状态是否改变,改变则跳转 MOV A,43H CJNE A,#0,SHOW_DAY_1;判断显示完3秒,没则跳转 LCALL TEMPER SHOW_T: MOV 43H,#3 SHOW_T_1:LCALL DSPLY2 ;显示温度 LCALL SCAN_KEY ;扫描键盘 MOV A,40H CJNE A,#00H,CHOOSE MOV A,43H CJNE A,#0,SHOW_T_1 ;判断显示完3秒,没则跳转 LCALL SHOW_HOU AJMP SHOW_HOUSTATE1: MOV 41H,40H ;1显示状态 STATE1_A:MOV R6,#30 TE1_A: LCALL SCAN_KEY MOV A,40H CJNE A,41H,CHOOSE LCALL DSPLY1 ;显示时分秒 DJNZ R6,TE1_A STATE1_B:MOV R6,#50 TE1_B: LCALL SCAN_KEY MOV A,40H CJNE A,41H,CHOOSE LCALL FLASH1 ;显示时分秒,不显示需调整的位 DJNZ R6,TE1_B AJMP STATE1_ASTATE2: MOV 41H,40H ;2显示状态 STATE2_A:MOV R6,#20 TE2_A:LCALL SCAN_KEY MOV A,40H CJNE A,41H,STATE2_CHO LCALL DSPLY0 ;显示三位天数 DJNZ R6,TE2_A STATE2_B:MOV R6,#20 TE2_B:LCALL SCAN_KEY MOV A,40H CJNE A,41H,STATE2_CHO LCALL FLASH0 ;显示天数,不显示需调整的位 DJNZ R6,TE2_B AJMP STATE2_ASTATE2_CHO:LJMP CHOOSEDSPLY0:MOV R0,#25H ;显示时分秒的子程序 MOV R2,#00H RED0:ACALL DISP ;调用一位显示子程序 DEC R0 INC R2 CJNE R2,#06H,RED0;判断六位显示完否 RETDSPLY1:MOV R0,#28H ;显示三位天数子程序 MOV R2,#03H RED1:ACALL DISP DEC R0 INC R2 CJNE R2,#06,RED1;判断3位显示完否 RETFLASH0:MOV R0,#25H ;程序显示时分秒,但不显示需调整的位 MOV R2,#00H MOV A,#29H CLR C SUBB A,41H MOV 42H,A ;42H中存放需调整位的地址 RD0:MOV A,R0 CJNE A,42H,RED0_1;判断是否为需调整的位 DEC R0 ;若是则跳过此位的显示 INC R2RED0_1:CJNE R2,#06H,RED0_2 RETRED0_2:ACALL DISP DEC R0 INC R2 AJMP RD0FLASH1:MOV R0,#28H ;程序显示天数,但不显示需调整的位 MOV R2,#03H MOV A,#29H CLR C SUBB A,41H MOV 42H,A ;42H中存放需调整位的地址 RD1:MOV A,R0 CJNE A,42H,RED1_1;判断是否为需调整的位 DEC R0 ;若是则跳过此位的显示 INC R2RED1_1:CJNE R2,#06H,RED1_2 RETRED1_2:ACALL DISP DEC R0 INC R2 AJMP RD1DISP: MOV A,R2 MOV P1,A MOV DPTR,#LED_SEG MOV A,R0 MOVC A,A+DPTR MOV P0,A ACALL DL1MS RETLED_SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDL1MS:MOV R3,#200 ;延迟1ms子程序 DL1:NOP NOP NOP DJNZ R3,DL1 RETDL20MS:MOV R4,#20 ;延迟20ms子程序 DL20:LCALL DL1MS DJNZ R4,DL20 RETP_T0:PUSH ACC ;计时中断程序 PUSH PSW DJNZ 30H,GOON ;判断是否计时1s,否则跳转 LCALL TIME ;倒计时时间减1s DEC 43H MOV 30H,#20GOON:MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETITIME:MOV A,20H ;时间减1s JZ SECOND2 DEC 20H RETSECOND2:MOV 20H,#09H MOV A,21H JZ MIN1 DEC 21H RET MIN1:MOV 21H,#05H MOV A,22H JZ MIN2 DEC 22H RETMIN2: MOV 22H,#09H MOV A,23H JZ HOURS1 DEC 23H RETHOURS1: MOV 23H,#05H MOV A,24H JZ HOURS2 DEC 24H RETHOURS2: MOV A,25H JZ DAY1 MOV 24H,#09H DEC 25H RETDAY1: MOV 24H,#03H MOV 25H,#02H MOV A,26H JZ DAY2 DEC 26H RETDAY2: MOV 26H,#09H MOV A,27H JZ DAY3 DEC 27H RETDAY3: MOV 27H,#09H MOV A,28H JZ DAY4 DEC 28H RETDAY4:MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#00H MOV 27H,#00H MOV 28H,#00H RETSCAN_KEY:MOV P2,#7FH ;键盘扫描程序 MOV A,P2 ANL A,#00001100B XRL A,#00001100B JZ NO_PRESS ;判断有键按下否 ACALL DL20MS ;延迟20ms MOV A,P2 ANL A,#00001100B XRL A,#00001100B JZ NO_PRESS ;判断有键按下否 MOV A,P2 MOV R5,#05H CONT: RRC A DEC R5 JNC FOUND CJNE R5,#01H,CONT NO_PRESS:RET FOUND: MOV A,P2 ANL A,#00001100B XRL A,#00001100B JNZ FOUND ;按键释放否 ACALL DL20MS MOV A,P2 ANL A,#00001100B XRL A,#00001100B JNZ FOUND ;按键释放否 MOV A,R5 CJNE A,#01,NEXT1 LJMP SO_PRESSNEXT1: CJNE A,#02,NEXT4 LJMP S1_PRESSSO_PRESS:MOV A,40H ;1号键按下 CJNE A,#09H,S0_PR MOV 40H,#00H NEXT4:RET S0_PR:INC A MOV 40H,A RETS1_PRESS:MOV A,40H ;2号键按下 CJNE A,#00H,S1 RET S1:CJNE A,#01H,S2 ;修改天百位的值 LJMP S1_1 S2:CJNE A,#02H,S3 ;修改天十位的值 LJMP S1_1 S3:CJNE A,#03H,S4 ;修改天个位的值 LJMP S1_1 S4:CJNE A,#04H,S5 ;修改时十位的值 INC 25H MOV A,25H CJNE A,#02H,S4_4 MOV A,24H CJNE A,#04H,S4_6 S4_6:JC S4_7 MOV 24H,#03 S4_7:RET S4_4:JC S4_5 MOV 25H,#00H S4_5:RET S5:CJNE A,#05,S6 ;修改时个位的值 MOV A,25H CJNE A,#02H,S5_1 INC 24H MOV A,24H CJNE A,#04H,S5_2 S5_2:JC S5_3 MOV 24H,#00H S5_3:RET S5_1:LJMP S1_1 S6:CJNE A,#06,S7 ; 修改分十位的值 LJMP S6_68 S7:CJNE A,#07H,S8 ;修改分个位的值 LJMP S1_1 S8:CJNE A,#08H,S9 ;修改秒十位的值 LJMP S6_68 S9:CJNE A,#09H,NEXT2; 修改秒个位的值 LJMP S1_1 S1_1:MOV A,#29H CLR C SUBB A,40H MOV R1,A CJNE R1,#09H,S1_2 MOV R1,#00H RET S1_2:INC R1 RET S6_68:MOV A,#29H CLR C SUBB A,40H MOV R1,A CJNE R1,#05H,S6_6 MOV R1,#00H RET S6_6: INC R1 RET NEXT2:RETTEMPER: ACALL RE_CONFIG ;初始化18B20 ACALL GET_TEMPER ;采样 LCALL TEMPER_COV RET;. ; 重新写DS18B20暂存存储器设定值RE_CONFIG: JB 00H,RE_CONFIG1; 若DS18B20存在,转RE_CONFIG1 RETRE_CONFIG1:MOV A,#0CCH; 发SKIP ROM命令 LCALL WRITE_1820 MOV A,#4EH; 发写暂存存储器命令 LCALL WRITE_1820 MOV A,#00H; 不 TH(报警上限)中写入00H LCALL WRITE_1820 MOV A,#00H; TL(报警下限)中写入00H LCALL WRITE_1820 RET;. ; 读出转换后的温度值GET_TEMPER: SETB P1.3 ; 定时入口 LCALL INIT_1820 JB 00H,TSS1 RET ; 若DS18B20不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计在现代制造中的作用和价值
- 工业遗产保护与再利用的环境设计策略
- 工业艺术区规划设计及其产业融合案例分享
- 工业设计创新与技术美学探讨
- 工作效率提升的实践案例分享
- 工作场所的安全规范培训
- 工厂企业防火培训教材
- 工作报告编制技巧与实战分享
- 工程设计中的数学模型构建
- 市场分析与目标用户画像的技巧
- 建筑施工安全管理及扬尘治理检查投标方案(技术方案)
- 医院耗材SPD解决方案(技术方案)
- 【语文】浙江省杭州市西湖小学小学二年级下册期末试卷(含答案)
- 全国高中青年数学教师优质课大赛一等奖《导数的概念》课件
- 食堂餐厅服务方案投标方案(技术标)
- 古生菌的多样性课件
- (2023版)高中化学新课标知识考试题库大全(含答案)
- 硫酸亚铁安全技术说明书
- 装饰装修工程概况描述(参考)
- SJ2D双微机自动准同期装置说明书
- 中国移动热线人工优秀服务蓝图
评论
0/150
提交评论