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

📄 6.sdi

📁 我的大学单片机课程案例和ppt
💻 SDI
字号:
,,,        ORG     0H
0000,02 00 30,,        LJMP    START
,,,        ORG     30H
0030,75 80 FF,START,START:  MOV     P0,#0FFH
0033,75 A0 00,,        MOV     P2,#0H
0036,75 30 00,,        MOV     30H,#0
0039,75 31 00,,        MOV     31H,#0
003C,75 32 00,,        MOV     32H,#0
003F,75 33 00,,        MOV     33H,#0
0042,90 00 E9,,        MOV     DPTR,#TABLE     ;将数据表TABLE的首地址赋给DPTR
0045,,DISAGAIN,DISAGAIN:
0045,7C 04,,        MOV     R4,#4
0047,79 30,,        MOV     R1,#30H
0049,7A 10,,        MOV     R2,#00010000B
,,,
004B,75 90 FF,DISLOOP,DISLOOP:MOV     P1,#0FFH
004E,C2 92,,        CLR     P1.2    ;P1.2清0,扫描第1行
0050,E5 90,,        MOV     A,P1    ;读键盘至A
0052,54 03,,        ANL     A,#00000011B
0054,64 03,,        XRL     A,#00000011B;判断A的低二位是否为1
0056,60 30,,        JZ      SCANL2  ;如果低二位为1,则无按键,转第二行扫描
0058,12 00 D7,,        LCALL   DELAY10MS;延时10ms(去抖延时)
005B,E5 90,,        MOV     A,P1    ;读键盘至A
005D,54 03,,        ANL     A,#00000011B
005F,64 03,,        XRL     A,#00000011B;判断A的低二位是否为1
0061,60 25,,        JZ      SCANL2  ;如果低二位为1,则无按键,转第二行扫描
0063,E5 90,,        MOV     A,P1    ;读键盘至A
0065,54 03,,        ANL     A,#00000011B;保留低二位的结果
0067,B4 02 0F,,        CJNE    A,#00000010B,NOK0;不是K0键,转NOK0
006A,75 30 02,,        MOV     30H,#2  ;是K0键将30H地址赋值为2
006D,75 31 03,,        MOV     31H,#3  ;将31H地址赋值为3
0070,75 32 02,,        MOV     32H,#2  ;是将32H地址赋值为2
0073,75 33 03,,        MOV     33H,#3  ;将33H地址赋值为3
0076,02 00 C2,,        LJMP    DISPLAY ;转显示子程序
0079,75 30 08,NOK0,NOK0:   MOV     30H,#8  ;不是K0键,则一定是K1。将30H地址赋值为8
007C,75 31 09,,        MOV     31H,#9  ;将31H地址赋值为9
007F,75 32 08,,        MOV     32H,#8  ;将32H地址赋值为2
0082,75 33 09,,        MOV     33H,#9  ;将33H地址赋值为3
0085,02 00 C2,,        LJMP    DISPLAY ;转显示子程序
0088,75 90 FF,,SCANL2 :MOV     P1,#0FFH
008B,C2 93,,        CLR     P1.3    ;P1.3清0,扫描第2行
008D,E5 90,,        MOV     A,P1    ;读键盘至A
008F,54 03,,        ANL     A,#00000011B
0091,64 03,,        XRL     A,#00000011B;判断A的低二位是否为1
0093,60 2D,,        JZ      DISPLAY ;如果低二位为1,则无按键,转DISPLAY
0095,12 00 D7,,        LCALL   DELAY10MS;延时10ms(去抖延时)
0098,E5 90,,        MOV     A,P1    ;读键盘至A
009A,54 03,,        ANL     A,#00000011B
009C,64 03,,        XRL     A,#00000011B;判断A的低二位是否为1
009E,60 22,,        JZ      DISPLAY ;如果低二位为1,则无按键,转DISPLAY
00A0,E5 90,,        MOV     A,P1    ;读键盘至A
00A2,54 03,,        ANL     A,#00000011B;保留低二位的结果
00A4,B4 02 0F,,        CJNE    A,#00000010B,NOK2;不是K2键,转NOK2
00A7,75 30 06,,        MOV     30H,#6  ;是K2键将30H地址赋值为6
00AA,75 31 08,,        MOV     31H,#8  ; 将31H地址赋值为8
00AD,75 32 06,,        MOV     32H,#6  ;将32H地址赋值为6
00B0,75 33 08,,        MOV     33H,#8  ; 将33H地址赋值为8
00B3,02 00 C2,,        LJMP    DISPLAY ;转显示子程序
00B6,75 30 07,NOK2,NOK2:   MOV     30H,#7  ;不是K2,则一定是K3。将30H地址赋值为7
00B9,75 31 07,,        MOV     31H,#7  ;将31H地址赋值为7
00BC,75 32 01,,        MOV     32H,#1  ;将32H地址赋值为1
00BF,75 33 01,,        MOV     33H,#1  ; 将33H地址赋值为1
00C2,,DISPLAY,DISPLAY:
00C2,E7,,        MOV     A,@R1           ;
00C3,93,,        MOVC    A,@A+DPTR       ;将(A+DPTR)地址中的值赋给A
00C4,8A A0,,        MOV     P2,R2           ;选择数码管
00C6,F5 80,,        MOV     P0,A            ;送到P0口数码管显示
00C8,12 00 E0,,        LCALL   DELAY   ;显示延时
00CB,EA,,        MOV     A,R2    ;R2的值移位
00CC,23,,        RL      A
00CD,FA,,        MOV     R2,A
00CE,09,,        INC     R1
00CF,DC 03,,        DJNZ    R4,DD
00D1,02 00 45,,        LJMP    DISAGAIN        ;重新开始扫描
00D4,02 00 4B,DD,DD:     LJMP    DISLOOP
00D7,,DELAY10MS,DELAY10MS:
00D7,7E 14,,        MOV     R6,#20
00D9,7F C8,D1,D1:     MOV     R7,#200
00DB,DF FE,D2,D2:     DJNZ    R7,D2
00DD,DE FA,,        DJNZ    R6,D1
00DF,22,,        RET
00E0,,DELAY,DELAY:
00E0,7E 14,,        MOV     R6,#20
00E2,7F 64,D3,D3:     MOV     R7,#100
00E4,DF FE,D4,D4:     DJNZ    R7,D4
00E6,DE FA,,        DJNZ    R6,D3
00E8,22,,        RET
00E9,C0 F9 A4 B0,TABLE,TABLE:  DB      0C0H,0F9H,0A4H,0B0H             ;0,1,2,3
00ED,99 92 82 F8,,        DB      99H,92H,82H,0F8H,80H,90H        ;4,5,6,7,8,9
000E,,,        END
,,,
,,,

⌨️ 快捷键说明

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