搜索
bottom↓
回复: 601

[原创]发个32按键的红外键盘,只占用一个I/O口,附原理图,keil工程,红外编码资料,有实

  [复制链接]

出0入0汤圆

发表于 2008-5-2 15:00:12 | 显示全部楼层 |阅读模式
上图:(这是红外键盘的实物图.)

(原文件名:1.jpg)


(原文件名:2.jpg)


(原文件名:1.JPG)


(原文件名:2.JPG)


(原文件名:3.JPG)
这是去年做的一个东东,由于在系统中I/O严重不够用,所以想到这个方法:红外键盘

通常我们在51单片机系统中,要用到多个按键时,差不多都是采用的矩阵键盘,这是种比较浪费IO的做法;
这里的红外键盘,32个按键却只占用一个I/O口,(这个I/O可以是中断引脚,也可以是一般IO,不过实际验证中发现:接中断管脚时,解码比较可靠,基本不会出错)
当然,更换我电路中采用的编码芯片后,可以扩展至64个按键.

解码效果很好,由于我的红外发射管没有用什么东西遮挡,所以红外键盘即使背向红外接收头,也能正确解码.

具体操作时,使用红外键盘发般红外信号,同一个一体化红外接收头将接收到的信号送至单片机中断引脚,由单片机完成软件解码
解出按键值(单片机部分只接了一个红外一体化,图就不画了,呵呵),同时单片机将解出的按键值通过串口发送,
如果你的单片机串口接PC了的话,可用串口软件在电脑上观察按键值.
解码都没有问题时,就可以在这个红外键盘的基础上扩展其它功能了,呵呵

另:刚开始准备这个红外键盘时,采用的是采用专门的编码解码芯片的,然后有一个振荡器产生载波,将信号调制再发射,
可是实验N次,效果都不理想,而且电路太死板,没有可玩性.
后来在一个很旧的功放机上发现了这个芯片,查得资料,所以有了这个设计.
如果在单片机的IO上加上三极管,驱动继电器,即可构成32路红外遥控了

这是电路中的红外编码芯片的编码波形:

(原文件名:PT2221编码波形.jpg)

下面是在示波器上实测的红外编码波形:

(原文件名:红外pt2221.jpg)

这是原理图(PDF)
点击此处下载 ourdev_263596.pdf(文件大小:23K) (原文件名:IR.pdf)

这是用51单片机对该红外键盘解码的keil工程
汇编的:
点击此处下载 ourdev_263597.rar(文件大小:15K) (原文件名:红外--PT2221--asm--V1.0.rar)

C的:
点击此处下载 ourdev_263598.rar(文件大小:25K) (原文件名:红外--PT2221--c--1.rar)

个人感觉有点用途,发出来,欢迎大家拍砖~/\~

出0入0汤圆

 楼主| 发表于 2008-5-2 15:04:17 | 显示全部楼层
还有一点要说明的是:
红外编解码,关键是延时要控制好,精确到uS才可以,我当时调这个程序时,汇编一天就搞定了(大家不要笑,比较笨),C的话,两天才搞定,
主要问题就是那个延时没处理好.

红外解码要求有精确的延时,上面的程序中我给出了两种精确延时的方法,都是用keil仿真得出的,算是比较精确了.
一.用 for 循环和 _nop_ 配合实现的精确延时
//****************882us********************
void delay882us(void)
{
        uchar i;
        for(i=0;i<202;i++)
        {
                _nop_();
        }
}
//****************4740us*******************
void delay4740us(void)
{
        uint j;
        for(j=0;j<670;j++)
        {
                _nop_();
        }
}
//*************1000us**********************
void delay1000us(void)
{
        uchar k;
        for(k=0;k<230;k++)
        {
                _nop_();
        }
}

二.用 while(--i) 实现的精确延时
//******************************************
void delay16(unsigned int i)
{
while(--i);
}
//******************************************
void delay882us(void)
{
delay16(100);
}
//******************************************
void delay1000us(void)
{
delay16(115);
}
//******************************************
void delay4740us(void)
{
delay16(546);
}

实际使用时,任意一个均可成功解码.

电路中还设置了用户加密,就是图中最左边的双排针,跳线冒跳到不同的位置表示不同的用户,接收端解码时,
要知道相应的加密信息才可以成功解码.

这个用户加密的校验有8位,所以同一个房间里,可同时有256个这种红外键盘工作而不会相互影响...

出0入0汤圆

 楼主| 发表于 2008-5-2 16:33:07 | 显示全部楼层
NND,太不给面子了,无人问津...让人心寒啦

出0入0汤圆

发表于 2008-5-2 16:39:36 | 显示全部楼层
顶一下~呵呵~不知道楼主买的那个HT6221多少钱一片?

出0入0汤圆

 楼主| 发表于 2008-5-2 17:12:48 | 显示全部楼层
回3楼,6221和2221是完全兼容的,这个IC在比较老点的功放等电器上都有,
我我是在旧电器上拆的,呵呵
如果你没有这样的旧电器可以拆,可以到电子市场去买,我在电子市场问过,
很便宜,就两三块钱而以,还是很化算的...

出0入0汤圆

发表于 2008-5-2 17:15:51 | 显示全部楼层
呵呵,东西发在这一般人都比较少,帮你顶一下

出0入0汤圆

发表于 2008-5-2 17:19:18 | 显示全部楼层
如果是这样不如就直接用个遥控器更加方便

出0入0汤圆

 楼主| 发表于 2008-5-2 17:23:44 | 显示全部楼层
TO:6楼
这个和遥控器是一个原理
直接用遥控器的话,如果你不知道遥控器的编码芯片是什么样的?(现在的遥控器通常用黑胶封装,看不到型号)
这样是比较麻烦的,解码有困难.

这个红外键盘的话,重点不是这个键盘的电路设计,你完全可以用一个遥控器代替,重点是与大家分享红外解码的程序,

出0入0汤圆

发表于 2008-5-2 18:29:46 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2008-5-2 18:50:52 | 显示全部楼层
顶一下
下次估计有人自己做遥控了

出0入0汤圆

发表于 2008-5-2 19:06:54 | 显示全部楼层
不错啊

出0入0汤圆

 楼主| 发表于 2008-5-3 12:23:01 | 显示全部楼层
已更新主楼照片,把用红外键盘时的效果也加上了,昨晚拍的.

现帖上部分源码(全部源码主楼已上传),程序的注释再详细不过了...

一.主程序:
***********************************************************************************************/
#include<PT2221.h>
//************************主程序***********************************
void main (void)  
{
        uint di;
        InitCom(); //初始化串口
        EA=1;
          EX0=1;                   // 设定接受INT0的中断
        IT0=1;
          ComOutChar(1);        //向串口发送 1 ,表示串口正常工作
        do
        {
                P37=~P37;        //工作指示灯,这个LED闪烁表示主程序在运行
                for(di=0;di<1000;di++)
                {
                        delay1000us();
                }
        }while(1);
}
//*******************外部中断0 红外解码程序****************************************
static void decode(void) interrupt 0 using 2
{
        unsigned char IRCode[4]={0,0,0,0};
        unsigned char count0,count1,count2;
        unsigned char m;
        EX0 = 0; //外部中断0关闭
        for(count0=0;count0<10;count0++)        //起始码前9ms的低电平
        {
                delay882us();
                if(P32) goto exit;        //9ms没完就出来高电平则为干扰信号,跳出中断(退出解码)
        }
        if(!P32)        //低电平没完
        {
                delay4740us();        //9ms没结束再延时4740us,加上前面的8820us,已跳过起始码的13.5ms
                for(count1=0;count1<4;count1++)        //开始读数据,4个字节,32位
                {
                        for(count2=0;count2<8;count2++)        //每个字节8位
                        {
                                while(!P32);        //等待高电平到来
                                delay882us();
                                if(P32)        //延时882us后,若P32还是高电平,则为 位1
                                        {
                                                IRCode[count1]=IRCode[count1]>>1;
                                                IRCode[count1]=IRCode[count1]|0x80;
                                                delay1000us();        //延时1000us,结束高电平
                                        }
                                else        //延时882us后,若P32为低电平,则为 位0
                                {
                                        IRCode[count1]=IRCode[count1]>>1;
                                        IRCode[count1]=IRCode[count1]|0x00;
                                }
                        }
                }        //到这里已读完所有32位数据
                if ((IRCode[0]==0x00)&&(IRCode[1]==0xff))        //判断用户码和用户反码是否正确
                {
                        if (IRCode[2]==~IRCode[3])        //数据校验
                        {
                                //ComOutChar(IRCode[0]);
                                //ComOutChar(IRCode[1]);
                                ComOutChar(IRCode[2]);        //串口发送数据码
                                //ComOutChar(IRCode[3]);
                                P36=0;                                        //解码成功后led闪烁一次
                                for(m=0;m<100;m++)
                                {
                                        delay1000us();
                                }
                                P36=1;
                                if(IRCode[2]==0x01)
                                {
                                        P35=~P35;                        //这里可加入控制命令,比如这里的当解码为01时取反P35
                                        for(m=0;m<100;m++)
                                        {
                                                delay1000us();
                                        }
                                }
                        }
                }
        }
exit:
        EX0 = 1;       
}

