找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

一段汇编程序?

[复制链接]
admin 发表于 2012-9-2 09:09:31 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
这是一段我程序中的汇编语言,我想把它改成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;
}
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 13:51 , Processed in 0.055531 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表