⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noname1'.lst

📁 此程序为调试通过的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                                        页     1
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            KEYBUF  EQU     35H             ;/*键内码
            KEY     EQU     39H             ;/*键显示码
            rs	BIT	P2.2		;/*LCD模块用*/
            rw	BIT	P2.1		;/*LCD模块用*/
            enable	BIT	P2.0		;/*LCD模块用*/
            LCDADR  EQU     3AH             ;/*LCD显示地址
            DB0_DB7  DATA   P1
            FLAG0   EQU     0
            
            
            ;******************************************************************
                    ORG      000H
0000 2100           AJMP     START
                    ORG      100H
            START:
0100 787F           MOV  R0,#7FH
0102 E4             CLR  A
0103 F6     CLRRAM:  MOV   @R0,A
0104 D8FD            DJNZ  R0,CLRRAM
0106 75817D          MOV   SP,#7DH
            
0109 7580FF          MOV   P0,#0FFH
010C 7590FF          MOV   P1,#0FFH
010F 75A0FF          MOV   P2,#0FFH
0112 75B0FF          MOV   P3,#0FFH
            ;***************************************************************
0115 750000         MOV FLAG0,#0
            ;LCD初始化
0118 12013A         LCALL   InitialL        ;LCD初始化
011B 12017C         LCALL   CLRLCD          ;清LCD
            
            
            ;*******************************************************************************************
            ;主程序
            ;*******************************************************************************************
            WAIT:
011E 12018A         LCALL   KEYINPUT           ;是否有键按下?
0121 E500           MOV     A,FLAG0
0123 B401F8         CJNE    A,#1,WAIT
0126 12012B         lcall   tslcd
0129 80F3           SJMP     WAIT
            
            ;*****************************************************************
            tslcd:
012B 7480   LOOP1:                MOV     A,#10000000B            ;set the address
012D F9                           MOV     R1,A
            
012E 12015E                       CALL    Write_instruction


F:\个人文件\已调过的程序\LCD\NONAME1'.ASM                                           
 
                                                                                        页     2
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

0131 09                           INC     R1
            LOOP2:
            
0132 E539                         MOV     A,KEY
0134 2430                         ADD     A,#30H
            
0136 12016D                       CALL    WriteLCDData                ;显示 第一行字符
            
                                  ;CJNE    A,#1001000B,LOOP2
            
            ;LOOP3:                MOV     A,#11000010B            ;set the address
                                  ;CALL    Write_instruction
            ;LOOP4:                MOV     R5,#KEY                  ;显示密码
                                  ;CALL    PR_KEY
                                  ;CJNE    A,#11010010B,LOOP4
            
                                  ;LJMP  LOOP1
0139 22                           RET
            
            
            
            
            ;*****************************************************************
            ;InitialInitial  子程序
            ;//  设定 字符型LCD模块, 使用DB0--DB7,显示两行,
            ;//  使用5*7字型  显示器要显示 光标要显示但不闪烁 */
            ;*****************************************************************
            InitialL:
013A 7438                   MOV     A,#00111000B            ;/*LCD功能设定,8位点阵数据传送,2行显示*/
013C 12015E                 CALL    Write_instruction
            
013F 740E                   MOV     A,#00001110B            ;/*屏幕设定开显示,游标ON,但不闪烁*/
0141 12015E                 CALL    Write_instruction
            
0144 7406                   MOV     A,#00000110B            ;/*加一状态,游标向右移*/
0146 12015E                 CALL    Write_instruction
0149 22                     RET
            ;*****************************************************************
            ;CheckBusy
            ;等待LCM有空可以执行下一行命令
            ;*****************************************************************
            CheckBusy:
014A C0E0                   PUSH    ACC
            ;CheckBusyLoop:
014C C2A0   		CLR	ENABLE
014E D2A1   		SETB	RW
0150 C2A2   		CLR	RS
0152 D2A0                   SETB    ENABLE


F:\个人文件\已调过的程序\LCD\NONAME1'.ASM                                           
 
                                                                                        页     3
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

0154 E590                   MOV     A,DB0_DB7
0156 C2A0                   CLR     ENABLE
              ;              JB      ACC.7,CheckBusyLoop
0158 D0E0                   POP     ACC
015A 120181                 CALL    DELAY
015D 22                     RET
            ;*****************************************************************
            ;Write_instruction
            ;将ACC内的资料输入到LCM的IR寄存器
            ;*****************************************************************
            Write_instruction:
015E 314A                   CALL    CheckBusy
0160 C2A0   		CLR	ENABLE
0162 C2A1   		CLR	RW
0164 C2A2   		CLR	RS
0166 D2A0                   SETB    ENABLE
0168 F590                   MOV     DB0_DB7,A
016A C2A0                   CLR     ENABLE
016C 22                     RET
            ;*****************************************************************
            ;WriteLCDData
            ;将ACC内的资料输入到LCM的DR寄存器
            ;*****************************************************************
            WriteLCDData:
016D 314A                   CALL    CheckBusy
016F C2A0   		CLR	ENABLE
0171 C2A1   		CLR	RW
0173 D2A2   		SETB	RS
0175 D2A0                   SETB    ENABLE
0177 F590                   MOV     DB0_DB7,A
0179 C2A0                   CLR     ENABLE
017B 22                     RET
            ;*****************************************************************
            ;cls
            ;清除LCM的显示字幕
            ;*****************************************************************
            CLRLCD:
017C 7401                   MOV     A,#01H          ;清除LCD屏幕
017E 315E                   CALL    Write_instruction
0180 22                     RET
            ;*****************************************************************
            ;PR_STRING
            
            ;*****************************************************************
            ;PR_KEY:
                           ; PUSH    ACC
            
                            ;CLR     A