二.
//****************************************
//        红外解码的配置文件
//****************************************
#include<reg51.h>
#include<intrins.h>

//*****************************************
#define uchar unsigned char
#define uint unsigned int

//************函数申明*********************
void InitCom(void);                //串口初始化
void ComOutChar(unsigned char OutData);        //从串口输出一个字符
void delay882us(void);        //精确延时882us
void delay4740us(void);        //精确延时4740us
void delay1000us(void);        //精确延时1000us

//*************用到的I/O口定义**************
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;        //INT0,红外信号输入
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;

三.nop延时
#include<PT2221.h>

//*****************************************
//        用 for 循环和 _nop_ 配合实现的精确延时
//*****************************************
//****************882us********************
void delay882us(void)
{
        uchar i;
        for(i=0;i<202;i++)
        {
                _nop_();
        }
}
//****************4740us*******************
void delay4740us(void)
{
        uint j;
        for(j=0;j<670;j++)
        {
                _nop_();
        }
}
//*************1000us**********************
void delay1000us(void)
{
        uchar k;
        for(k=0;k<230;k++)
        {
                _nop_();
        }
}

四.while延时
#include<PT2221.h>
/*
//******************************************
//        用 while(--i) 实现的精确延时
//******************************************
//******************************************
void delay16(unsigned int i)
{
while(--i);
}
//******************************************
void delay882us(void)
{
delay16(100);
}
//******************************************
void delay1000us(void)
{
delay16(115);
}
//******************************************
void delay4740us(void)
{
delay16(546);
}
*/

五.串口发送解码结果到PC
#include<PT2221.h>
//***************************************************************
//向串口输出一个字符(非中断方式)
//***************************************************************
void ComOutChar(unsigned char OutData)
{
        SBUF = OutData; //输出字符
        while(!TI); //空语句判断字符是否发完
        TI = 0; //清TI
}
//****************************************************************
//串口初始化 晶振为11.0592M 方式1 波特率9600
//****************************************************************
void InitCom(void)
{
        SCON = 0x50; //串口方式1,允许接收
        TMOD = 0x21; //定时器1定时方式2,定时0为模式1,16位模式
        TH1 = 0xFd;        //设波特率为9600
        TL1 = 0xFd;
        PCON = 0x00; //波特率不加倍控制,SMOD为0
        RI = 0;        //清收发标志
        TI = 0;
        TR1 = 1; //启动定时器
}

出0入0汤圆

发表于 2008-5-3 12:37:54 | 显示全部楼层

(原文件名:11.JPG)

解码的话以前照着别人做了这样个东西.还是蛮好用的.连上电脑对着电脑一照就好了..

出0入0汤圆

 楼主| 发表于 2008-5-3 12:45:02 | 显示全部楼层
