完全一样的题目呀,真幸运,看我的吧(我的是8052的,没关系的):
汇编程序:
S1EQU 30H
S2EQU 31H
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP INTT1
ORG 0100H
MAIN:ANL TMOD,#0FH
ORL TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB EA
SETB ET1
SETB TR1
MOV DPTR,#TABLE
MOV S1,#00H
MOV S2,#00H
LP:MOV A,S2
MOVC A,@A+DPTR
MOV P1,A
AJMP LP
INTT1: PUSH ACC
INC S1
MOV A,S1
CJNE A,#20,NEXTT1
MOV S1,#00H
INC S2
ANL S2,#07H
NEXTT1: POP ACC
RETI
TABLE: DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,00H
C语言程序:
#include
unsigned char s1=0,s2=0;
unsigned char code table[]=
{
0x05,0x0A,0x50,0xA0,0x55,0xAA,0xFF,0x00
};
void main()
{
TMOD=(TMOD&0X0F)|0X10;
TH1=0X3C;
TL1=0XB0;
EA=1;
ET1=1;
TR1=1;
while(1)
{
P1=table[s2];
}
}
void t1(void) interrupt 3 using 0
{
s1++;
if(s1==20)
{
s1=0;
s2++;
s2=s2&0x07;
}
}