📄 pxsjpgb.sdi
字号:
0219,02 02 3D,, ljmp kw
021C,75 42 2E,k171,k171: mov 42h,#2eh ;减一后的显示指针是指向最高显示位,当前显示"灭"
021F,A6 42,, mov @r0,42h
0221,E5 41,kw3,kw3: mov a,41h
0223,04,, inc a
0224,65 5B,, xrl a,5bh ;是否第一次按k34
0226,60 0A,, jz kw12
0228,E5 41,, mov a,41h ;不是第一次按k34
022A,04,, inc a
022B,95 5B,, subb a,5bh ;
022D,50 0E,, jnc kw
022F,75 42 2E,, mov 42h,#2eh
0232,A6 42,kw12,kw12: mov @r0,42h ;当前显示位是显示"灭"
0234,A8 41,, mov r0,41h
0236,76 30,, mov @r0,#30h
0238,86 42,, mov 42h,@r0
023A,02 00 6A,, ljmp kl0
023D,,kw,kw:
023D,A6 42,, mov @r0,42h
023F,A8 41,, mov r0,41h
0241,86 42,, mov 42h,@r0
0243,02 00 6A,, ljmp kl0
,,,
0246,,k41,k41: ;键c
0246,12 03 22,, lcall xshg ;显示退一位(向20h方向)
0249,A8 41,, mov r0,41h ;当前显示位(23h--20h)指针取到r0
024B,E6,, mov a,@r0 ;当前显示内容取到a
024C,64 2E,, xrl a,#2eh ;当前显示是否为"灭"
024E,60 04,, jz k150 ;当前显示为"灭"跳
0250,E6,, mov a,@r0 ;当前显示内容取到a(不为"灭")
0251,02 02 56,, ljmp k151
0254,E5 42,k150,k150: mov a,42h ;当前显示内容取到a(不为"灭")
0256,F5 F0,k151,k151: mov b,a
0258,64 30,, xrl a,#30h ;当前显示是否为"_"
025A,70 0D,, jnz k152 ;当前显示不为"_"跳
025C,D2 47,, setb 47h
025E,A8 41,, mov r0,41h ;当前显示位取到a
0260,18,, dec r0 ;显示退一位(向20h方向)
0261,76 2E,, mov @r0,#2eh ;显示"灭"(显示不移位)
0263,A8 41,, mov r0,41h ;当前显示位取到a
0265,08,, inc r0 ;显示进一位(向23h方向)----小数点打在该位
0266,E6,, mov a,@r0 ;当前显示内容取到a
0267,F5 F0,, mov b,a
,,,
0269,C3,k152,k152: clr c
026A,94 0A,, subb a,#0ah ;显示内容是否已经有"."
026C,50 1E,, jnc k155 ;显示内容已经有"."退出
026E,E5 F0,, mov a,b
0270,24 0A,, add a,#0ah ;打小数点
0272,F6,, mov @r0,a
0273,F5 42,, mov 42h,a
0275,E5 F0,, mov a,b
0277,64 30,, xrl a,#30h
0279,60 11,, jz k155
027B,A8 41,, mov r0,41h
027D,18,, dec r0
027E,E6,, mov a,@r0
027F,64 30,, xrl a,#30h
0281,70 09,, jnz k155
0283,12 03 4A,k153,k153: lcall xs ;当前显示位(23h--20h)指针减一(向20h方向)
0286,75 6B 00,, mov 6bh,#00h ;清除键"-"记忆
0289,75 5B 00,, mov 5bh,#00h ;显示数据末位指针清零
028C,30 47 09,k155,k155: jnb 47h,k156 ;当前显示不为"_"跳
028F,C2 47,, clr 47h
0291,A8 41,, mov r0,41h
0293,76 30,, mov @r0,#30h
0295,75 42 30,, mov 42h,#30h
0298,,k156,k156:
0298,02 00 6A,, ljmp kl0
,,,
029B,,k42,k42: ;键0
029B,12 03 22,, lcall xshg
029E,A8 41,, mov r0,41h
02A0,76 00,, mov @r0,#00h
02A2,12 03 4A,, lcall xs
02A5,75 6B 00,, mov 6bh,#00h ;清除键"-"记忆
02A8,75 5B 00,, mov 5bh,#00h ;显示数据末位指针清零
02AB,02 00 6A,, ljmp kl0
02AE,,k43,k43: ;键=
02AE,02 00 6A,, ljmp kl0
02B1,,k44,k44: ;键+
02B1,85 41 4A,, mov 4ah,41h
02B4,05 41,, inc 41h
02B6,E5 41,, mov a,41h
02B8,85 41 6C,, mov 6ch,41h
02BB,64 24,, xrl a,#24h
02BD,70 05,, jnz k160
02BF,75 41 20,, mov 41h,#20h
02C2,41 C4,, ajmp k160
02C4,E5 41,k160,k160: mov a,41h
02C6,64 20,, xrl a,#20h
02C8,70 09,, jnz kw4
02CA,85 21 6C,, mov 6ch,21h
02CD,E5 6C,, mov a,6ch
02CF,95 5B,, subb a,5bh
02D1,40 1A,, jc kw5
02D3,A8 4A,kw4,kw4: mov r0,4ah
02D5,E5 6C,, mov a,6ch
02D7,95 5B,, subb a,5bh
02D9,40 23,, jc kw1
02DB,E5 6C,, mov a,6ch
02DD,65 5B,, xrl a,5bh
02DF,70 03,, jnz kw6
02E1,75 42 30,, mov 42h,#30h
02E4,A6 42,kw6,kw6: mov @r0,42h
02E6,A8 41,, mov r0,41h
02E8,86 42,, mov 42h,@r0
02EA,02 00 6A,, ljmp kl0
02ED,C0 00,kw5,kw5: push 0
02EF,A8 4A,, mov r0,4ah
02F1,A6 42,, mov @r0,42h
02F3,A8 41,, mov r0,41h
02F5,76 2E,, mov @r0,#2eh
02F7,86 42,, mov 42h,@r0
02F9,D0 00,, pop 0
02FB,02 00 6A,, ljmp kl0
02FE,75 42 30,kw1,kw1: mov 42h,#30h
0301,A6 42,, mov @r0,42h
0303,A8 41,, mov r0,41h
0305,76 2E,, mov @r0,#2eh
0307,86 42,, mov 42h,@r0
0309,02 00 6A,, ljmp kl0
,,,;*************************************************************
,,,; 时钟中断0 程序
,,,;*************************************************************
030C,C0 00,it00,it00: push 0 ;R0入栈
030E,30 6E 06,, JnB 6EH,it001
0311,A8 41,, mov r0,41h
0313,A6 42,, MOV @r0,42H ;显示输入的信号与灭构成一闪一灭
0315,61 1D,, ajmp it002
0317,A8 41,it001,it001: mov r0,41h
0319,86 42,, MOV 42h,@r0
031B,76 2E,, MOV @r0,#2eH ;显示灭
031D,B2 6E,it002,it002: cpl 6eh ;取反6eh闪动开关(0:开 1:关)
031F,D0 00,, pop 0
0321,32,, reti
,,,;***********************;
,,,; 显示移位 ;
,,,;***********************;
0322,,xshg,xshg:
0322,C0 00,, push 0 ;r0入栈
,,,
0324,E5 41,, mov a,41h ;当前显示位存A
0326,14,, dec a ;当前显示位减一位
0327,65 50,, xrl a,50h ;当前显示位减一位是否等于"-"显示位
0329,60 0D,, jz csz0 ;当前显示位减一位等于"-"跳
,,,
032B,A8 41,, mov r0,41h ;当前显示位存r0
032D,18,, dec r0 ;当前显示位减一位
032E,E6,, mov a,@r0
032F,64 2E,, xrl a,#2eh ;当前显示位减一位是否等于"灭"
0331,70 14,, jnz csz ;当前显示位减一位不等于"灭"退出
,,,
0333,76 30,, mov @r0,#30h ;当前显示位减一位等于"灭":"-"值送显示
0335,02 03 47,, ljmp csz ;退出
,,,
0338,A8 50,csz0,csz0: mov r0, 50h ;当前显示位减一位是等于"-"显示位
033A,76 30,, mov @r0,#30h ;"-"值送显示
033C,15 50,, dec 50h ;"-"值显示位减一
033E,74 1F,, mov a,#1fh ;"-"值显示位是否减过最低显示位20h
0340,65 50,, xrl a,50h
0342,70 03,, jnz csz ;"-"值显示位没有减过最低显示位20h退出
,,,
0344,75 50 23,, mov 50h,#23h ;"-"值显示位减过最低显示位20h,指针指向最高显示位23h
,,,
0347,D0 00,csz,csz: pop 0 ;r0出栈
0349,22,, ret
,,,;***********************;
,,,; 光标右移 ;
,,,;***********************;
034A,15 41,xs,xs: dec 41h ;光标减一
034C,E5 41,, mov a,41h
034E,64 1F,, xrl a,#1fh ;光标是否减过最低显示位20h
0350,60 05,, jz pd ;光标是减过最低显示位20h跳
,,,
0352,A8 41,, mov r0,41h ;光标所指显示位送r0
0354,86 42,, mov 42h,@r0 ;显示内容送42h
0356,22,, ret ;退出
,,,
0357,75 41 23,pd,pd: mov 41h,#23h ;光标是减过最低显示位20h,循环到23h
035A,A8 41,, mov r0,41h ;光标所指显示位送r0
035C,86 42,, mov 42h,@r0 ;显示内容送42h
035E,22,, ret ;退出
,,,;******************;
,,,; 显示 ;
,,,;******************;
035F,,dirv,dirv:
035F,78 FE,, mov r0,#0feh
0361,79 23,, mov r1,#23h
0363,E8,, mov a,r0
0364,20 E0 05,di1,di1: jb acc.0,di10 ;位选
0367,C2 93,, clr p1.3
0369,02 03 8A,, ljmp di13
036C,D2 93,di10,di10: setb p1.3
036E,20 E1 05,, jb acc.1,di11
0371,C2 92,, clr p1.2
0373,02 03 8C,, ljmp di18
0376,D2 92,di11,di11: setb p1.2
0378,20 E2 05,, jb acc.2,di12
037B,C2 91,, clr p1.1
037D,02 03 8C,, ljmp di18
0380,D2 91,di12,di12: setb p1.1
0382,20 E3 05,, jb acc.3,di13
0385,C2 90,, clr p1.0
0387,02 03 8C,, ljmp di18
038A,D2 90,di13,di13: setb p1.0
,,,
038C,90 03 A6,di18,di18: mov dptr,#table ;查段选表
038F,E7,, mov a,@r1
0390,93,, movc a,@a+dptr
0391,F5 80,, mov p0,a ;段选
,,,; mov r7,#01h
,,,;di2: mov r6,#01h
,,,;di3: djnz r6,di3
,,,; djnz r7,di2
0393,7F 03,, mov r7,#03h
0395,7E FF,di2,di2: mov r6,#0ffh
0397,DE FE,di3,di3: djnz r6,di3
0399,DF FA,, djnz r7,di2
039B,19,, dec r1 ;
039C,E8,, mov a,r0
039D,30 E4 05,, jnb acc.4, di4
03A0,23,, rl a ;下一位(左移)
03A1,F8,, mov r0,a
03A2,02 03 64,, ljmp di1
03A5,22,di4,di4: ret
03A6,,table,table:
03A6,3F 06 5B 4F,,DB 03fh,06H,05bH,04fH,066H,06dH,07dH,07H
,,,; "0" "1" "2" "3" "4" "5" "6" "7"
03AE,7F 6F BF 86,,DB 07fH,06fH,0Bfh,86H,0dbH,0cfH,0e6H,0edH
,,,; "8" "9" "0." "1." "2." "3." "4." "5."
03B6,7D 07 FF EF,,DB 07dH,07H,0ffH,0efH,077H,07cH,039H,05eH
,,,; "6." "7.""8." "9." "A" "b" "C" "d"
03BE,79 71 3D 76,,DB 079H,071H,03dH,076H,00fH,00eH,0f0H,038H
,,,; "E" "F" "G" "H" "I" "J" "k" "L"
03C6,D4 54 5C 73,,DB 0d4H,054H,05cH,073H,0dcH,050H,0d8H,078H
,,,; "m" "n" "o" "P" "Q" "r "s" "t"
03CE,3E 18 98 F2,,DB 03eH,018H,098H,0f2H,06eh,0ccH,000h,0f3H
,,,; "U" "v" "w" "x" "y" "z" " " "p."
03D6,08,,DB 08h
,,,; "-"
000E,,, end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -