




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告主 课 题 : 电子密码锁 报 告 人 : 同组成员 : 课设时间 : 目 录一、实现功能3二、使用硬件31.ADUC84832. 电源模块63.数码管74. 蜂鸣器95.按键模块10该模块原理如图10插针配置:106. 复位与下载11三程序流程图:12检测按键程序流程图:12设置时间流程图:13输入密码流程图:14修改密码流程图:15四、源程序:16;密码初始化程序16;设置时间程序17;输入密码程序18;修改密码程序19;以下是各种子程序21;存放数码管段码子程序21;输入时间子程序22;输入密码子程序22;比较密码子程序23;密码错误子程序25;输入密码时的键盘扫描子程序27;密码输入的数码管显示子程序28;显示北京时间的数码管显示子程序30;分别计时秒,分,时33五使用说明341.键盘功能说明342设置北京时间343.输入密码344.修改密码35六、实验心得35一、实现功能1) 设计一多位电子密码锁,输入密码用“0”表示,输入密码正确,显示“YES”,输入密码错误,显示“NO”,蜂鸣器响2) 具有确定键和取消键,在未确定之前可以取消,重新输入3) 连续输入三次错误密码,蜂鸣器响,显示“ERROR”键盘锁定4) 具有密码重置功能5)显示北京时间,同时可对北京时间进行修改二、使用硬件1.ADUC848ADUC848管脚图如下图所示Pin14:(P1.0P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0xf0。若P2、P3、P0口要作为输入,则应往相应引脚写1。Pin5、6:AVDD、AGND,模拟电源输入。Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有2.5V内部参考,ADC有1.25V内部参考。Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。Pin14:片内DAC输出。Pin15:复位引脚。Pin16、17:单片机RS232接口的RXD(P3.0) TXD(P3.1)。Pin18:(P3.2) 外部中断0,用于红外接收和PS/2接口。Pin19:(P3.3)LCD1602,LCD12864A的EN引脚,控制第一位数码管。Pin20、21:DVDD、DGND数字电源输入。Pin22:(P3.4)PS/2接口的data信号。Pin23:(P3.5)LCD1602和LCD12864A的RW。Pin24:(P3.6)LCD1602和LCD12864A的RS。Pin25:LCD12864A的CS1。Pin26:IIC接口时钟信号。Pin27:IIC接口data信号。Pin28:(P2.0)SPI接口时钟信号。Pin29:(P2.1)SPI接口MOSI信号、控制第6位数码管的位码。Pin30:(P2.2)SPI接口MISO信号、控制第7位数码管的位码。Pin31:(P2.3)SPI接口SS信号、控制第8位数码管的位码;P2.03也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。Pin32、Pin33:接外部32.768KHz晶振。Pin34、Pin35:DVDD、DGND。Pin36:(P2.4)LCD12864A的CS2。Pin37:(P2.5)内部PWM模块输出,控制红外LED。Pin38:(P2.6)内部PWM模块输出,控制蜂鸣器。Pin39:(P2.7)内部PWM模块的外部时钟输入(也可以用内部时钟)。Pin40:EA,低电平有效,正常使用时拉低。Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。Pin42:ALE。Pin47、Pin48:DGND、DVDD。Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码管的段码。2. 电源模块 本学习板共有如下3种供电方式:(1)5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。(2)712V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽) 。(3)USB供电(开关往下拨)。电源模块原理图本次使用第3种供电方式,将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。3.数码管该模块原理如图(1)DS07:数码管段码。(2)BIT07:数码管位码。(3)MOTORAD:步进电机驱动信号。(4)DISCTRL04:显示控制信号,控制数码管低5位。(5)D08:单片机P0口。本设计采用共阴极数码管,段码由PNP三极管驱动,位码由NPN型三极管驱动。引脚复用: 数码管低5位(板上为右边5位)的位码由DISCTRL04控制,可单独使用,高3位的位码控制信号与SPI信号,电机驱动信号,4X4矩阵式键盘复用,使用数码管高3位时参与复用的其他功能则不能使用。插针配置: (1)若要使用数码管第40位(板上为右边5位),可以接通插针8。(2)若要使用数码管第75位(板上为左边3位),可以分别接通插针57和9。4. 蜂鸣器 该模块原理图如图1.10所示。本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1(P2.6)控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器采用普通NPN三极管。插针配置: 使用蜂鸣器,可以接通插针3。5.按键模块 该模块原理如图由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。引脚复用:P2.0P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、P2.1P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置: (1)插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0P1.3,列扫描信号为P2.02.3。 (2)插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用端口为P1.0P1.3。这4个按键为4X4矩阵键盘的左边4个按键。6. 复位与下载 复位与下载电路如图进入下载或调试模式的步骤为: (1)按住BTN1(down or debug按键)不要放开; (2)按下BTN2(reset按键),然后放开BTN2(reset按键);(3)放开BTN1(down or debug按键)。这样单片机就进入了调试模式,可以下载或调试程序。三程序流程图:检测按键程序流程图:NNNYYYSCAN 显示时间程序设置时间?输入密码?修改密码?返回 输入密码程序修改密码程序设置时间程序设置时间流程图:NYNN秒钟十位个位送SBF秒钟十位6?数字键?输入时间程序保存数字键?输入时间程序保存YYNN数字键?输入时间程序保存分钟十位个位送MBF保存数字键?输入时间程序分钟十位6?TIME 小时十位个位送HBF小时十位3?显示Error,锁键盘错误次数加1显示“NO”蜂鸣器响YNYNY返回返回键被按下?显示“YES”比较密码子程序密码正确?取消键被按下?输入密码子程序初始化ENTER修改密码流程图:N错误次数3?显示Error,锁键盘错误次数加1显示“NO”蜂鸣器响N返回键被按下?返回Y显示“FINISH”显示“N”N输入密码子程序NNENTER初始化取消键被按下?比较密码子程序密码正确?YN输入密码子程序取消键被按下?显示“r”,再次输入新密码确认,两次密码相同?取消键被按下?NNNYYY四、源程序:BITCNT DATA58HERRORCNTDATA5AHBUF EQU 2BHSBF EQU 2AHMBF EQU 29HHBF EQU 28H ORG 0000H LJMP MAIN ORG 000BH LJMP CLOCK0ORG 0039HMAIN: MOV BUF,#00H MOV SBF,#06H MOV MBF,#10H MOV HBF,#02H MOV TMOD ,#11H /T0十六位 MOV TL0,#00H MOV TH0,#1CH SETB ET0 SETB ET1 SETB EA SETB TR0;密码初始化程序L0:MOV BITCNT,#00H ;输入计数MOV ERRORCNT,#00H ;存放错误次数MOV R4,#08HMOV R1,#27HSTART:MOV A,R4MOV R1,ADEC R1DJNZ R4,START;20H-27H存放初始密码;检测按键程序 SCAN:LCALL KEY0 ;调用键盘输入子程序MOV R5,A XRL A,#0BHJZTIME ;设置时间键被按下,转到TIME(设置时间程序)MOV A,R5XRL A,#0CHJZ ENTER;输密码键被按下,转到输入密码程序MOV A,R5XRL A,#0DHJZ NNN1SJMP NNN2NNN1:LJMP SET0 ;改密码键被按下,转到修改密码程序NNN2:LJMP SCAN ;其他键被按下,无效,再扫描按键;设置时间程序TIME: CLR TR0B0: LCALL INPUTTIME MOV R6,A CLR CSUBB A,#03HJC W0 SJMP B0W0:MOV70H,R6 B1: LCALL INPUTTIMEW1:MOV61H,AMOV A,70HSWAP AADD A,61HMOV HBF,AB2: LCALL INPUTTIME MOV R6,A CLR CSUBB A,#06HJC W2 SJMP B2W2:MOV73H,R6 B3: LCALL INPUTTIMEW3:MOV64H,AMOV A,73HSWAP AADD A,64HMOV MBF,AB4: LCALL INPUTTIME MOV R6,A CLR CSUBB A,#06HJC W4 SJMP B4W4:MOV76H,R6B5: LCALL INPUTTIMEW5:MOV67H,AMOV A,76HSWAP AADD A,67HMOV SBF,ASETB TR0LJMP SCAN;输入密码程序ENTER:CALL CLEAR;调用存放数码管段码子程序,数码管全显示-,表示等待密码输入状态MOVBITCNT,#08H;输入密码程序MOV R1,#30H;30H-37H存放数码管段码MOV R0,#40H;40H-47H存放输入的密码CALL INPUT;调用密码输入子程序XRL A,#0EH ;判断取消键是否被按下JZ ENTER;取消键被按下,跳到ENTER重新输入密码CALL COMP;调用比较密码子程序JNC NNN3 ;C=0,密码错误,转到L1检测按键 SJMP PASSNNN3:LJMP L1;C=0,密码错误,转到L1检测按键PASS:MOV ERRORCNT,#00H;全部正确,错误次数清零MOV R1,#30HMOV R2,#05HMOV R1,#89H;30H存入y的段码INC R1MOV R1,#61H;31H存入e的段码INC R1MOV R1,#49H;32H存入S的段码LOOP0:INC R1;33H-37H存入全灭的段码MOV R1,#0FFHDJNZ R2,LOOP0LJMP DISP1;修改密码程序SET0:CALL CLEAR;调用存放数码管段码子程序,数码管全显示-,表示等待密码输入状态MOVBITCNT,#08HMOV R1,#30HMOV R0,#40HCALL INPUT;调用输入密码子程序,输入原密码XRL A,#0EH;判断取消键是否被按下JZ SET0;取消键被按下,跳到SET0重新输入密码CALL COMP;调用比较密码子程序,比较密码JNC NNNN3SJMP NENTERNNNN3:LJMP X1;C=0,密码错误,转到L1检测按键NENTER:MOV R1,#30H;密码正确,进入输新密码准备程序MOV R2,#07HMOV R1,#71H;30H存入F的段码,原密码输入正确,接着输入两次新密码LOOP1:INC R1MOV R1,#0FFHDJNZ R2,LOOP1;33H-37H存入全灭的段码MOVBITCNT,#08H;8位密码MOVR1,#30H;30H-37H存放数码管段码MOV R0,#50H ;50H-57H暂存放新密码CALL INPUT;调用输入密码子程序,输入新密码XRL A,#0EH;判断取消键是否被按下JZ NENTER;取消键被按下,跳到NENTER重新输入密码AGAIN:CALL CLEARMOV R1,#30H;进入输第二次新密码准备程序MOV R2,#07HMOV R1,#0F5H;30H存入r的段码,提示输入新密码LOOP2:INC R1MOV R1,#0FFHDJNZ R2,LOOP2;35H-37H存入全灭的段码MOVBITCNT,#08H;确认新密码MOV R1,#30HMOV R0,#40HCALL INPUT;调用输入密码子程序,再次输入新密码XRL A,#0EH;判断取消键是否被按下JZ AGAIN;取消键被按下,跳到AGAIN重新输入密码MOV R0,#40H;比较新密码程序MOV A,R0CJNE A,50H,X5;比较第0位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N1:INC R0MOV A,R0CJNE A,51H,X5;比较第1位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N2:INC R0MOV A,R0CJNE A,52H,X5;比较第2位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N3:INC R0MOV A,R0CJNE A,53H,X5;比较第3位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N4:INC R0MOV A,R0CJNE A,54H,X5;比较第4位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N5:INC R0MOV A,R0CJNE A,55H,X5;比较第5位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N6:INC R0MOV A,R0CJNE A,56H,X5;比较第6位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N7: INC R0MOV A,R0CJNE A,57H,X5;比较第7位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序MOV R2,#08H;两次输入的密码相同,将新密码存入20H-27H单元中MOV R1,#20HMOV R0,#50HLOOP3:MOV A, R0MOV R1,AINC R1INC R0DJNZ R2,LOOP3MOV R1,#30H;修改成功,在数码管上显示donEMOV R2,#03HMOV R1,#71H;30H存入F的段码INC R1MOV R1,#0F3H;31H存入I的段码INC R1MOV R1,#13H;32H存入n的段码INC R1MOV R1,#49H;33H存入S的段码INC R1MOV R1,#91H;34H存入H的段码LOOP4:INC R1;35H-37H存入全灭的段码MOV R1,#0FFHDJNZ R2,LOOP4LJMP DISP1X1:LJMP L1X5:CALL NOLJMP NENTER;以下是各种子程序CLEAR: MOV R2,#08H ;40H-47H单元清零,准备存放输入的密码MOV R0,#40HLOP1:MOV R0,#00HINC R0DJNZ R2,LOP1;存放数码管段码子程序X0:MOV R1,#08H MOV R0,#30H LOP2: MOV R0,#0FDH INC R0 DJNZ R1,LOP2;30H-37H存放等待输入密码时数码管的段码-RET;输入时间子程序INPUTTIME:LCALL KEY0MOV R5,AXRL A,#0AH JZ INPUTTIME ;无效键被按下,无效,转到INPUT,继续扫描MOV A,R5XRL A,#0BHJZ INPUTTIME;设置时间键被按下,MOV A,R5XRL A,#0CHJZ INPUTTIME;输密码键被按下,无效,继续扫描MOV A,R5XRL A,#0DHJZ INPUTTIME;改密码键被按下,无效,继续扫描MOV A,R5XRL A,#0EHJZ INPUTTIME;取消键被按下,MOV A,R5XRL A,#0FHJZ INPUTTIME;确定键被按下,MOV A,R5RET;输入密码子程序INPUT:LCALL KEY1MOV R5,AXRL A,#0AH JZ INPUT ;无效键被按下,转到INPUTMOV A,R5XRL A,#0BHJZ INPUT;设置时间键被按下,转到TIME(设置时间程序)MOV A,R5XRL A,#0CHJZ INPUT;输密码键被按下,无效,继续扫描MOV A,R5XRL A,#0DHJZ INPUT;改密码键被按下,无效,继续扫描MOV A,R5XRL A,#0EHJZ CANCEL;取消键被按下,转到ENTER(重新输入)MOV A,R5XRL A,#0FHJZ OK;确定键被按下,跳出子程序MOV A,R5MOV R0,A ;数字键被按下,存入密码MOV R1,#03H ;输入密码用0表示INC R0INC R1CALL DISPDJNZ BITCNT,INPUTLOP3:LCALL KEY1;已输入8位密码,检测按键MOV R5,AXRL A,#0EHJZ CANCEL;取消键被按下,转到CANCEL(取消程序)MOV A,R5XRL A,#0FHJZ OKSJMP LOP3;确定键被按下,跳出子程序OK:RETCANCEL:MOV A,R5;A存放取消的键值RET;比较密码子程序COMP:MOV R0,#40HMOV A,R0CJNE A,20H,X3;比较第0位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT1:INC R0MOV A,R0CJNE A,21H,X3;比较第1位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT2:INC R0MOV A,R0CJNE A,22H,X3;比较第2位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT3:INC R0MOV A,R0CJNE A,23H,X3;比较第3位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT4:INC R0MOV A,R0CJNE A,24H,X3;比较第4位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT5:INC R0MOV A,R0CJNE A,25H,X3;比较第5位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT6:INC R0MOV A,R0CJNE A,26H,X3;比较第6位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT7: INC R0MOV A,R0CJNE A,27H,X3;比较第7位密码,相同则跳到下一位比较,错误则跳到no(错误程序)SETB C;C=1表示密码正确RETX3:CLR C;C=0表示密码错误INC ERRORCNT;错误次数加1CALL NORETL1:MOV A,ERRORCNTCJNE A,#03H,NNNN1SJMP NNNN2NNNN1: LJMP DISP1;错误次数不足3,则转到DISP1NNNN2: MOV R1,#30H;错三次,锁键盘MOV R2,#03HMOV R1,#61H;30H存入E的段码INC R1MOV R1,#0F5H;31H存入R的段码INC R1MOV R1,#0F5H;32H存入R的段码INC R1MOV R1,#0C5H;33H存入0的段码INC R1MOV R1,#0F5H;34H存入R的段码LOP:INC R1;35H-37H存入全灭的段码MOV R1,#0FFHDJNZ R2,LOPCALL BUZZERCALL BUZZERLOCK:LCALL DISPAJMP LOCK;密码错误子程序NO:CALL BUZZERMOV R1,#30HMOV R2,#06HMOV R1,#13H;30H存入n的段码INC R1MOV R1,#03H;31H存入0的段码LOOP5:INC R1;32H-37H存入全灭的段码MOV R1,#0FFHDJNZ R2,LOOP5RET;显示时间时的键盘扫描子程序KEY0: CALL DISP0ACALL KS01 ;调键盘粗扫描子程序JNB P1.3,LK01JNB P1.2,LK01JNB P1.1,LK01JNB P1.0,LK01SJMP KEY0 LK01: ACALL DELAY ;延时,以消除键抖动的影响 ACALL KS01 ;10MS后再次扫描以确认有键按下 JNB P1.3,LK02JNB P1.2,LK02JNB P1.1,LK02JNB P1.0,LK02 ;是,转入细扫描 SJMP KEY0 ;否,则是由于干扰引起的误动作重新粗扫描LK02: MOV R2,#07H ;最左边一列(第0列)的列扫描码 MOV R4,#00H ;列扫描计数器初始值 MOV R3,#04H ;行扫描计数器初始值 LK04:MOV A,R2MOV P2,A ;输出列扫描码JB P1.0,LONE0 ;不是第0行的键被按下,则转移MOV A,#00H ;是第0行的键被按下,0ASJMP LKP0 ;转求键值LONE0:JB P1.1,LTW00 ;不是第1行的键被按下,则转移MOV A,#04H ;是第1行的键被按下,1ASJMP LKP0 ;转求键值LTW00:JB P1.2,LTHR0MOV A,#08H ;是第2行的键被按下,2ASJMP LKP0 ;转求键值LTHR0:JB P1.3,NEXT0MOV A,#0CH ;是第3行的键被按下,3ASJMP LKP0 ;转求键值NEXT0:MOV A,R4ADD A,#01H ;列计数器加上1MOV R4,ACLR CMOV A,R2 ;扫描列码RRC AADD A,#08H ;左移一位,指向下一列MOV R2,ADJNZ R3,LK04 ;未扫描完,转回扫描下一列SJMP KEY0 ;已扫描4列,未找到按下的键,转回粗扫描KS01:MOV A,#0F0H ;键盘粗扫描子程序 ANL A,P1MOV P1,AMOV A,#0F0HANL A,P2MOV P2,A RETLKP0:JNB P1.3,LKP0JNB P1.2,LKP0JNB P1.1,LKP0JNB P1.0,LKP0ADD A,R4 ;加上行计数器的值,得到按下键的键值 MOV DPTR, #TABLE;键扫描子程序结束,扫描得到的键值在A中MOVC A,A+DPTRRET;输入密码时的键盘扫描子程序KEY1: CALL DISPACALL KS1 ;调键盘粗扫描子程序JNB P1.3,LK1JNB P1.2,LK1JNB P1.1,LK1JNB P1.0,LK1SJMP KEY1 LK1: ACALL DELAY ;延时,以消除键抖动的影响 ACALL KS1 ;10MS后再次扫描以确认有键按下 JNB P1.3,LK2JNB P1.2,LK2JNB P1.1,LK2JNB P1.0,LK2 ;是,转入细扫描 SJMP KEY1 ;否,则是由于干扰引起的误动作重新粗扫描LK2: MOV R2,#07H ;最左边一列(第0列)的列扫描码 MOV R4,#00H ;列扫描计数器初始值 MOV R3,#04H ;行扫描计数器初始值 LK4:MOV A,R2MOV P2,A ;输出列扫描码JB P1.0,LONE ;不是第0行的键被按下,则转移MOV A,#00H ;是第0行的键被按下,0ASJMP LKP ;转求键值LONE:JB P1.1,LTW0 ;不是第1行的键被按下,则转移MOV A,#04H ;是第1行的键被按下,1ASJMP LKP ;转求键值LTW0:JB P1.2,LTHRMOV A,#08H ;是第2行的键被按下,2ASJMP LKP ;转求键值LTHR:JB P1.3,NEXTMOV A,#0CH ;是第3行的键被按下,3ASJMP LKP ;转求键值NEXT:MOV A,R4ADD A,#01H ;列计数器加上1MOV R4,ACLR CMOV A,R2 ;扫描列码RRC AADD A,#08H ;左移一位,指向下一列MOV R2,ADJNZ R3,LK4 ;未扫描完,转回扫描下一列SJMP KEY1 ;已扫描4列,未找到按下的键,转回粗扫描KS1:MOV A,#0F0H ;键盘粗扫描子程序 ANL A,P1MOV P1,AMOV A,#0F0HANL A,P2MOV P2,A RETLKP:JNB P1.3,LKPJNB P1.2,LKPJNB P1.1,LKPJNB P1.0,LKPADD A,R4 ;加上行计数器的值,得到按下键的键值 MOV DPTR, #TABLE;键扫描子程序结束,扫描得到的键值在A中MOVC A,A+DPTRRET;密码输入的数码管显示子程序DISP: MOV P2,#08HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,30HMOV P0,A;第7位数码管显示30H单元段码CALL DELAY1MOV P2,#04HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,31HMOV P0,A;第6位数码管显示31H单元段码CALL DELAY1MOV P2,#02HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,32HMOV P0,A;第5位数码管显示32H单元段码CALL DELAY1MOV P2,#10HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,33HMOV P0,A;第4位数码管显示33H单元段码CALL DELAY1MOV P2,#00HCLR P3.3CLR P3.5CLR P3.6SETB P3.7MOV A,34HMOV P0,A;第3位数码管显示34H单元段码CALL DELAY1MOV P2,#00HCLR P3.3CLR P3.5SETB P3.6CLR P3.7MOV A,35HMOV P0,A;第2位数码管显示35H单元段码CALL DELAY1MOV P2,#00HCLR P3.3SETB P3.5CLR P3.6CLR P3.7MOV A,36HMOV P0,A;第1位数码管显示36H单元段码CALL DELAY1MOV P2,#00HSETB P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,37HMOV P0,A;第0位数码管显示37H单元段码CALL DELAY1RET;显示北京时间的数码管显示子程序DISP0: MOV R0,#67H MOV A,SBF LCALL GET MOV R0,#0AH DEC R0 MOV A,MBF LCALL GET MOV R0,#0AH DEC R0 MOV A,HBF LCALL GET MOV P2,#08H CLR P3.3 CLR P3.5CLR P3.6CLR P3.7MOV A,60HCALL TABLE2MOV P0,A;第7位数码管显示60H单元段码CALL DELAY1MOV P2,#04HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,61HCALL TABLE2MOV P0,A;第6位数码管显示61H单元段码CALL DELAY1MOV P2,#02HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,62HCALL TABLE2MOV P0,A;第5位数码管显示62H单元段码CALL DELAY1MOV P2,#10HCLR P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,63H CALL TABLE2MOV P0,A;第4位数码管显示63H单元段码CALL DELAY1MOV P2,#00HCLR P3.3CLR P3.5CLR P3.6SETB P3.7MOV A,64H CALL TABLE2MOV P0,A;第3位数码管显示64H单元段码CALL DELAY1MOV P2,#00HCLR P3.3CLR P3.5SETB P3.6CLR P3.7MOV A,65HCALL TABLE2MOV P0,A;第2位数码管显示65H单元段码CALL DELAY1MOV P2,#00HCLR P3.3SETB P3.5CLR P3.6CLR P3.7MOV A,66HCALL TABLE2MOV P0,A;第1位数码管显示66H单元段码CALL DELAY1MOV P2,#00HSETB P3.3CLR P3.5CLR P3.6CLR P3.7MOV A,67HCALL TABLE2MOV P0,A;第0位数码管显示67H单元段码CALL DELAY1RETTABLE2: INC A MOVC A,A+PC RETDB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,0FBHGET: MOV R1,A ANL A,#0FH MOV R0,A DEC R0 MOV A,R1 SWAP A ANL A,#0FH MOV R0,A DEC R0 RETDISP1: LCALL KEY1 MOV R5,AXRL A,#0AH JZ NNN7SJMP NNN8NNN7:LJMP SCAN ;复位键被按下,返回时间显示NNN8:SJMP DISP1;其余键均无效,显示当前状态RETDELAY:MOV R6,#0FH ;键盘延时子程序LOOP6:MOV R7,#00H DJNZ R7,$ DJNZ R6,L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版收养协议范文集锦:全面解读收养合同要点
- 2025年度房地产估价代理服务协议
- 2025版汽车金融分期贷款购车合同范本
- 2025版浅析劳动合同中的定金合同条款适用
- 甘肃省张掖市山丹县马场总场中学2024-2025学年上学期期末质量检测九年级数学试题(含答案)
- 2025版智能家居系统集成试用协议书模板
- 2025年度行政诉讼上诉状范本制作及授权使用合同
- 2025版全新商铺门面租赁合同范本提供
- 2025年度智能设备动产质押贷款协议范本
- 2025版私人住宅智能安防系统设计与安装合同
- 冻结法原理岳丰田
- Unit 2 Lets celebrate Developing ideas-Writing a letter to express 课件【知识精讲+拓展训练】高中英语外研版(2019)必修第二册
- 新教材高中历史必修中外历史纲要上全册教学课件
- 图标设计与制作PPT完整全套教学课件
- 感染性休克教学查房演示文稿
- 碎石组织供应及运输售后服务保障方案
- 护理服务规范整改措施(共15篇)
- 幼儿园教育活动设计与实践 张琳主编 PPT
- 建筑施工过程中成品保护施工方案
- 法律职业伦理(第二版)完整版教学课件全书电子讲义(最新)
- 西师版三年级上册数学全册教案(完整)
评论
0/150
提交评论