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

📄 4.sdi

📁 数字钟
💻 SDI
字号:
,,,DBUF    EQU     30H
,,,TEMP    EQU             40H
,,,                ORG             00H
0000,74 10,,                MOV     A,#16
0002,11 54,MAIN,MAIN:   ACALL   DISP
0004,11 08,,                ACALL   KEY1
0006,01 02,,                AJMP    MAIN
0008,75 90 F0,KEY1,KEY1:   MOV             P1,#0F0H                ;读P1口前先写1
000B,E5 90,,                MOV             A,P1                    ;读取键状态
000D,B4 F0 02,,                CJNE    A,#0F0H,K11     ;判断是否有键按下
0010,01 08,K10,K10:    AJMP    KEY1
0012,11 81,K11,K11:    ACALL   DELAY
0014,75 90 F0,,                MOV             P1,#0F0H
0017,E5 90,,                MOV             A,P1
0019,B5 F0 02,,                CJNE    A,0F0H,K12              ;消除按键抖动
001C,80 F2,,                SJMP    K10
001E,F5 F0,K12,K12:    MOV             B,A                             ;存列值
0020,75 90 0F,,                MOV             P1,#0FH
0023,E5 90,,                MOV             A,P1                    ;读行值
0025,55 F0,,                ANL             A,B
0027,F5 F0,,                MOV             B,A                             ;存键码
0029,79 10,,                MOV             R1,#10H
002B,7A 00,,                MOV             R2,#0
002D,90 00 44,,                MOV             DPTR,#K1TAB             ;键码表首地址
0030,EA,K14,K14:    MOV             A,R2
0031,93,,                MOVC    A,@A+DPTR
0032,B5 F0 0A,,                CJNE    A,B,K16                 ;比较,计算键值
0035,75 90 0F,,                MOV             P1,#0FH
0038,E5 90,K15,K15:    MOV             A,P1
003A,B4 0F FB,,                CJNE    A,#0FH,K15              ;等待按键释放
003D,EA,,                MOV             A,R2
003E,22,,                RET
003F,0A,K16,K16:    INC             R2
0040,D9 EE,,                DJNZ    R1,K14
0042,01 10,,                AJMP    K10
0044,81 41 21 11,K1TAB,K1TAB:  DB              81H,41H,21H,11H ;键码表
0048,82 42 22 12,,                DB              82H,42H,22H,12H
004C,84 44 24 14,,                DB              84H,44H,24H,14H
0050,88 48 28 18,,                DB              88H,48H,28H,18H
0054,F5 30,DISP,DISP:   MOV             DBUF,A                  ;键值存入缓存
0056,78 30,,                MOV             R0,#DBUF
0058,79 40,,                MOV             R1,#TEMP
005A,90 00 6F,DP10,DP10:   MOV             DPTR,#SEGTAB
005D,E6,,                MOV             A,@R0
005E,93,,                MOVC    A,@A+DPTR               ;根据键值查表取段码
005F,F7,,                MOV             @R1,A                   ;暂存段码
0060,78 40,,                MOV             R0,#TEMP
0062,7A 08,DP12,DP12:   MOV             R2,#8                   ;设置移位次数
0064,E6,,                MOV             A,@R0
0065,33,DP13,DP13:   RLC             A                               ;段码移位输出
0066,92 B0,,                MOV             P3.0,C
0068,C2 B1,,                CLR     P3.1
006A,D2 B1,,                SETB    P3.1                    ;输出移位脉冲
006C,DA F7,,                DJNZ    R2,DP13
006E,22,,                RET
006F,3F 06 5B 4F,SEGTAB,SEGTAB: DB      3FH,06H,5BH,4FH,66H,6DH
0075,7D 07 7F 6F,,                DB      7DH,07H,7FH,6FH,77H,7CH
007B,58 5E 79 71,,                DB      58H,5EH,79H,71H,00H,40H
0081,7C 01,DELAY,DELAY:  MOV             R4,#01H
0083,7D 88,AA1,AA1:    MOV             R5,#088H
0085,00,AA,AA:     NOP
0086,DD FD,,                DJNZ    R5,AA
0088,DC F9,,                DJNZ    R4,AA1
008A,22,,                RET
000E,,,                END

⌨️ 快捷键说明

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