cdblue
发表于 2016-11-10 14:53:29
感謝分享~幫頂
wurenji
发表于 2016-11-10 15:26:23
这么小,牛人啊,可以放口袋里控制了
haiyanglin280
发表于 2016-11-27 17:24:20
楼主 能做个带学习的接收机吗这样省去做遥控器了 用现成的遥控器 学习一下 就可以用我在琢磨 还没突破呢
有这想法吗,有的话那位师傅给个 资料教程!!!!!!
我是天才
发表于 2016-11-27 19:59:56
haiyanglin280 发表于 2016-11-27 17:24
楼主 能做个带学习的接收机吗这样省去做遥控器了 用现成的遥控器 学习一下 就可以用我在琢磨 还没突 ...
这个我不太会,我也是刚开始学单片机,这个萝莉应该能做
lv838999
发表于 2016-11-28 07:09:17
http://www.moz8.com//mobcent//app/data/phiz/default/23.pnghttp://www.moz8.com//mobcent//app/data/phiz/default/23.pnghttp://www.moz8.com//mobcent//app/data/phiz/default/23.png
hong201305
发表于 2017-2-20 16:36:34
楼主能贴一下源码吗?谢谢啦
阿文先生
发表于 2017-2-21 15:28:56
我提几个问:即然是电池供电,有测过串万用表测电流是多少吗? 好计算出省不省电,电池用多久的问题。
再一个是,距离多远,能否达到7米呢?
chuangxinkeji
发表于 2017-3-31 17:40:03
这个很好
学习力好快啊,
kingS
发表于 2017-4-3 22:39:56
有教程没?可以出来科普分享一下的
我是天才
发表于 2017-4-5 22:53:42
本帖最后由 我是天才 于 2017-4-5 23:22 编辑
阿文先生 发表于 2017-2-21 15:28
我提几个问:即然是电池供电,有测过串万用表测电流是多少吗? 好计算出省不省电,电池用多久的问题。
...
7米能达到,室内10米都没问题,电流没测过,不过在不发射时只进行按键检测程序,应该很省电,以后可以加程序让单片机在空闲时进行掉电模式,续航大大增强,现在的锂电池容量很高,应该可以用很长时间,不过如果实际应用,应该外接电源,所以不用担心续航时间
我是天才
发表于 2017-4-5 23:17:43
更新代码,具体还是看萝莉的注释,我只是在萝莉的基础上改进了一下,高三时间紧,就不做过多的说明了,重要的说明已经加在程序中
发射程序:
#include<reg51.h>
sbit Key1=P3^0; //按键与发射定义
sbit Key2=P3^1;
sbit Key3=P3^2;
sbit Key4=P3^3;
sbit Key5=P3^4;
sbit TX=P3^5;
#define uchar unsigned char
#define uint unsigned int
uchar Key1_old; //定义变量
uchar Key2_old;
uchar Key3_old;
uchar Key4_old;
uchar Key5_old;
uchar action1;
uchar action2;
uchar action3;
uchar action4;
uchar action5;
void Delay10ms() //@12.000MHz
{
unsigned char i, j;
i = 117;
j = 184;
do
{
while (--j);
} while (--i);
}
void Delay13us() //@12.000MHz
{
unsigned char i;
i = 36;
while (--i);
}
void TX_time(uint n) //发射程序,这个具体看萝莉的注释
{
while(n)
{
TX=0;
Delay13us();
TX=1;
Delay13us();
n=n-1;
}
}
void Key_select() //进行按键选择,判断是哪个按键按下
{
if(Key1==1)
{
if(Key1_old==0)
{action1=1;}
}
Key1_old=Key1;
if(Key2==1)
{
if(Key2_old==0)
{action2=1;}
}
Key2_old=Key2;
if(Key3==1)
{
if(Key3_old==0)
{action3=1;}
}
Key3_old=Key3;
if(Key4==1)
{
if(Key4_old==0)
{action4=1;}
}
Key4_old=Key4;
if(Key5==1)
{
if(Key5_old==0)
{action5=1;}
}
Key5_old=Key5;
}
main()
{
Key1_old=1; //初始化
Key2_old=1;
Key3_old=1;
Key4_old=1;
Key5_old=1;
while(1)
{
Delay10ms(); //系统周期10ms
Key_select(); // 按键选择
if(action1==1) //不同的按键按下对应的发射时间不同
{
action1=0;
TX_time(384); //通过改变括号里的数来改变发射时间
}
if(action2==1)
{
action2=0;
TX_time(577);
}
if(action3==1)
{
action3=0;
TX_time(731);
}
if(action4==1)
{
action4=0;
TX_time(900);
}
if(action5==1)
{
action5=0;
TX_time(1076);
}
}
}
接收程序:
#include <reg51.h>
sbit RX=P3^4; //定义接收与LED引脚
sbit L1=P3^0;
sbit L2=P3^1;
sbit L3=P3^2;
sbit L4=P3^3;
sbit L5=P3^5;
#define uchar unsigned char
#define uint unsigned int
uint time;
void Delay1ms() //@12.000MHz
{
unsigned char i, j;
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
}
void Key_select() //进行按键选择,不同的时间对应不同的按键按下
{ //,对不同的按键做出不同的处理
if(time>8&&time<12)
{L1=~L1;}
if(time>13&&time<17)
{L2=~L2;}
if(time>18&&time<22)
{L3=~L3;}
if(time>23&&time<27)
{L4=~L4;}
if(time>28&&time<32)
{L5=~L5;}
}
main()
{
while(1)
{
if(RX==0) //如果收到信号,time清零,重新计时
{
time=0;
while(RX==0) //收到信号时循环计时
{
Delay1ms();
time=time+1;
}
Key_select(); //按键选择程序
}
}
}
我是天才
发表于 2017-4-5 23:19:50
hong201305 发表于 2017-2-20 16:36
楼主能贴一下源码吗?谢谢啦
已经更新在31楼,有什么错误欢迎指正,共同学习
我是天才
发表于 2017-4-5 23:19:51
本帖最后由 我是天才 于 2017-4-5 23:24 编辑
hong201305 发表于 2017-2-20 16:36
楼主能贴一下源码吗?谢谢啦
详细的注释还是看萝莉的
我是天才
发表于 2017-4-5 23:19:51
本帖最后由 我是天才 于 2017-4-5 23:25 编辑
hong201305 发表于 2017-2-20 16:36
楼主能贴一下源码吗?谢谢啦
马上高考了,所以注释比较简略
我是天才
发表于 2017-4-5 23:19:51
本帖最后由 我是天才 于 2017-4-5 23:25 编辑
hong201305 发表于 2017-2-20 16:36
楼主能贴一下源码吗?谢谢啦
以后再好好编辑下注释
我是天才
发表于 2017-4-5 23:20:19
kingS 发表于 2017-4-3 22:39
有教程没?可以出来科普分享一下的
已更新在31楼
风之舞
发表于 2017-4-6 21:56:56
好漂亮啊。。。。学习中呢。。。
ldy7474
发表于 2017-4-7 13:48:59
顶楼主请教一下怎么用红外头发射8位ADC值?
川师鲤鱼
发表于 2017-4-8 06:32:51
不错不错 帮顶喽
zxy2266
发表于 2017-6-2 10:39:11
真是个天才啊,猪高考顺利