欢迎来到天天文库
浏览记录
ID:32716456
大小:70.41 KB
页数:6页
时间:2019-02-15
《红外线遥控小车实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计实验报告题目:专业班级:姓名:学号:指导教师:一.实验目的采用无线通信的思想和方法设计制作红外线遥控小车,根据不同的需要设计他的传输信息的距离、稳定和抗干扰性,使它满足对小车精确遥控的目的。在单片机控制下把红外线接收头收集到的信号进行运算,得到控制命令再将其通过连接了lm298控制芯片上的两个电机输出,从而实现对小车的无线控制。二、实验原理从红外线发射发送红外线光信号,让位于小车上的红外线接收器接收到信号,通过单片机at89c52里的程序对信号进行解码,以实现对两个直流电机的控制,具体可分为前进、后退、左转、右转等功能。三、实验程序#in
2、cludeHreg52.h"sbitIR=P3A2;〃接红外sbitBEEP二POT;〃接蜂鸣器sbitPO_O=POAO;sbitPO_l=POAl;sbitP0_2=P0A2;sbitPO_3=POA3;sb让P1_O=P1AO;sbitPl_l=PlAl;sbitPl_2=PlA2;sbitPl_3=PlA3;unsignedchara[4J;unsignedintLowTime,HighTime;〃储存高、低电平的时间unsignedintLT,HT;voiddelaylms()〃延迟1ms{unsignedchara,b;for(b=1
3、02;b>0;b—)for(a=3;a>0;a—);}voiddelay(unsignedcharn)〃延迟若T毫秒{unsignedchari;for(i=0;i4、存放解码出來的数据码读取4个用户码和数据码for(j=0;j<8;j++)//每个码有8位数字temp=temp»1;//TH0=0;TLO=O;TRO=1;while(IR==0);TR0=0;////////temp屮的各数据位右移一-位,因为先读出的是高位数据定时器清零定时器清零启动定时器TO等待//关闭定时器TOLowTime二THO容256+TLO;//保存低电平时间TH()=0;TL0=0;TRO=1;while(lR==l);TR0=0;HighTime二TH0*256+TL0;if((LowTime<370)5、6、(LowTime>7、640))return0;//111错,停止解码if((HighTime>420)&&(HighTime<620))temp=temp&0x7f;//该位是0if((HighTime>1300)&&(HighTime8、0x80;//该位是1)a[i]=temp;〃将解码出来的字节值储存在a[i]return1;〃解码正确,返回1voidmain()P0_0=l;P0_l=l;P0_2=l;P0_3=l;EA=1;〃开总中断EXO=1;//开外中断0ETO=1;//定时器TO小断允许ITO=1;//外中断的下降沿触发9、TMOD=0X01;//使用定时器TO的模式1TR0=0;//定时器TO关闭while(l);//等待红外线…}voidIntO(void)interrupt0{EX0=0;TH0=0;TL0=0;TR0=1;while(IR==0);TR0=0;LowTime二TH0*256+TL0;TH0=0;TL0=0;TRO=1;while(IR==l);TR0=0;HighTime=TH0*256+TL0;if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700)){if(De10、Code()==l){if(af2]==0xl4)//前进{P0_0=0;P0_l=l;Pl_0=0;Pl_l=0;Pl_2=l;Pl_3=l;}if(a[2]==0xl6)//后退{PO_O=1;PO_1=O;P1_O=1;Pl_l=l;Pl-2=0;Pl_3=0;}if(a⑵==0xld)//右转{P0_2=0;P0_3=l;delay(30);P0_2=l;P0_3=l;}if(af2]==0xll)〃左转{P0_2=l;P0_3=0;delay(30);P0_2=l;P0_3=l;}if(a[2]==0xl5)//停止{P0_0=l;P011、_l=l;Pl_0=0;Pl」=0;Pl_2=0;Pl_3=0;}if何2]==0x4d)//喇叭声beep();delay(20);b
4、存放解码出來的数据码读取4个用户码和数据码for(j=0;j<8;j++)//每个码有8位数字temp=temp»1;//TH0=0;TLO=O;TRO=1;while(IR==0);TR0=0;////////temp屮的各数据位右移一-位,因为先读出的是高位数据定时器清零定时器清零启动定时器TO等待//关闭定时器TOLowTime二THO容256+TLO;//保存低电平时间TH()=0;TL0=0;TRO=1;while(lR==l);TR0=0;HighTime二TH0*256+TL0;if((LowTime<370)
5、
6、(LowTime>
7、640))return0;//111错,停止解码if((HighTime>420)&&(HighTime<620))temp=temp&0x7f;//该位是0if((HighTime>1300)&&(HighTime8、0x80;//该位是1)a[i]=temp;〃将解码出来的字节值储存在a[i]return1;〃解码正确,返回1voidmain()P0_0=l;P0_l=l;P0_2=l;P0_3=l;EA=1;〃开总中断EXO=1;//开外中断0ETO=1;//定时器TO小断允许ITO=1;//外中断的下降沿触发9、TMOD=0X01;//使用定时器TO的模式1TR0=0;//定时器TO关闭while(l);//等待红外线…}voidIntO(void)interrupt0{EX0=0;TH0=0;TL0=0;TR0=1;while(IR==0);TR0=0;LowTime二TH0*256+TL0;TH0=0;TL0=0;TRO=1;while(IR==l);TR0=0;HighTime=TH0*256+TL0;if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700)){if(De10、Code()==l){if(af2]==0xl4)//前进{P0_0=0;P0_l=l;Pl_0=0;Pl_l=0;Pl_2=l;Pl_3=l;}if(a[2]==0xl6)//后退{PO_O=1;PO_1=O;P1_O=1;Pl_l=l;Pl-2=0;Pl_3=0;}if(a⑵==0xld)//右转{P0_2=0;P0_3=l;delay(30);P0_2=l;P0_3=l;}if(af2]==0xll)〃左转{P0_2=l;P0_3=0;delay(30);P0_2=l;P0_3=l;}if(a[2]==0xl5)//停止{P0_0=l;P011、_l=l;Pl_0=0;Pl」=0;Pl_2=0;Pl_3=0;}if何2]==0x4d)//喇叭声beep();delay(20);b
8、0x80;//该位是1)a[i]=temp;〃将解码出来的字节值储存在a[i]return1;〃解码正确,返回1voidmain()P0_0=l;P0_l=l;P0_2=l;P0_3=l;EA=1;〃开总中断EXO=1;//开外中断0ETO=1;//定时器TO小断允许ITO=1;//外中断的下降沿触发
9、TMOD=0X01;//使用定时器TO的模式1TR0=0;//定时器TO关闭while(l);//等待红外线…}voidIntO(void)interrupt0{EX0=0;TH0=0;TL0=0;TR0=1;while(IR==0);TR0=0;LowTime二TH0*256+TL0;TH0=0;TL0=0;TRO=1;while(IR==l);TR0=0;HighTime=TH0*256+TL0;if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700)){if(De
10、Code()==l){if(af2]==0xl4)//前进{P0_0=0;P0_l=l;Pl_0=0;Pl_l=0;Pl_2=l;Pl_3=l;}if(a[2]==0xl6)//后退{PO_O=1;PO_1=O;P1_O=1;Pl_l=l;Pl-2=0;Pl_3=0;}if(a⑵==0xld)//右转{P0_2=0;P0_3=l;delay(30);P0_2=l;P0_3=l;}if(af2]==0xll)〃左转{P0_2=l;P0_3=0;delay(30);P0_2=l;P0_3=l;}if(a[2]==0xl5)//停止{P0_0=l;P0
11、_l=l;Pl_0=0;Pl」=0;Pl_2=0;Pl_3=0;}if何2]==0x4d)//喇叭声beep();delay(20);b
此文档下载收益归作者所有