TO:【12楼】 litchiate 草真多
这个东西是磁动力上发布的吧?我以前也做过,不过一直不成功,采集不到编码的波形

所以后来直接用示波器测的波形,测出脉冲的时间,然后解的码,太麻烦了...

出0入0汤圆

发表于 2008-5-3 18:30:07 | 显示全部楼层
Mark

出0入0汤圆

发表于 2008-5-4 18:47:10 | 显示全部楼层
呵呵,东西发在这一般人都比较少,帮你顶一下

出0入0汤圆

发表于 2008-5-4 20:06:55 | 显示全部楼层
很好,顶!

出0入0汤圆

 楼主| 发表于 2008-5-4 23:02:08 | 显示全部楼层
TO:【15楼】 yjs86903

东西放在这里确实不引人注意,

即使有照片,有原理图,有源代码...

出0入0汤圆

发表于 2008-5-5 09:06:12 | 显示全部楼层
其实,,,你的程序很多人都会看,,,很有帮助,,只是大部分人,,,没有留言吧,,,
不过这对你不是很重要吧,,,重要的是你可以让别人学到不少东东呕,,,,

出0入228汤圆

发表于 2008-5-5 11:03:22 | 显示全部楼层
呵呵,好象你们忽略了一点:红外有红外的2262-IR,有38K载波的.

有了载波,一体接收头才能收到信号.

出0入0汤圆

发表于 2008-5-5 12:19:42 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-5-5 12:47:25 | 显示全部楼层
楼主啊,太感谢你了。正在考虑这个问题呢。。。

出0入0汤圆

发表于 2008-5-5 12:59:25 | 显示全部楼层
非常感谢楼主,下载学习。

出0入0汤圆

发表于 2008-5-5 14:44:40 | 显示全部楼层
其实用avr的脉冲捕捉引脚更好做,直接能得出脉宽,不用软件延时

出0入0汤圆

发表于 2008-5-5 20:35:43 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2008-5-5 20:43:33 | 显示全部楼层
支持,学习

出0入0汤圆

 楼主| 发表于 2008-5-5 22:33:47 | 显示全部楼层
TO:【19楼】 wxws
红外确实有2262_IR,我当时还考虑过这样做,不过市场上卖的一般都是普通的2262,不能作为红外发射之用

出0入0汤圆

发表于 2008-5-6 09:53:18 | 显示全部楼层
顶一下,以后会用得着的

出0入0汤圆

发表于 2008-5-6 10:28:07 | 显示全部楼层
顶~~~~~~~~~~~

出0入0汤圆

发表于 2008-5-6 11:02:05 | 显示全部楼层
顶贴,这个是NEC 协议是吧,我还没搞过红外

楼主程序精辟,思路清晰,结构明了,连我这个从未玩过红外的菜到晕也看明白了,楼主是个人才,望楼主今后多出些精品,说不定哪天莫老大也给你开个专栏

出0入0汤圆

发表于 2008-5-6 15:43:53 | 显示全部楼层
我喜欢,mark here

出0入0汤圆

 楼主| 发表于 2008-5-6 23:29:04 | 显示全部楼层
【29楼】 lionliu
过奖了,我写程序,为了方便以后使用,一般都有详细的注释,这样比较容易读一些...

出0入0汤圆

发表于 2008-5-7 22:51:16 | 显示全部楼层
不错,很感兴趣。

出0入0汤圆

发表于 2008-5-8 09:21:49 | 显示全部楼层
支持下

出0入0汤圆

发表于 2008-5-8 09:42:11 | 显示全部楼层
很不错

出0入0汤圆

发表于 2008-5-8 13:35:25 | 显示全部楼层
看看,我也要做个单片机红外通信,可以参考下

出0入0汤圆

发表于 2008-5-8 16:44:06 | 显示全部楼层
6221这片子难买不???
楼主有没测过工作电流和静态电流有多大??

出0入0汤圆

 楼主| 发表于 2008-5-8 22:52:21 | 显示全部楼层
【36楼】 pcwinner
HT6221和PT2221完全兼容,在卖红外的地方有卖

