📄 ex10-1.sdi
字号:
,,, org 0000h ;单片机复位地址
0000,21 00,, ajmp main ;转移到主程序处
,,, org 0100h ;main被定位在0x0100处
0100,75 81 80,main,main: mov sp,#80h ;初始化堆栈指针
0103,30 90 06,, jnb P1.0,cr
0106,30 91 10,, jnb P1.1,cv
0109,30 92 1A,, jnb P1.2,ca
010C,7F 00,cr,cr: mov R7,#00h
010E,12 01 33,, lcall adc
0111,12 02 35,, LCALL RDAT
0114,12 02 AA,, lcall DISPLAY
0117,80 E7,, sjmp main
0119,7F 01,CV,CV: MOV R7,#01H
011B,12 01 33,, LCALL ADC
011E,12 01 3D,, LCALL VDAT
0121,12 02 AA,, LCALL DISPLAY
0124,80 DA,, SJMP MAIN
0126,7F 02,CA,CA: MOV R7,#02H
0128,12 01 33,, LCALL ADC
012B,12 01 B4,, LCALL ADAT
012E,12 02 AA,, LCALL DISPLAY
0131,80 CD,, SJMP MAIN
,,,
0133,EF,ADC,ADC: MOV A,R7 ;0808 A/D转换子程序
0134,90 7F FF,, MOV DPTR,#7FFFH
0137,F0,, MOVX @DPTR,A
0138,20 B3 FD,, JB P3.3,$
013B,E0,, MOVX A,@DPTR ;输入转换结果
013C,22,, RET
,,,
,,,
013D,,vdat,vdat:
013D,7A 00,, mov R2,#00h
013F,FB,, mov R3,A
0140,7E 01,, mov R6,#01h
0142,7F F4,, mov R7,#0F4h
0144,12 02 E7,, call MULD2 ;乘以500
0147,C3,, clr C
0148,ED,, mov A,r5
0149,24 60,, add A,#60h ;加96修正
014B,FD,, mov r5,A
014C,EC,, mov A,r4
014D,34 00,, addc A,#00h
014F,FC,, mov r4,A
0150,EB,, mov A,r3
0151,34 00,, addc A,#00h
0153,FB,, mov r3,A
0154,EA,, mov A,r2
0155,34 00,, addc A,#00h
0157,FA,, mov r2,A
0158,78 30,, mov r0,#30h
015A,79 34,, mov r1,#34h
015C,EA,, mov A,R2
015D,F7,, mov @r1,A
015E,09,, inc r1
015F,EB,, mov A,R3
0160,F7,, mov @r1,A
0161,09,, inc r1
0162,EC,, mov A,R4
0163,F7,, mov @r1,A
0164,09,, inc r1
0165,ED,, mov A,R5
0166,F7,, mov @r1,A
0167,09,, inc r1
0168,77 00,, mov @r1,#00h
016A,09,, inc r1
016B,77 00,, mov @r1,#00h
016D,09,, inc r1
016E,77 00,, mov @r1,#00h
0170,09,, inc r1
0171,77 FF,, mov @r1,#0FFh
0173,12 03 17,, call DIVD4 ;除以255
0176,79 38,, mov r1,#38h
0178,77 00,, mov @r1,#00h
017A,09,, inc r1
017B,77 00,, mov @r1,#00h
017D,09,, inc r1
017E,77 00,, mov @r1,#00h
0180,09,, inc r1
0181,77 0A,, mov @r1,#0Ah
0183,12 03 17,, call DIVD4
0186,85 33 43,, mov 43h,33h
0189,12 03 17,, call DIVD4
018C,85 33 42,, mov 42h,33h
018F,12 03 17,, call DIVD4
0192,85 33 41,, mov 41h,33h
0195,78 40,, mov r0,#40h
0197,76 00,, mov @r0,#00h
0199,08,, inc r0
019A,E5 41,, mov A,41h
019C,90 02 A0,, mov DPTR,#SEGMENT7
019F,93,, movc A,@A+DPTR
01A0,44 80,, orl A,#80h
01A2,F6,, mov @r0,A
01A3,08,, inc r0
01A4,E5 42,, mov A,42h
01A6,90 02 A0,, mov DPTR,#SEGMENT7
01A9,93,, movc A,@A+DPTR
01AA,F6,, mov @r0,A
01AB,08,, inc r0
01AC,E5 43,, mov A,43h
01AE,90 02 A0,, mov DPTR,#SEGMENT7
01B1,93,, movc A,@A+DPTR
01B2,F6,, mov @r0,A
01B3,22,, ret
,,,
01B4,,ADAT,ADAT:
01B4,F5 F0,, mov B,A
01B6,74 B6,, mov A,#0B6h
01B8,C3,, clr C ;以下根据范围设置数值以防溢出
01B9,95 F0,, subb A,B
01BB,40 08,, jc LARGERA
01BD,E5 F0,, mov A,B
01BF,94 16,, subb A,#16h
01C1,40 06,, jc LESSA
01C3,21 CD,, ajmp MIDDLEA
01C5,74 B6,LARGERA,LARGERA: mov A,#0B6h
01C7,21 CF,, ajmp CALCULATEA
01C9,74 16,LESSA,LESSA: mov A,#16h
01CB,21 CF,, ajmp CALCULATEA
01CD,E5 F0,MIDDLEA,MIDDLEA: mov A,B
01CF,7A C3,CALCULATEA,CALCULATEA: mov r2,#0C3h
01D1,7B 50,, mov r3,#50h
01D3,7E 00,, mov r6,#00h
01D5,FF,, mov r7,A
01D6,12 02 E7,, call MULD2 ;乘以50000
01D9,C3,, clr C
01DA,ED,, mov A,r5
01DB,94 70,, subb A,#70h ;以下减去102000
01DD,FD,, mov r5,A
01DE,F5 37,, mov 37h,A
01E0,EC,, mov A,r4
01E1,94 8E,, subb A,#8Eh
01E3,FC,, mov r4,A
01E4,F5 36,, mov 36h,A
01E6,EB,, mov A,r3
01E7,94 01,, subb A,#01h
01E9,FB,, mov r3,A
01EA,F5 35,, mov 35h,A
01EC,EA,, mov A,r2
01ED,94 00,, subb A,#00h
01EF,FA,, mov r2,A
01F0,F5 34,, mov 34h,A
01F2,78 30,, mov r0,#30h
01F4,79 38,, mov r1,#38h
01F6,77 00,, mov @r1,#00h
01F8,09,, inc r1
01F9,77 01,, mov @r1,#01h
01FB,09,, inc r1
01FC,77 5E,, mov @r1,#5Eh
01FE,09,, inc r1
01FF,77 A0,, mov @r1,#0A0h
0201,12 03 17,, call DIVD4 ;除以89760
0204,79 38,, mov r1,#38h
0206,77 00,, mov @r1,#00h
0208,09,, inc r1
0209,77 00,, mov @r1,#00h
020B,09,, inc r1
020C,77 00,, mov @r1,#00h
020E,09,, inc r1
020F,77 0A,, mov @r1,#0Ah
0211,90 02 A0,, mov DPTR,#SEGMENT7
0214,12 03 17,, call DIVD4
0217,E5 33,, mov A,33h
0219,93,, movc A,@A+DPTR
021A,F5 43,, mov 43h,A
021C,12 03 17,, call DIVD4
021F,E5 33,, mov A,33h
0221,93,, movc A,@A+DPTR
0222,F5 42,, mov 42h,A
0224,12 03 17,, call DIVD4
0227,E5 33,, mov A,33h
0229,93,, movc A,@A+DPTR
022A,B4 3F 02,, cjne A,#3Fh,NOTEQU
022D,74 00,, mov A,#00h
022F,F5 41,NOTEQU,NOTEQU: mov 41h,A
0231,75 40 00,, mov 40h,#00h
0234,22,, RET
,,,
0235,,rdat,rdat:
0235,7A 00,, mov R2,#00h
0237,FB,, mov R3,A
0238,7E 03,, mov R6,#03h
023A,7F E8,, mov R7,#0E8h
023C,12 02 E7,, call MULD2 ;乘以1000
023F,78 30,, mov r0,#30h
0241,79 34,, mov r1,#34h
0243,EA,, mov A,R2
0244,F7,, mov @r1,A
0245,09,, inc r1
0246,EB,, mov A,R3
0247,F7,, mov @r1,A
0248,09,, inc r1
0249,EC,, mov A,R4
024A,F7,, mov @r1,A
024B,09,, inc r1
024C,ED,, mov A,R5
024D,F7,, mov @r1,A
024E,09,, inc r1
024F,77 00,, mov @r1,#00h
0251,09,, inc r1
0252,77 00,, mov @r1,#00h
0254,09,, inc r1
0255,77 00,, mov @r1,#00h
0257,09,, inc r1
0258,77 FF,, mov @r1,#0FFh
025A,12 03 17,, call DIVD4 ;除以255
025D,79 38,, mov r1,#38h
025F,77 00,, mov @r1,#00h
0261,09,, inc r1
0262,77 00,, mov @r1,#00h
0264,09,, inc r1
0265,77 00,, mov @r1,#00h
0267,09,, inc r1
0268,77 0A,, mov @r1,#0Ah
026A,90 02 A0,, mov DPTR,#SEGMENT7
026D,12 03 17,, call DIVD4 ;连续进行4次除以10的操作
0270,E5 33,, mov A,33h ;取得10进制值
0272,93,, movc A,@A+DPTR
0273,F5 43,, mov 43h,A
0275,12 03 17,, call DIVD4
0278,E5 33,, mov A,33h
027A,93,, movc A,@A+DPTR
027B,F5 42,, mov 42h,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -