找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2376|回复: 2
打印 上一主题 下一主题
收起左侧

单片机红外线导航智能车程序

[复制链接]
跳转到指定楼层
楼主
//********************************************单片机红外发射*******************************************
#include "reg52.h"
sbit ir=P2^7;//红外发射管控制脚,使用24M晶振
sbit ka=P2^0;
sbit kb=P2^1;
unsigned int count, set_count; //中断计数,设定中断次数
bit irflag,keyflag;   //红外发送标志位,按键标志位
unsigned char irsys[]={0x00,0xff};//16位用户码
unsigned char irdata,ircode; //发送的红外数据
//---------------------------------------------------------------------------
void delay(unsigned int a)//延时约1ms,晶振24M ,此处延时不需很精确
{
unsigned char i;
while(--a!=0)
for(i=125;i>0;i--);
}
//---------------------------------------------------------------------------
void ir_sendbyte()    //红外发送一个字节数据
{
unsigned char i;
for(i=0;i<8;i++)    //发送8位数据
{
   set_count=35;//35; //发送编码中的0.56ms高电平
   irflag=1;      //启动红外发射二极管发射
   count=0;     //中断计数先清0
   TR0=1;      //开启定时器0
   while(count<set_count); //等待发送完
   TR0=0; //关闭定时器0
    if(ircode&0x01) set_count=130;//130; //判断红外编码最低位,若为1则1.69ms的低电平
     else set_count=35;//35;    //为0则0.565ms的低电平
   irflag=0; //低电平则不发射
   count=0; //中断计数清0
   TR0=1; //开启定时器0
   while(count<set_count); //等待发送完
   TR0=0; //关闭定时器0
   ircode=ircode>>1; //将数据右移,即从低位到高位发送
}
TR0=0;
set_count=0;
count=0;  
ir=1;    //发射完了关闭红外发射二极管
}
//---------------------------------------------------------------------------
void ir_send() //发送红外数据
{
set_count=672;//672; //发送编码中的引导码(9ms高电平+4.5ms低电平)
irflag=1;    //启动红外发射二极管发射
count=0;    //中断计数清0
TR0=1;
while(count<set_count);
TR0=0;
set_count=336;//336; //发送编码中的4.5ms低电平
irflag=0; //低电平则不发射
count=0;
TR0=1;
while(count<set_count); //等待发送完
TR0=0;
ircode=irsys[0]; //发送16位用户码的前1-8位
ir_sendbyte();
ircode=irsys[1]; //发送16位用户码的前9-16位
ir_sendbyte();   
ircode=irdata;   //发送8位数据码
ir_sendbyte();
ircode=~irdata; //发送8位数据反码
ir_sendbyte();
}
//---------------------------------------------------------------------------
void timer0_init()    //定时器初始化
{
EA=1;
TMOD=0x02;     //定时0 8位自动重装模式
ET0=1;
TH0=0xf3;//0xf3;   //定时13us,38K红外矩形波,晶振24M (//后为12M晶振下的数值)
TL0=0xf3;   
}
//---------------------------------------------------------------------------
void main()
{
P1=0x00;
timer0_init(); //定时0初始化
count=0;     //中断计数先清0
irflag=0;     //红外发射标志先置0
irdata=9;                                                                                                                //1        //55 55 55 A9
while(1)                                                                                                                 //2        //AA 55 55 53
{                                                                                                                         //4        //55 55 55 04
    ir_send();   //发送红外编码                                                                         //5        //55 55 55 49
    delay(50);                                                                                                        //6  //00 55 55 0A   
}                                                                                                                         //7        //00 55 55 15
}                                                                                                                         //8  //54 55 55 4D
//-----------------------------------------------------------------------        //9        //00 55 55 11
void timer0() interrupt 1 //定时器0中断                                                         //10        //A8 55 55 13
{
count++;
if(irflag==1) ir=~ir; //有发射标志,则发射38khz的矩形波
   else ir=1;     //否则不发射,即相当于发射编码中的低电平
}



image022.jpg (47.95 KB, 下载次数: 34)

image022.jpg

image012.jpg (42.82 KB, 下载次数: 44)

image012.jpg

image006.jpg (39.52 KB, 下载次数: 33)

image006.jpg

硬件原理图.jpg (175.22 KB, 下载次数: 37)

硬件原理图.jpg

image024.jpg (46.34 KB, 下载次数: 36)

image024.jpg

image026.jpg (45.54 KB, 下载次数: 36)

image026.jpg

履带式蔽障车.rar

17.82 MB, 下载次数: 19, 下载积分: 黑币 -5

实例二、直流电机控制.rar

78.8 KB, 下载次数: 22, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:78889 发表于 2020-4-3 21:44 | 只看该作者
不错的样子,多少钱哪
回复

使用道具 举报

板凳
ID:722038 发表于 2020-4-4 01:25 | 只看该作者
请问我如果想做一个简单点的循迹小车得多少钱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表