工作电流和静态电流没测过,这个电路去掉3.3V的稳压芯片,直接用两节干电池供电时,

和家用遥控器效果是一样的,很省电的.

出0入0汤圆

发表于 2008-5-8 23:40:49 | 显示全部楼层
很好。谢谢楼主提供如此好的设计。

出0入0汤圆

发表于 2008-5-10 09:56:45 | 显示全部楼层
很不错,顶一下,学学!!

出0入0汤圆

发表于 2008-5-10 14:29:54 | 显示全部楼层
比较棒,谢谢分享!!

出0入0汤圆

发表于 2008-5-10 16:07:01 | 显示全部楼层
to 【13楼】 xingzhang 阿兴
恩,就是那里找来的。用了下就成功了。 红外到现在还没怎么用过了,除了刚刚完成解码时,把简单钟的调试给做了下。

出0入0汤圆

发表于 2008-5-13 09:15:38 | 显示全部楼层
好东西!谢谢LZ!

出0入0汤圆

发表于 2008-5-13 09:54:41 | 显示全部楼层
非常感谢!辛苦了!顶

出0入0汤圆

发表于 2008-5-18 10:04:12 | 显示全部楼层
非常感谢楼主!

出0入0汤圆

发表于 2008-5-18 14:41:01 | 显示全部楼层
好贴,严重顶一下。楼主还有其它好东西要分享的吗

出0入0汤圆

 楼主| 发表于 2008-5-18 22:59:24 | 显示全部楼层
【45楼】 rifjft 吝啬
东西还有蛮多,不过都是几年前的作品,最近没什么作品
如果大家喜欢,稍后也发上来

出0入0汤圆

 楼主| 发表于 2008-5-18 23:01:44 | 显示全部楼层
另:由于以前主要玩51,作品主要以51为主,楼主位的图即用的philip的P89V51RD2
64K的flash,1K RAM

出0入0汤圆

发表于 2008-5-19 17:34:32 | 显示全部楼层
酷,以前也做过一点点的红外,不过很简单,没有用到编码的 !
一直没有时间接着往下做

出0入0汤圆

发表于 2008-5-25 13:18:09 | 显示全部楼层
楼主真的好强啊,佩服啊,你qq是多少,想向你学习

出0入0汤圆

发表于 2008-5-25 13:20:10 | 显示全部楼层
我的是362737683

出0入0汤圆

 楼主| 发表于 2008-5-26 13:28:30 | 显示全部楼层
【49楼】 manniuniu
积分:2
派别:
等级:------
来自:
楼主真的好强啊,佩服啊,你qq是多少,想向你学习

积分2,不是故意注册个ID拿我开涮吧?
这个东西微不足道,坛子里强人一大把一大把的,我只是菜鸟级别而以,
要想真学到东西最好跟他们混吧

出0入0汤圆

发表于 2008-5-26 15:39:39 | 显示全部楼层
非常好!狂顶一下!

出0入0汤圆

发表于 2008-5-26 18:15:15 | 显示全部楼层
红外的编码规则是什么呢?  单片机读出信号脉冲后怎么计算出相应的码值呢?

出0入0汤圆

发表于 2008-5-26 18:52:09 | 显示全部楼层
好!这个东东很好!多谢楼主。

出75入4汤圆

发表于 2008-5-28 13:33:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-5-28 22:58:45 | 显示全部楼层
楼主有QQ吗?
我是一个什么都不懂的
很想学就是没人教
有些东西看了半天都不知道
我想有人说一下会很快懂的

出0入0汤圆

发表于 2008-5-29 21:58:35 | 显示全部楼层
帮顶..

出0入0汤圆

发表于 2008-5-30 15:27:09 | 显示全部楼层
不错,顶,学习了不少

出0入0汤圆

发表于 2008-5-30 16:32:29 | 显示全部楼层
P89V51RD2 ,以前也用过,不过好像比较贵。32k的吧,或者我记错了,不过用keil 51好像很省程序空间。

出0入0汤圆

发表于 2008-5-30 22:13:49 | 显示全部楼层
不错,有创意!

出0入0汤圆

 楼主| 发表于 2008-5-31 01:24:44 | 显示全部楼层
【59楼】 R28FA
64K的

出0入0汤圆

发表于 2008-5-31 02:14:30 | 显示全部楼层
程序架构有待改进

有兴趣的话,可以去看看傻孩子的一些帖子

进一步可以看51分时系统的书

出0入0汤圆

发表于 2008-5-31 11:37:34 | 显示全部楼层
你这个红外接收解码这部分抗干扰怎么样。发现红外干扰问题比较突出。容易出现解码错误。

出0入0汤圆

 楼主| 发表于 2008-5-31 13:57:59 | 显示全部楼层
【62楼】 dvhome  
程序架构方面,我没有刻意注意过,目前采用这种方式我比较习惯而已
当然也得不断学习,来改进

【63楼】 mahui625  
搞干扰不错,在红外接收头的电源上加退耦电容效果更好,基本不会出现解码错误

出0入0汤圆

发表于 2008-5-31 15:00:21 | 显示全部楼层
太牛啦,谢谢分享!!

出0入0汤圆

发表于 2008-5-31 15:49:38 | 显示全部楼层
“积分2,不是故意注册个ID拿我开涮吧?”
支持下开源。我的积分够你满意不?要实在不行,得阿莫来他的积分绝对不“开涮”。

出0入0汤圆

发表于 2008-5-31 20:53:30 | 显示全部楼层
呵呵,喜欢开源,喜欢原创

出0入0汤圆

发表于 2008-5-31 20:53:31 | 显示全部楼层
支持楼主开源。到是楼主为了这个专门做了pcb啊,羡慕啊!

出0入0汤圆

发表于 2008-5-31 22:43:09 | 显示全部楼层
挺好的东西啊,,顶了。。

出0入0汤圆

发表于 2008-6-8 11:34:35 | 显示全部楼层
一个字。“顶”

出0入0汤圆

发表于 2008-6-9 00:22:39 | 显示全部楼层
哈哈   弄了好久的红外解码   还稀里糊涂的   终于在您这找到希望啦

出0入0汤圆

发表于 2008-6-9 00:33:39 | 显示全部楼层
“电路中还设置了用户加密,就是图中最左边的双排针,跳线冒跳到不同的位置表示不同的用户,接收端解码时,
要知道相应的加密信息才可以成功解码.

这个用户加密的校验有8位,所以同一个房间里,可同时有256个这种红外键盘工作而不会相互影响...”
不好意思,我是初学单片机的,你这里的双排排针是怎么接线的?我有点疑问,能帮我解答下吗?

出0入0汤圆

发表于 2008-6-9 00:45:58 | 显示全部楼层
再问一个问题  JP1中的1和2可以直接相连的吧??
8个二极管连出来的C1到C8和矩阵键盘连出来的C1到C8都是连到PT2221上的C1到C8的,是这样吗???

出0入0汤圆

发表于 2008-6-9 12:12:57 | 显示全部楼层
我查了一下  pt2221的引脚图和upd6121是一样的,应该可以互换的吧?
还有就是,你的原理图上的jp2中的连线怎么连的???还是直接不连的,用到时候可以用杜邦线来连接??但是这样的话,AIN就一条线接出去就没用了....谁能给我解释下,不胜感激啊。。。。。

出0入0汤圆

 楼主| 发表于 2008-6-10 23:13:53 | 显示全部楼层
【74楼】 xb_crazyman
JP1为电源接线端;
JP2一般情况下不接,用到时用跳线帽选择要用的跳,它的主要作用就是设置用户加密位,所以AIN脚并不是没用

出0入0汤圆

发表于 2008-6-11 08:50:18 | 显示全部楼层
顶,正准备搞红外编码

出0入0汤圆

发表于 2008-6-11 20:04:37 | 显示全部楼层
xingzhang 阿兴
呵呵,弄懂了,谢谢哦。。。。。

出0入0汤圆

发表于 2008-6-11 20:11:39 | 显示全部楼层
留个记号吧!

