📄 3.sdi
字号:
,,, ORG 0000H ;起始地址
0000,01 30,, AJMP MAIN ;跳到主程序入口
,,, ORG 0030H
0030,75 90 FF,MAIN,MAIN: MOV P1,#11111111B ;熄灭所有LED灯
0033,75 A0 FF,LOOP,LOOP: MOV P2,#11111111B ;P2口赋初值
0036,E5 A0,D0,D0: MOV A,P2 ;把P2口的值写入A(读按键)
0038,20 A0 06,, JB P2.0,D3 ;P2.0没有按键就跳转到D3
003B,75 90 FC,D00,D00: MOV P1, #11111100B ;有按键则P1.0、P1.1的LED点亮
003E,02 00 33,, LJMP LOOP ;跳转到LOOP重新按键扫描
0041,20 A3 06,D3,D3: JB P2.3,D7 ; P2.3没有按键就跳转到D7
0044,75 90 AA,D33,D33: MOV P1, #10101010B ;有按键则P1.0、P1.2 、P1.4、P1.6的LED点亮
0047,02 00 33,, LJMP LOOP ;跳转到LOOP重新按键扫描
004A,20 A7 E9,D7,D7: JB P2.7,D0 ; P2.7没有按键就跳转到D0
004D,7D 08,GO1,GO1: MOV R5,#8
004F,74 FE,, MOV A, #11111110B ;有按键则P1口八个灯循环点亮
0051,30 A0 E7,GO2,GO2: JNB P2.0,D00
0054,30 A3 ED,, JNB P2.3,D33
0057,F5 90,, MOV P1,A
0059,12 00 65,, CALL DELAY
005C,23,, RL A
005D,DD F2,, DJNZ R5,GO2
005F,02 00 4D,, LJMP GO1
0062,02 00 33,, LJMP LOOP ;跳转到LOOP重新按键扫描
0065,7E C8,DELAY,DELAY:MOV R6,#200 ;延时程序
0067,7F C8,DE1,DE1: MOV R7,#200
0069,DF FE,DE2,DE2: DJNZ R7,DE2
006B,DE FA,, DJNZ R6,DE1
006D,22,, RET
000E,,, END ;结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -