dat>>
dat>>
dat>>
dat>>
12: JNB P2.5, A2 ;K2键按下转A2
13: JNB P2.6, A4 ;K3键按下转A3
14: JNB P2.7, A4 ;K4键按下转A4 键按下后转
15: JMP START ;无键按下返回 功能处理程序
16: A1: MOV R0, #8 ;设置左移位数
17: MOV A ,#0FEH ;设置左移初值
18: LOOP2: MOV P1, A ;输出至P1
19: ACALL DELAY ;调延时1秒子程序
20: RL A ;左移一位
21: DJNZ R0, LOOP2 ;判断移动位数 1号功能键
22: JMP START ;返回主程序开始处 处理程序
23: A2: MOV R0,#8 ;设置右移位数
24: MOV A ,#0FCH ;设置右移初值
25: LOOP3: RR A ;右移一位
26: MOV P1, A ;输出至P1
27: ACALL DELAY ;调延时1秒子程序
28: DJNZ R0, LOOP3 ;判断移动位数 2号功能键
29: JMP START ;返回主程序开始处 处理程序
30: A3: MOV R0,#6 ;设置闪烁次数
31: MOV A ,#0F0H ;设置初值
32: LOOP4: MOV P1, A ;输出至P1
33: ACALL DELAY ;调延时1秒子程序
34: CPL A ;反相
35: MOV P1,A ;输出
36: DJNZ R0, LOOP4 ;判断移动位数 3号功能键
37: JMP START ;返回主程序开始处 处理程序
38: A4: MOV R0,#10 ;设置闪烁次数
39: MOV A, #00H ;设置初值
40: LOOP5: MOV P1,A ;输出
41: ACALL DELAY ;调延时子程序
42: CPL A ;反相
43: MOV P1,A ;输出
44: DJNZ R0, LOOP5 ;判断闪烁次数 4号功能键
45: MP START ;返回主程序开始处 处理程序
46: DELAY1: MOV R3, #60 ;消抖延时子程序
47: D2: MOV R4, #248 ;
48: DJNZ R4, $ ;
49: DJNZ R3, D2 ; 消除抖动
50: RET ; 延时子程序
51: DELAY: MOV R5, #50 ;延时1秒子程序
52: DLY1: MOV R6, #100 ;
53: DLY2: MOV R7, #100 ;
54: DJNZ R7, $ ;
55: DJNZ R6, DLY2 ;
56: DJNZ R5, DLY1 ;
57: RET ; 延时子程序
58: END ; 程序结束