出0入0汤圆

发表于 2008-6-15 23:19:27 | 显示全部楼层
顶上

出0入0汤圆

发表于 2008-6-17 12:20:48 | 显示全部楼层
这篇文章应该置顶的。。。。。。。。。。。

出0入0汤圆

发表于 2008-6-18 22:52:53 | 显示全部楼层
这的确是个很好的方案。

出0入0汤圆

发表于 2008-6-20 13:39:40 | 显示全部楼层
好东东,顶顶顶

出0入0汤圆

发表于 2008-6-21 23:29:08 | 显示全部楼层
看了 收获很大 暑假电子竞赛的时候 再仔细看

出0入0汤圆

发表于 2008-6-22 19:44:27 | 显示全部楼层
不明白楼主干吗不用现成的红外遥控器?
用示波器测试一体化接收头很容易捕捉编码信息的。
从成本上说,还不如扩展I/O来做按键,这样成本低开发更容易。

出0入0汤圆

 楼主| 发表于 2008-6-23 22:12:51 | 显示全部楼层
【84楼】 gx_huang
从成本上来说,买个MP3那么便宜,为什么还要自已做MP3呢?看来你不懂!

出0入0汤圆

发表于 2008-6-23 23:08:56 | 显示全部楼层
顶顶

出0入0汤圆

发表于 2008-6-26 22:34:17 | 显示全部楼层
To 85楼:
成本当然重要了,如果是学习的话可以这么做。
其实99年的时候我就用AVR8515+MP3解码芯片(型号忘了)+DAC+NAND做过MP3。
可是这玩意无法上市卖呀,价格贵、耗电大。哪有现在方便,单芯片就实现了,耗电小。

举例你用专门高精度ADC+MCU来采样温度信号,这个电路谁都会设计。
但是市场上的温控仪表很少这么做,人家即不用ADC芯片,也不用内置ADC的MCU,用普通的MCU就实现了。
那才是技术人员追求的目标。

出0入0汤圆

发表于 2008-6-26 22:42:49 | 显示全部楼层
呵呵,原来85楼是楼主,失礼了!

想起来了MP3芯片好像是STA013的。

出0入0汤圆

发表于 2008-6-27 10:17:26 | 显示全部楼层
楼主再接再厉!

出0入0汤圆

发表于 2008-6-28 08:09:50 | 显示全部楼层
顶!!!!!!!!!!

出0入0汤圆

发表于 2008-7-10 23:20:19 | 显示全部楼层
正在关注红外线解码这部分.多谢

出0入0汤圆

发表于 2008-7-11 15:52:32 | 显示全部楼层
IR

Mark

出0入0汤圆

发表于 2008-7-11 22:21:19 | 显示全部楼层
有创意,建议置顶,目的就是要交流和学习。

出0入0汤圆

发表于 2008-7-15 22:02:25 | 显示全部楼层
貌似我已经顶过贴了,但是还想顶一下,正在做一个单片机读ps2键盘数据,然后红外发射给另一个单片机,另一个单片机模拟ps2键盘,嘎嘎,主要是想实现红外无线键盘,效果如何不知道,刚刚12买了一个ps2的键盘,学习了他人的ps2读键盘,正好可以借鉴借鉴你的红外的程序,完成发射接受,嘎嘎。

出0入0汤圆

发表于 2008-7-16 12:23:42 | 显示全部楼层
顶你一下 参考

出0入0汤圆

发表于 2008-7-17 08:26:21 | 显示全部楼层
真是好东西.多谢楼主的奉献

出0入0汤圆

发表于 2008-7-17 11:13:24 | 显示全部楼层
东西放在这里确实不引人注意,

即使有照片,有原理图,有源代码...

出0入0汤圆

发表于 2008-7-19 13:06:59 | 显示全部楼层
以前做过红外转发的东西,用485总线可以互传红外信号啊!
哈哈!
有兴趣可以一试哦!

出0入0汤圆

发表于 2008-7-23 14:00:33 | 显示全部楼层
好东西,学习一下很好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 11:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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