请高手帮忙看一段汇编程序(定时器中断)
2011年07月08日 17:14 发布者:hongsheng13
这是一段我程序中的汇编语言,我想把它改成C语言,但是一直没有调试出正确的结果,希望高手指点一下!谢谢了!TIME0: PUSH PSW ;定时器0中断程序
DJNZ R4,TIME0E
PUSH ACC
MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#00H,TIM01
CLR 7EH
CLR 7BH
ANL P2,#0FH
CLR TR0
CLR ET0
TIME0E2: POP ACC
TIME0E: POP PSW
RETI
;
TIM01: INC DPTR
MOV R4,A
CJNE A,#0FFH,TIM01A
CPL 7BH
TIM01A: CPL 7BH
JB 7BH,TIM02
ANL P2,#0FH
POP ACC
POP PSW
RETI
;
TIM02: MOV A,R2
ORL P2,A
POP ACC
POP PSW
RETI
REM: NOP
JB 7EH,REM
MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#00H,REME ;IF 00H THEN END CODE
RET
REME: MOV R4,A
INC DPTR
SETB 7EH ;SET FLAGE OF DRIVE TIME0
SETB 7BH ;SET FLAGE OF SEND 1 REMOTE LED
MOV A,R3
MOV R2,A
ORL P2,A
SETB ET0
SETB TR0
RET
下面是我自己用C语言写的:
void time0int() interrupt 1
{
shuzu--;
if(shuzu==0)
{
while(*p!=0x00)
{
p++;
shuzu=*p;
while(*p!=0xff)
{
flag0=~flag0;
if(flag0==1)
{
P2=P2|waishe;
}
else
{
P2=P2&0x0f;
}
}
flag0=~flag0;
}
flag0=0;
flag1=0;
P2=P2&0x0f;
TR0=0;
ET0=0;
}
}
void sendcode(void)
{
while(flag1)
{;}
while(*p!=0x00)
{
p++;
shuzu=*p;
flag0=1;
flag1=1;
P2=P2|waishe;
ET0=1;
TR0=1;
}
}
网友评论
hongsheng13 2011年07月21日
好失望啊
好失望啊
vvjjii 2011年08月26日
:victory:
:victory:
43834285 2011年10月09日
:)
:)
天子 2011年10月10日
太费神了呵呵,新手
太费神了呵呵,新手
uacom 2011年10月19日
请不要用其他语言改写另外一种语言。这样会变味的,就比方你的家乡话改为普通话意思及语感就不会一样。
请不要用其他语言改写另外一种语言。这样会变味的,就比方你的家乡话改为普通话意思及语感就不会一样。

没看别人程序的习惯