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

📄 ex10-1.sdi

📁 《单片机原理实用教程——基于Proteus虚拟仿真》一书的配套光盘
💻 SDI
📖 第 1 页 / 共 2 页
字号:
027D,12 03 17,,                call    DIVD4
0280,E5 33,,                mov     A,33h
0282,93,,                movc    A,@A+DPTR
0283,F5 41,,                mov     41h,A
0285,12 03 17,,                call    DIVD4
0288,E5 33,,                mov     A,33h
028A,93,,                movc    A,@A+DPTR
028B,B4 3F 02,,                cjne    A,#3Fh,NONZERO
028E,74 00,,                mov     A,#00h
0290,F5 40,NONZERO,NONZERO:        mov     40h,A
0292,22,,                ret
,,,
0293,7D 01,DELAY_5ms,DELAY_5ms:      mov     R5,#01h                         ;设置R5初始计数值
0295,7E 16,DELAY_5ms1,DELAY_5ms1:     mov     R6,#16h                         ;设置R6初始计数值
0297,7F 70,DELAY_5ms2,DELAY_5ms2:     mov     R7,#70h                         ;设置R7初始计数值
0299,DF FE,DELAY_5ms3,DELAY_5ms3:     djnz    R7,DELAY_5ms3           ;延时时间为 Time=( ( (R7*2)+2+1 )*R6+2+1 )*R5+1
029B,DE FA,,                djnz    R6,DELAY_5ms2           ;
029D,DD F6,,                djnz    R5,DELAY_5ms1           ;
029F,22,,                ret
,,,
,,,
02A0,3F,SEGMENT7,SEGMENT7:       DB      3Fh     ;7段数码管字符0的abcdefg的值,a在最低位,最高位始终保留为0
02A1,06,,                DB      06h
02A2,5B,,                DB      5Bh
02A3,4F,,                DB      4Fh
02A4,66,,                DB      66h
02A5,6D,,                DB      6Dh
02A6,7D,,                DB      7Dh
02A7,07,,                DB      07h
02A8,7F,,                DB      7Fh
02A9,6F,,                DB      6Fh
,,,
02AA,90 FE FF,DISPLAY,DISPLAY:        mov     DPTR,#0fEffh            ;写第一位数码管
02AD,79 40,,                mov     r1,#40h
02AF,E7,,                mov     A,@r1
02B0,F0,,                movx    @DPTR,A
02B1,D3,,                setb    C
02B2,92 94,,                mov     P1.4,C
02B4,C3,,                clr     C
02B5,92 94,,                mov     P1.4,C
02B7,51 93,,                call    DELAY_5ms
02B9,D3,,                setb    C
02BA,92 94,,                mov     P1.4,C
02BC,09,,                inc     r1
02BD,E7,,                mov     A,@r1                           ;写第二位数码管
02BE,F0,,                movx    @DPTR,A
02BF,D3,,                setb    C
02C0,92 95,,                mov     P1.5,C
02C2,C3,,                clr     C
02C3,92 95,,                mov     P1.5,C
02C5,51 93,,                call    DELAY_5ms
02C7,D3,,                setb    C
02C8,92 95,,                mov     P1.5,C
02CA,09,,                inc     r1
02CB,E7,,                mov     A,@r1                           ;写第三位数码管
02CC,F0,,                movx    @DPTR,A
02CD,D3,,                setb    C
02CE,92 96,,                mov     P1.6,C
02D0,C3,,                clr     C
02D1,92 96,,                mov     P1.6,C
02D3,51 93,,                call    DELAY_5ms
02D5,D3,,                setb    C
02D6,92 96,,                mov     P1.6,C
02D8,09,,                inc     r1
02D9,E7,,                mov     A,@r1                           ;写第四位数码管
02DA,F0,,                movx    @DPTR,A
02DB,D3,,                setb    C
02DC,92 97,,                mov     P1.7,C
02DE,C3,,                clr     C
02DF,92 97,,                mov     P1.7,C
02E1,51 93,,                call    DELAY_5ms
02E3,D3,,                setb    C
02E4,92 97,,                mov     P1.7,C
02E6,22,,                ret
,,,
,,,
,,,;双字节二进制无符号数乘法
,,,;被乘数在R2(高位)、R3(低位)中,乘数在R6(高位)、R7(低位)中。
,,,;乘积在R2(高位)、R3、R4、R5(低位)中。
,,,;用到累加器A,B,PSW,R2~R7。
,,,;永远不会产生进位。
,,,;在出口时总是清除C。
,,,;若结果超出2个字节范围则OV=1。
02E7,,MULD2,MULD2:
02E7,EB,,                MOV     A,R3
02E8,8F F0,,                MOV     B,R7
02EA,A4,,                MUL     AB
02EB,AC F0,,                MOV     R4,B
02ED,FD,,                MOV     R5,A
02EE,EB,,                MOV     A,R3
02EF,8E F0,,                MOV     B,R6
02F1,A4,,                MUL     AB
02F2,2C,,                ADD     A,R4
02F3,FC,,                MOV     R4,A
02F4,E4,,                CLR     A
02F5,35 F0,,                ADDC    A,B
02F7,FB,,                MOV     R3,A
02F8,EA,,                MOV     A,R2
02F9,8F F0,,                MOV     B,R7
02FB,A4,,                MUL     AB
02FC,2C,,                ADD     A,R4
02FD,FC,,                MOV     R4,A
02FE,EB,,                MOV     A,R3
02FF,35 F0,,                ADDC    A,B
0301,FB,,                MOV     R3,A
0302,E4,,                CLR     A
0303,33,,                RLC     A
0304,CA,,                XCH     A,R2
0305,8E F0,,                MOV     B,R6
0307,A4,,                MUL     AB
0308,2B,,                ADD     A,R3
0309,FB,,                MOV     R3,A
030A,EA,,                MOV     A,R2
030B,35 F0,,                ADDC    A,B
030D,FA,,                MOV     R2,A
030E,4B,,                ORL     A,R3
030F,60 03,,                JZ      MULD21
0311,D2 D2,,                SETB    OV
0313,22,,                RET
0314,,MULD21,MULD21:
0314,C2 D2,,                CLR     OV
0316,22,,                RET
,,,
,,,
,,,
,,,;四字节无符号数除法
,,,;R0存放被除数,除数,商数的地址。
,,,;从R0开始的连续四个字节为结果的余数,入口时可以为任意,但在出口时发生变化。
,,,;其后的连续4个字节在入口时是被除数,出口时是商数。
,,,;再其后的连续四个字节在入口时是除数,出口时保持不变。
,,,;用到累加器A,B,PSW,R0~R7。
,,,;如果除数为零,则置OV=1标志,否则清零。
,,,;在出口时总是清除C。
0317,,DIVD4,DIVD4:
0317,E8,,                MOV     A,R0
0318,F5 F0,,                MOV     B,A
031A,24 08,,                ADD     A,#08h
031C,F9,,                MOV     R1,A
031D,74 00,,                MOV     A,#00h
031F,47,,                ORL     A,@R1
0320,09,,                INC     R1
0321,47,,                ORL     A,@R1
0322,09,,                INC     R1
0323,47,,                ORL     A,@R1
0324,09,,                INC     R1
0325,47,,                ORL     A,@R1
0326,60 54,,                JZ      DIVD45
0328,A9 F0,,                MOV     R1,B
032A,7A 04,,                MOV     R2,#04h
032C,,DIVD41,DIVD41:
032C,77 00,,                MOV     @R1,#00h
032E,09,,                INC     R1
032F,DA FB,,                DJNZ    R2,DIVD41
0331,7B 20,,                MOV     R3,#20h
0333,,DIVD42,DIVD42:
0333,7A 08,,                MOV     R2,#08h
0335,E5 F0,,                MOV     A,B
0337,F8,,                MOV     R0,A
0338,24 07,,                ADD     A,#07h
033A,F9,,                MOV     R1,A
033B,C3,,                CLR     C
033C,,DIVD43,DIVD43:
033C,E7,,                MOV     A,@R1
033D,33,,                RLC     A
033E,F7,,                MOV     @R1,A
033F,19,,                DEC     R1
0340,DA FA,,                DJNZ    R2,DIVD43
0342,E8,,                MOV     A,R0
0343,24 03,,                ADD     A,#03h
0345,F9,,                MOV     R1,A
0346,E8,,                MOV     A,R0
0347,24 0B,,                ADD     A,#0Bh
0349,F8,,                MOV     R0,A
034A,E7,,                MOV     A,@R1
034B,96,,                SUBB    A,@R0
034C,FC,,                MOV     R4,A
034D,19,,                DEC     R1
034E,18,,                DEC     R0
034F,E7,,                MOV     A,@R1
0350,96,,                SUBB    A,@R0
0351,FD,,                MOV     R5,A
0352,19,,                DEC     R1
0353,18,,                DEC     R0
0354,E7,,                MOV     A,@R1
0355,96,,                SUBB    A,@R0
0356,FE,,                MOV     R6,A
0357,19,,                DEC     R1
0358,18,,                DEC     R0
0359,E7,,                MOV     A,@R1
035A,96,,                SUBB    A,@R0
035B,FF,,                MOV     R7,A
035C,40 16,,                JC      DIVD44
035E,E5 F0,,                MOV     A,B
0360,F8,,                MOV     R0,A
0361,24 03,,                ADD     A,#03h
0363,F9,,                MOV     R1,A
0364,EC,,                MOV     A,R4
0365,F7,,                MOV     @R1,A
0366,19,,                DEC     R1
0367,ED,,                MOV     A,R5
0368,F7,,                MOV     @R1,A
0369,19,,                DEC     R1
036A,EE,,                MOV     A,R6
036B,F7,,                MOV     @R1,A
036C,19,,                DEC     R1
036D,EF,,                MOV     A,R7
036E,F7,,                MOV     @R1,A
036F,E8,,                MOV     A,R0
0370,24 07,,                ADD     A,#07h
0372,F9,,                MOV     R1,A
0373,07,,                INC     @R1
0374,,DIVD44,DIVD44:
0374,DB BD,,                DJNZ    R3,DIVD42
0376,A8 F0,,                MOV     R0,B
0378,C2 D2,,                CLR     OV
037A,C3,,                CLR     C
037B,22,,                RET
037C,,DIVD45,DIVD45:
037C,D2 D2,,                SETB    OV
037E,C3,,                CLR     C
037F,22,,                RET
,,,
000E,,,                end

⌨️ 快捷键说明

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