急求红外寻迹,无线遥控小车的汇编源程序

急求红外寻迹,无线遥控小车的汇编源程序,第1张

ORG 000H

LJMP MAIN1

ORG 003H

LJMP INT0

ORG 030H

MIAN1:MOV P1,#0FFH

NOP

NOP

MOV P1,#00H

MOV P0,#0FFH

NOP

NOP

MOV P0,#00H

CLR 00H

CLR P1.0

CLR P2.1

CLR P2.3

CLR P2.2

SETB EA

SETB EX0

SETB EX1

SETB PX0

SJMP $

INTO:CPL OOH

JNB 00H ,KK

LJMP YAO

KK:LJMP XUNJI

RETI

YAO:MOV A,P1 遥控判断

ANL A,#0FH

MOV P1,A

CJNE A,#01H,NC1

LCALL ST

NC1:CJNE A,#02H,NC2

LCALL LEF2

NC2:CJNE A,#04H,NC3

LCALL RIG2

NC3:LJMP YAO

XUNJI:JNB P1.3,N1

LCALL ST

N1:JNB P1.2, N2

LCALL LEF1

N2:JNB P1.4,N3

LCALL RIG1

N3:JNB P1.0,N4

LCALL LEF2

N4:JNB P1.5,N5

LCALL RIG2

N5:LJMP XUNJI

ST:SETB P2.1

SETB P2.3

MOV R2,#可变驱动时虚凯间

LCALL DEL1

CLR P2.1

CLR P2.3

RET

LEF1:SETB P2.3

MOV R2,#

LCALL DEL1

CLR P2.3

RET

RIG1:SETB P2.1

MOV R2,#

LCALL DEL1

CLR P2.1

RET

LEF2:SETB P2.3

MOV R2,# 二级判断

LCALL DEL1

CLR P2.3

RET

RIG2:SETB P2.1

MOV R2,#

LCALL DEL1

CLR P2.1

RET

DEL1:MOV R3,#90 定州仿时约100ms,可精调

DD2:差迹唤MOV R4,#50

DD3,MOV R5,#10

DJNZ R5,$

DJNZ R4,DD3

DJNZ R3,DD2

DJNZ R2,DEL1

RET

给你一段430单片机遥控器解码的程序吧,也就是接收部分

毕竟世界太现实只能这么帮你

#ifndef _IR_

#define _IR_

char t0,t1,t2

uchar IR

void DelayIR()

{

uint i=130

while(i--)

}

void init_port2(void)

{

P2DIR&=~BIT0

P2SEL&=~BIT0

P2IES|=BIT0

P2IE|=BIT0

}

#pragma vector=PORT2_VECTOR

__interrupt void PORT2_ISR(void)

{

char CounterIR

P2IES&=~BIT0

if(P2IFG&BIT0)

{

P2IFG&=~BIT0

}

CounterIR=0

while(!(P2IN&BIT0))

{

DelayIR()

CounterIR++

}

if(CounterIR>85)

{

if(CounterIR<95)

{

t1++

for(char k=0k<17k++)

{

CounterIR=0

while((P2IN&BIT0)&&(CounterIR<50))

{

DelayIR()

CounterIR++

}

CounterIR=0

while((!(P2IN&BIT0))&&(CounterIR<10))

{

DelayIR()

CounterIR++

}

}

for(char j=0j<8j++)

{

CounterIR=0

while((P2IN&BIT0)&&(CounterIR<25))

{

DelayIR()

CounterIR++

}

IR<<=1

if(CounterIR>11)

IR|=BIT0

CounterIR=0

while((!(P2IN&BIT0))&&(CounterIR<10))

{

DelayIR()

CounterIR++

}

}

if((IR!=0xff)&&(IR!=0x00))

{

if(!(flag&dataflag))

{

if(IR==0x22)

{

flag|=runflag

}

else

{

Tar[0]=Tar[1]

Tar[1]=Tar[2]

Tar[2]=Tar[3]

Tar[3]=Tar[4]

switch (IR)

{

//case 0x22 : flag|=runflagbreak

case 0x68 : Tar[4]=0flag|=dataflagbreak

case 0x30 : Tar[4]=1flag|=dataflagbreak

case 0x18 : Tar[4]=2flag|=dataflagt2++break

case 0x7a : Tar[4]=3flag|=dataflagbreak

case 0x10 : Tar[4]=4flag|=dataflagbreak

case 0x38 : Tar[4]=5flag|=dataflagbreak

case 0x5a : Tar[4]=6flag|=dataflagbreak

case 0x42 : Tar[4]=7flag|=dataflagbreak

case 0x4a : Tar[4]=8flag|=dataflagbreak

case 0x52 : Tar[4]=9flag|=dataflagbreak

default : break

}

}

}

}

IR=0

}

}

for(int m=0m<250m++)

DelayIR()

P2IES|=BIT0

}

#endif

请采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12438742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存