LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0100H
MAIN:MOV SP,#60H ;初始化堆栈指针 MOV 30H,#00 ;定时器初值清零 MOV 31H,#00
mov p0,#0FFH ;灯全灭
MOV P1,#0FFH ;设置P1口为输入模式
MOV TMOD,#01H ;设置定时器0为工作模式1 SETB ET0 ;开定时器0中断 SETB EA ;开总中断 CLR TR0 ;关闭定时器0 START:MOV R0,P2
CJNE R0,#00H,KEY1 ;键盘扫描 CLR TR0 MOV p0,0FFH CLR p1.0 SJMP START
7
KEY1:CJNE R0,#01H,KEY2 ;K1键按下 mov p0,#0FEH ;第一个灯亮 MOV 30H,#0FBH ;设置音阶1 MOV 31H,#0E9H LJMP SET_TIMER
KEY2:CJNE R0,#02H,KEY3 ;K2键按下 mov p0,#0FDH ;第叶二个灯亮 MOV 30H,#0FCH ;设置音阶2 MOV 31H,#5CH LJMP SET_TIMER
KEY3:CJNE R0,#04H,KEY4 ;K3键按下 mov p0,#0FBH ;第三个灯亮 MOV 30H,#0FCH ;设置音阶3 MOV 31H,#0C1H LJMP SET_TIMER
KEY4:CJNE R0,#08H,KEY5 ;K4键按下 mov p0,#0F7H ;第四个灯亮 MOV 30H,#0FCH ;设置音阶4 MOV 31H,#0EFH LJMP SET_TIMER
KEY5:CJNE R0,#10H,KEY6 ;K5键按下 mov p0,#0EFH ;第五个灯亮 MOV 30H,#0FDH ;设置音阶5 MOV 31H,#045H