求高手帮我把这段汇编语言改成C语言。

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:15:12
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP DOT0
ORG 001BH
LJMP DOT1

MAIN:MOV TMOD,#11H
MOV IE,#10001010B
MOV TH0,#0FEH
MOV TL0,#09H
SETB TR0
MOV 31H,#3cH
MOV 32H,#0A0H
MOV 33H,#0E6H
MOV 34H,#0FEH
MOV 35H,#0E6H
MOV 36H,#0A0H
MOV 37H,#3cH
MOV 41H,#0ffH
MOV 42H,#91H
MOV 43H,#0feH
MOV 44H,#0c9H
MOV 45H,#0feH
MOV 46H,#3fH
MOV 47H,#0feH
MOV 48H,#0EH
MOV 49H,#0feH
MOV 4AH,#3fH
MOV 4BH,#0feH
MOV 4CH,#0c9H
MOV 4DH,#0ffH
MOV 4EH,#91H
MOV P1,#00H
MOV R7,#0
SJMP $
DOT0:MOV TH0,#0FEH
MOV TL0,#09H
; cpl p1.0
;reti
IN

#include <reg51.h>
#include <absaac.h>
main()
{
int a[7] _at_0x31; //若不限定数组的起始地址,用int a[7]即可,下同
int b[14] _at_0x41;
a[0]=0x3c;
...
a[6]=0x3c;
b[0]=0xff;
...
b[13]=0x91;

TMOD=0x11;
IE=0x8A;
TH0=0xfe;
TL0=9;
TR0=1;
P1=0;
while(1); //等待中断

}

int i=0,j=0;
void timer0() interupt 1
{

TH0=0xFE;
TL0=0x9;
i+=1;
if(i!=1){
if(i!=8)
{ i++;

}
else
i=1;
P1&=0xfe;
TH1=0xff;
TL1=a[i];
F1=0;
TR1=1;
}
else{

TH1=0xFF;
TL1=a[i];
F1&=0xfe;
TR1=1;
}
}
void timer1() interupt 3
{
F1=~F1;
if(F1==1)
{
P1&=0xfe;
TH1=b[j];
j++;
TL1=b[j];
}

else{
P1^0=0;
TH1=0xff;