红外遥控小车程序docWord格式.docx
- 文档编号:14958780
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:20
- 大小:18.34KB
红外遥控小车程序docWord格式.docx
《红外遥控小车程序docWord格式.docx》由会员分享,可在线阅读,更多相关《红外遥控小车程序docWord格式.docx(20页珍藏版)》请在冰豆网上搜索。
uintirdata=0;
voiddeltime(void);
voidkey_scan(void);
voidsendirdata(void);
main(void)
{
EA=1;
TMOD=0x11;
ET0=1;
p3_0=1;
P1=0xff;
TH0=0xFF;
TL0=0xE4;
TR0=0;
while
(1)
{
key_scan();
if(flag_press==1)
{
flag_press=0;
TR0=1;
sendirdata();
}
}
}
//**********按键扫描***********//
voidkey_scan(void)
for(i=0;
i<
=3;
i++)
P1=keycode[i];
if(p1_3==0)
{keycount=i*3+0;
flag_key=1;
break;
if(p1_2==0)
{keycount=i*3+1;
break;
if(p1_1==0)
{keycount=i*3+2;
if(flag_key==1)
{
flag_key=0;
value1=P1;
deltime();
value2=P1;
if(value1==value2)
{keyvalue=portvalue[keycount];
flag_set=1;
flag_press=1;
while(flag_set)
{value2=P1;
if(value1!
=value2)
flag_set=0;
}
//**********延时**********//
voiddeltime(void)
uintk;
for(k=0;
k<
=20;
k++)
{}
//**********定时中断**********//
voidtime0int(void)interrupt1
TH0=0xFF;
TL0=0xE4;
count++;
//**********发送数据**********//
voidsendirdata()
uchars=0,datapd=0;
endcount=320;
p3_0=0;
count=0;
do{}while(count<
endcount);
endcount=180;
for(s=0;
s<
=11;
s++)
endcount=20;
p3_0=0;
endcount=20;
p3_0=1;
irdata=keyvalue;
=7;
datapd=irdata&
wy[s];
if(datapd==0)
{endcount=20;
count=0;
else
{endcount=60;
else
TR0=0;
红外遥控解码及驱动程序
COUNTEQU30H
FLAG_USER1EQU45H
FLAG_USER2EQU46H
SAVEDATAEQU47H
CS1EQUP3.0
CS2EQUP3.1
RSEQUP3.3
RWEQUP3.4
EEQUP3.5
PAGESEQU56H
COLUMNEQU57H
NUMEQU58H
ORG0000H
LJMPMAIN
ORG0003H
LJMPEXTER0INT
ORG000BH
LJMPTIMER0INT
ORG1000H
MAIN:
MOVP1,#0C5H
SETBP3.6
SETBP3.7
MOVTMOD,#01H;
中断初始化
MOVTH0,#0FFH
MOVTL0,#9CH
SETBEA
SETBIT0
SETBET0
SETBEX0
MOVR0,52H;
数据接收初始化
MOV52H,#00H
MOV53H,#00H
MOV54H,#00H
MOV55H,#00H
MOV51H,#00H
MOVCOUNT,#00H
MOVR1,#08H
MOVR2,#02H
CLRPSW.5;
数据接收标志
CLRPSW.1;
数据处理标志
MOVFLAG_USER1,#00H
LCALLCLEAR
MOVDPTR,#TAB0;
显示初始化
MOVPAGES,#1
MOVCOLUMN,#0
LCALLLCD_DISP
MOVDPTR,#TAB2
MOVCOLUMN,#16
MOVDPTR,#TAB1
MOVCOLUMN,#32
MOVDPTR,#TAB3
MOVCOLUMN,#48
MOVDPTR,#TAB4
MOVCOLUMN,#64
MOVDPTR,#TAB5
MOVCOLUMN,#80;
显示红外遥控模式
LCALLLCD_DISP
MOVDPTR,#TAB6
MOVPAGES,#3
MOVDPTR,#TAB7
MOVDPTR,#TAB8
MOVDPTR,#TAB10
MOVDPTR,#TAB9
LCALLLCD_DISP;
显示状态:
初始
LOOP:
;
是否进行数据处理
JNBPSW.1,$
LCALLDATACHULI
CLRPSW.1
MOVA,SAVEDATA
LCALLDATASHOW
ENDLOOP:
LJMPLOOP
EXTER0INT:
外部中断
SETBTR0
MOV30H,#00H
RETI
TIMER0INT:
定时中断,数据的验证和接收.
INC30H
SETBP3.2
MOVC,P3.2
JBPSW.5,DATARECEIVEPD
JNCENDTIMER0INT
MOVA,30H
CLRC
SUBBA,#90
JCENDTIMER0INT
SETBPSW.5
CLRTR0
MOVR0,#52H
MOVR2,#04H;
共接受两组数据
LJMPENDTIMER0INT
DATARECEIVEPD:
数据接收判断
JNCENDTIMER0INT
CLRTR0
MOVA,30H
SUBBA,#10
JCORECEIVE
SETBC
MOVA,51H
RRCA
MOV51H,A
LJMPWENDPD
ORECEIVE:
MOVA,51H
WENDPD:
DJNZR1,ENDTIMER0INT;
重复两次接收,确保存储.
MOVR1,#08H
MOV@R0,51H
MOV@R0,51H
INCR0
MOV51H,#00H
DJNZR2,ENDTIMER0INT
CLRPSW.5
SETBPSW.1
SETBP0.0
ENDTIMER0INT:
定时中断结束
DATACHULI:
数据处理
MOVA,52H
SUBBA,FLAG_USER1
JNZENDDATACHULI
MOVA,54H
ANLA,55H
MOVSAVEDATA,A
MO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 遥控 小车 程序 doc