ORG 0000H
AJMP START
ORG 0003H //外部中断0入口
AJMP INT0_SRV
ORG 00BH
AJMP T0_SRV
ORG 0013H
AJMP INT1_SRV //外部中断1入口
//-----------------------------------------------
ORG 0040H
START: MOV SP,#07H //INTC,初始化
MOV DPTR,#TAB
MOV A,#0AAH //初始化方案,就隔着亮
MOV B,#08H
MOV R7,#100
MOV R6,#00H
MOV R5,#00H
MOV R4,#00H
MOV R3,#00H
//---------------------------------开中断
ON_T0: MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB ET0
SETB EA
ON_INT0: CLR IT0 //电平触发
SETB EX0 //INT0中断
ON_INT1: CLR IT1
SETB EX1 //INT1中断
//--------------------------------MAIN,主函数
MAIN: MOV P2,A
SJMP MAIN
//--------------------------------T0中断服务程序,
ORG 0400H
T0_SRV: MOV TH0,#0D8H
MOV TL0,#0F0H
DJNZ R7,D2
MOV R7,#100
INC R6 //改变循环次数
MOV A,R6
CJNE A,B,D2
MOV R6,#00H
D2: MOV A,R6
ADD A,R5 //改变R5(方案)
MOVC A,@A+DPTR
RETI
//--------------------------------DELAY,延迟6ms函数,削抖
DELAY: MOV R1,#100
L1: MOV R0,#60
DJNZ R0,$
DJNZ R1,L1
RET
//--------------------------------INT0中断服务程序
ORG 0100H
INT0_SRV:CALL DELAY
JB IE0,$
CALL DELAY
MOV R3,#00H
CHANG_M: INC R4 //改变动态数据
CJNE R4,#01H,NEXT1
SETB TR0
MOV R5,#00H //第1个方案
MOV B,#08H
SJMP TRAN_RET
NEXT1: CJNE R4,#02H,NEXT2
MOV R5,#08H //第2个方案
MOV B,#08H
SJMP TRAN_RET
NEXT2: CJNE R4,#03H,NEXT3
MOV R5,#10H //第3个方案
MOV B,#08H
SJMP TRAN_RET
NEXT3: CJNE R4,#04H,NEXT4
MOV R5,#18H //第4个方案
MOV B,#0EH
SJMP TRAN_RET
NEXT4: CJNE R4,#05H,NEXT5
MOV R5,#26H //第5个方案
MOV B,#06H
SJMP TRAN_RET
NEXT5: CJNE R4,#06H,NEXT6
MOV R5,#2CH //第6个方案
MOV B,#08H
SJMP TRAN_RET
NEXT6: CJNE R4,#07H,NEXT7
MOV R5,#34H //第7个方案
MOV B,#10H
SJMP TRAN_RET
NEXT7: CLR TR0 //返回初始化方案
CLR TF0
MOV A,#0AAH
MOV R4,#00H
MOV R5,#00H
MOV B,#08H
TRAN_RET:MOV R6,#00H
RETI
//--------------------------------INT1中断服务程序
ORG 0300H
INT1_SRV:CALL DELAY
JB IE1,$
CALL DELAY
CLR TR0
CLR TF0
MOV R6,#00H
MOV R5,#00H
MOV R4,#00H
CHANG_S: INC R3 // 改变静态数据
CJNE R3,#01H,NE1
MOV A,#3CH
SJMP CHAN_END
NE1: CJNE R3,#02H,NE2
MOV A,#0DBH
SJMP CHAN_END
NE2: CJNE R3,#03H,NE3
MOV A,#0CCH
SJMP CHAN_END
NE3: MOV A,#0AAH
MOV R3,#00H
CHAN_END:RETI
//------------------------------------数据列表
TAB: DB 0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff
DB 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55
DB 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
DB 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe
DB 0xfd,0xfb,0xf7,0xef,0xdf,0xbf
DB 0x7e,0xbd,0xdb,0xe7,0xdb,0xbd
DB 0x7e,0x3c,0x18,0x00,0x81,0xc3,0xe7,0xff
DB 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00
DB 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff
END
//-----------------------------------------------------------