F:\个人文件\已调过的程序\LCD\NONAME1'.ASM                                           
 
                                                                                        页     4
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

                            ;MOV    A,#KEY
            
                           ; ADD    A,#30H
                            ;CALL    WriteLCDData
            ;
            
                            ;POP     ACC
                            ;INC     A
                           ; RET
            ;*****************************************************************
            ;PR_MIMA
            ;将密码显示在LCM,密码的起地址要存入R0,字串必须以00H结束
            ;*****************************************************************
            ;PR_MIMA:
                            ;PUSH    ACC
            ;MIMALP:
                           ;CLR     A
                            ;MOV     A,@R0
                            ;JZ      END_PRMIMA
                            ;CALL    WriteLCDData
                            ;INC     R0
                            ;JMP     MIMALP
            ;END_PRMIMA:
                            ;POP     ACC
                            ;RET
            ;*****************************************************************
            ;DELAY
            ;延迟时间约为R6*(500uS)
            ;*****************************************************************
            DELAY:
0181 7B05                   MOV     R3,#5
0183 7CF8   D11:            MOV     R4,#248
0185 DCFE                   DJNZ    R4,$
0187 DBFA                   DJNZ    R3,D11
0189 22                     RET
            ;*******************************************************************************************
            KEYINPUT:
018A 753502             MOV         KEYBUF,#2
            ;
018D 7580FF             MOV         P0,#0FFH
0190 C284               CLR         P0.4
0192 E580               MOV         A,P0
0194 540F               ANL         A,#0FH
0196 640F               XRL         A,#0FH          ;有键按下吗?
0198 6047               JZ          NOKEY1
019A 1202E7             LCALL       DELY10US
019D E580               MOV         A,P0
019F 540F               ANL         A,#0FH


F:\个人文件\已调过的程序\LCD\NONAME1'.ASM                                           
 
                                                                                        页     5
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

01A1 640F               XRL         A,#0FH          ;真的有键按下吗?
01A3 603C               JZ          NOKEY1
01A5 E580               MOV         A,P0
01A7 540F               ANL         A,#0FH
01A9 B40E06             CJNE        A,#0EH,NK1      ;键码的值是多少?P0.4xP0.0
01AC 753503             MOV         KEYBUF,#3
01AF 0201CE             LJMP        DK1
01B2 B40D06 NK1:        CJNE        A,#0DH,NK2      ;键码是P0.4xP0.1 ?
01B5 753502             MOV         KEYBUF,#2
01B8 0201CE             LJMP        DK1
01BB B40B06 NK2:        CJNE        A,#0BH,NK3      ;键码是P0.4xP0.2 ?
01BE 753501             MOV         KEYBUF,#1
01C1 0201CE             LJMP        DK1
01C4 B40706 NK3:        CJNE        A,#07H,NK4      ;键码是P0.4xP0.3 ?
01C7 753500             MOV         KEYBUF,#0
01CA 0201CE             LJMP        DK1
01CD 00     NK4:        NOP
            DK1:
01CE E535               MOV         A,KEYBUF
01D0 9002F1             MOV         DPTR,#TAB
01D3 93                 MOVC        A,@A+DPTR       ;查表,取键值
01D4 F539               MOV         KEY,A
01D6 750001             MOV         FLAG0,#1        ;FLAG0=1
            
01D9 E580   DK1A:       MOV         A,P0
01DB 540F               ANL         A,#0FH
01DD 640F               XRL         A,#0FH          ;按键有没有松开?
01DF 70F8               JNZ         DK1A
            NOKEY1:
01E1 7580FF             MOV         P0,#0FFH
01E4 C285               CLR         P0.5
01E6 E580               MOV         A,P0
01E8 540F               ANL         A,#0FH
01EA 640F               XRL         A,#0FH
01EC 6047               JZ          NOKEY2
01EE 1202E7             LCALL       DELY10US
01F1 E580               MOV         A,P0
01F3 540F               ANL         A,#0FH
01F5 640F               XRL         A,#0FH
01F7 603C               JZ          NOKEY2
01F9 E580               MOV         A,P0
01FB 540F               ANL         A,#0FH
01FD B40E06             CJNE        A,#0EH,NK5
0200 753507             MOV         KEYBUF,#7
0203 020222             LJMP        DK2
0206 B40D06 NK5:        CJNE        A,#0DH,NK6
0209 753506             MOV         KEYBUF,#6
020C 020222             LJMP        DK2


F:\个人文件\已调过的程序\LCD\NONAME1'.ASM                                           
 
                                                                                        页     6
                                                                                        10-15-05
                                                                                        08:10:11
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

020F B40B06 NK6:        CJNE        A,#0BH,NK7
0212 753505             MOV         KEYBUF,#5
0215 020222             LJMP        DK2
0218 B40706 NK7:        CJNE        A,#07H,NK8
021B 753504             MOV         KEYBUF,#4
021E 020222             LJMP        DK2
0221 00     NK8:        NOP
            DK2:
0222 E535               MOV         A,KEYBUF
0224 9002F1             MOV         DPTR,#TAB
0227 93                 MOVC        A,@A+DPTR
0228 F539               MOV         KEY,A
022A 750001             MOV         FLAG0,#1        ;FLAG0=1
            
022D E580   DK2A:       MOV         A,P0
022F 540F               ANL         A,#0FH
0231 640F               XRL         A,#0FH
0233 70F8               JNZ         DK2A
            NOKEY2:
0235 7580FF             MOV         P0,#0FFH
0238 C286               CLR         P0.6
023A E580               MOV         A,P0
023C 540F               ANL         A,#0FH

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -