急 我这有一个单片机的程序 用C语言编的 哪位大哥能够帮我 改成汇编语言写的 谢谢了 正确的给分

单片机AT89S52
main()
{
EA=1; //开总中断
IT0=1; //外部中断1设置为下降沿触发
EX0=1; //开外部中断1

while(1)
{
if(FDBF==1&&VT==1) //接收到布防遥控指令
{
delay(100); //按键消抖
BFBZ=1; //置布防状态标志
JCBZ=0; //清解除状态标志
}
if(FDJC==1&&VT==1) //接收到布防解除指令
{
delay(100); //按键消抖
BFBZ=0; //清布防状态标志
JCBZ=1; //置解除状态标志
}
if(BFBZ==1) //布防状态
{
DHKZ=1; //发动机点火闭锁
CMBF=1; //开启车门开启检测
}

if(JCBZ==1) //解除状态
{
DHKZ=0; //发动机点火允许
CMBF=0; //关闭车门开启检测
}
#include<reg51.h>

#define uchar unsigned char
#define uint unsigned int

sbit RSD=P1^4; //热释电人接近汽车检测输入
sbit GHG=P1^5; //干簧管车门开启检测输入
sbit ZDJC=P1^6; //振动检测输入
sbit DPLJC=P1^7; //多普勒检测人接近驾驶座输入
sbit BJFS=P2^1; //报警发射输出端
sbit FDJC=P2^2; //防盗解除遥控接收输入端
sbit FDBF=P2^3; //防盗布防遥控接收输入端
sbit VT=P2^4; //遥控接收有效输入端
sbit YXBJ=P2^5; //音响报警信号输出端
sbit DHKZ=P2^6; //发动机点火控制输出端
sbit CMBF=P2^7; //车门开启检测布防控制信号输出端

uchar BFBZ=0; //定义防盗布防标志
uchar JCBZ=1; //定义防盗解除标志

//*********************************延时子函数
void delay(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
{
for(j=0;j<100;j++)
{}
}
}

第1个回答  2012-05-18
翻译延时函数部分:
DELAY:
DL0: MOV R6,#100;
DL1: DJNZ R6,DL1
DL2: DJNZ R7,DL0;
RET
举例:
if(JCBZ==1) //解除状态
{
DHKZ=0; //发动机点火允许
CMBF=0; //关闭车门开启检测
}
翻译为:
JB JCBZ ,L_JIECHU
LJMP NEXT
JIECHU:
CLR DHKZ ;
CLR CMBF;
NEXT: .....
相似回答