0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初学单片机之51红外遥控小车程序

单片机 来源:未知 作者:易水寒 2017-12-21 14:07 次阅读

学习51单片机遥控小车小车是很多单片机爱好者、电子制作爱好者必先项目,这里为大家介绍一款51单片机红外遥控小车的制作。51单片机红外遥控小车材料准备,首先当然是网购啦,主要购买如下配件:单片机最小系统板、3轮小车底盘,L298N两个电机控制电路板、电池盒,还有一些铜柱、扎带等,所需要的配件很容易在一家店中购齐的。

51单片机红外遥控小车,十分简单,产生我们先从红外遥控部分开始。网上打一个红外的例程进行改,就成了51单片机红外遥控小车程序了。

51单片机红外遥控小车用单片机最小板是是一块6元钱的最小板(就是哪种直接把IO引出来,加个晶振),电机控制板,与P连接。先在电脑上测试程序,测试好后,再把程序下载到单片机中,这里要说明一下的是红外的信号是间断发出的,所以是按一下就执行某个动作,要停止还得按停止按键。

51单片机红外遥控小车可以用一组电源同时给51单片机最小系统和电机控制板供电

51单片机程序代码

#include //包含单片机寄存器的头文件

#include //包含_nop_()函数定义的头文件

#define uchar unsigned char

#define uint unsigned int

#define motor P1

void delay(uchar x);

sbit IRIN=P3^2; //红外数据线

uchar IRCOM[7];

main()

{

IRIN=1; //I/O口初始化

EA=1;

EX0=1;//中断0

motor=0xff;

while(1){

}

}

void delay(uchar x) //x*0.14MS

{

uchar i;

while(x--)

{

for(i=0;i

}

}

void IR_IN() interrupt 0 using 0

{

uchar j,k,N=0;

EX0=0;

delay(15);

if(IRIN==1)

{

EX0=1;

return;

}

//确认IR信号出现

while(!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。

{

delay(1);

}

for(j=0;j

{

for (k=0;k

{

while (IRIN)

{

delay(1);

}

while (!IRIN)

{

delay(1);

}

while(IRIN)

{

delay(1);

N++;

if(N>=30)

{

EX0=1;

return;

}

}

IRCOM[j]=IRCOM[j] >> 1;

if(N>=8)

{

IRCOM[j]=IRCOM[j] | 0x80;

}

N=0;

}

}

if (IRCOM[2]!=~IRCOM[3])

{

EX0=1;

return;

}

IRCOM[5]=IRCOM[2] & 0x0F; //取键码的低四位

IRCOM[6]=IRCOM[2] >> 4; //右移4次,高四位变为低四位

if(IRCOM[5]>9)

{

IRCOM[5]=IRCOM[5]+0x37;

}

else

IRCOM[5]=IRCOM[5]+0x30;

if(IRCOM[6]>9)

{

IRCOM[6]=IRCOM[6]+0x37;

}

else

IRCOM[6]=IRCOM[6]+0x30;

if(IRCOM[2]==0x40){//‘+’键

motor=0xf5;

}else if(IRCOM[2]==0x19){ //'-'

motor=0xfa;

}else if(IRCOM[2]==0x7){ //'

motor=0xf7;

}else if(IRCOM[2]==0x9){ //'>>'

motor=0xfd;

}else if(IRCOM[2]==0x16){ //'0'

motor=0xfe;

}else if(IRCOM[2]==0x0d){ //'c'

motor=0xfb;

}else if(IRCOM[2]==0x45){ //'off'

motor=0xff;

}

EX0=1; //退出外部中断

}

总之,这款51单片机红外遥控小车十分简单,非常适合单片机初学者学习仿制。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5999

    文章

    43966

    浏览量

    620734
  • 红外遥控
    +关注

    关注

    22

    文章

    345

    浏览量

    45003
  • 程序代码
    +关注

    关注

    4

    文章

    41

    浏览量

    15350

原文标题:51单片机红外遥控小车程序代码

文章出处:【微信号:aidanpianji,微信公众号:单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于51单片机红外遥控器设计

    电子发烧友网站提供《基于51单片机红外遥控器设计.rar》资料免费下载
    发表于 01-12 09:22 2次下载

    基于51单片机红外遥控器设计

    电子发烧友网站提供《基于51单片机红外遥控器设计.rar》资料免费下载
    发表于 01-03 11:23 1次下载

    基于51单片机红外遥控发射接收proteus仿真设计

    设计一个51单片机红外遥控发射接收proteus仿真设计
    的头像 发表于 09-24 14:04 1637次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>红外</b><b class='flag-5'>遥控</b>发射接收proteus仿真设计

    基于51单片机设计的红外遥控

    本项目是基于 51 单片机设计支持 NEC 协议的红外遥控器,实现接收解码和发送功能。用户通过按下相应按键进行信号的发射,红外发射二极管向外
    的头像 发表于 06-09 09:02 1373次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>设计的<b class='flag-5'>红外</b><b class='flag-5'>遥控</b>器

    基于51单片机红外遥控步进电机例程源代码

    基于51单片机红外遥控步进电机例程源代码
    发表于 05-16 11:16 9次下载

    基于51单片机红外遥控舵机例程源代码

    基于51单片机红外遥控舵机例程源代码
    发表于 05-16 11:16 14次下载

    基于51单片机红外遥控继电器例程源代码

    基于51单片机红外遥控继电器例程源代码
    发表于 05-16 11:15 0次下载

    基于89C51单片机红外发射原理源程序

    基于89C51单片机红外发射原理源程序
    发表于 05-15 11:09 10次下载

    基于89C51单片机红外接收原理源程序

    基于89C51单片机红外接收原理源程序
    发表于 05-15 11:08 7次下载

    基于89C51单片机红外遥控继电器源程序

    基于89C51单片机红外遥控继电器源程序
    发表于 05-15 11:06 1次下载

    基于51单片机红外遥控直流电机例程源代码

    基于51单片机红外遥控直流电机例程源代码
    发表于 05-12 16:35 8次下载

    基于51单片机的VB遥控播放器红外遥控解码设计源程序

    基于51单片机的VB遥控播放器红外遥控解码设计资料源程序
    发表于 04-27 15:08 0次下载

    基于51单片机红外遥控解码数码管显示设计资料源程序

    基于51单片机红外遥控解码数码管显示设计资料源程序
    发表于 04-26 15:35 4次下载

    基于51单片机数码管遥控解码设计资料源程序

    基于51单片机数码管遥控解码设计资料源程序
    发表于 04-26 15:13 0次下载

    基于51单片机中文12864LCD显示红外遥控解码设计资料源程序

    基于51单片机中文12864LCD显示红外遥控解码设计资料源程序 1. 按下图 用导线 连接好一端连接 JPJS跳线端 2. 另一端连接
    发表于 04-26 15:09 2次下载