打印
[活动专区]

【赛元易码魔盒】8003实现红外遥控功能

[复制链接]
767|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 YanniChen 于 2020-7-15 10:41 编辑

之前上赛元的淘宝店买了一个8003的小板,这次活动又申请了一个,美滋滋。这次赛元推出了易码魔盒工具,听说有新的功能,准备做一个红外遥控器玩玩。
所用到的IC资源:
按键              :    P14(KEY1),P15(KEY2),P16(KEY3),电平有效
红外信号输出:    P24/PWM0,外接PNP三极管驱动IR LED
TIMER0          :   16uS定时器
INT0              :      STOP唤醒
安装软件什么的就不讲了,一次安装成功,也没遇到什么问题。
打开软件,快速查找SC92F8003,这个检索的方式还不错,可以快速找到芯片。选择8003。


开始项目,配置选择所需设置,按键是低电平有效,所以配置了3个按键的IO口为输入带上拉,P24使能了PWM功能。没其他需要配置了,这个过程连DATASHEET都不用看。
点击生成工程源代码,专心实现程序功能。画出流程图,图形化编程果然一目了然。Ps:通过函数à添加函数生成了4个函数


编写一个读按键的函数,当然要做下消抖。


添加一些全局的变量,直接按变量类型首字母,会有列表选择,这个挺方便的,有点类似其他编辑器的联想补全功能!


还可以在编辑函数时,同时把所需的全局变量添加进来。所见即所得!

重新生成工程源文件,编译,烧录,调试


双击可以修改控制节点、变量的内容


添加/修改功能函数、变量,重新生成工程源文件,编译,烧录,调试,直到完成整个功能。Ps:还可以根据需要随时修改IC的配置


附上红外码格式。(没有细调,由于程序控制节点的耗时会带来发射的红外码与描述有小小的偏差)。一顿操作之后,最终挂示波器,波形正常。


有发射怎能没接收。再接再厉,这次就熟能生巧。按下上面项目的KEY1,KEY2,KEY3,对应点亮LED1,LED2,LED3。
所用到的IC资源:
LED               :    P14(LED1),P15(LED2),P16(LED3),低电平有效
红外信号输入:    P24接红外接收头
TIMER0          :   64uS定时器

在Timer0中断里完成遥控接收头的高低电平的接收。因为魔盒没法在图形化编程界面加入注释,就单独放出来吧,下面是定时器的程序。
void Timer0Interrupt()         interrupt 1                     
{
    {
       IrPulseTime +=32;
       if(DelayResult!=0)         //持续按下按键计时,=0时遥控端已放开按键
       {
           DelayResult-=1;
       }
       if(IR==IrInput)
       {
           Debance  ++;
           if(Debance>=2)       //连续2次读入红外接收信号一致,为有效信号
           {
                if(IrInput==1)
                {
                    if(IrPulseStation==0)
                    {
                        IrPulseStation=1;
                        IrPulse_L=IrPulseTime;   //上升沿保存低电平的时间
                        IrPulseTime=0;
                    }
                }
                else
                {
                    if(IrPulseStation==1)
                    {
                        IrPulseStation=0;
                        IrPulse_H=IrPulseTime;  //下沿保存高电平的时间
                        IrPulseTime=0;
                        ReceiveFlag=1;//每次下降沿时,为接收到完整1个bit的电平
                    }
                }
           }
       }
       else
       {
           if(Debance>0) //如果前后两次电平不一致
           {
                Debance  --;
           }
       }
       IrInput  = IR;
    }
}

到这里,红外对发的功能就实现了,三个按键分别控制另外一个8003的三个灯。最终的效果如下:
录了个视频,放这里。
https://bbs.21ic.com/forum.php?mod=attachment&aid=MTQ4ODI2MHw2YWVhOWMxMzljODZlN2ZhZDQ5ZDcwOGYxNjMyMTk1M3wxNzE0NTQ0MDM2&request=yes&_f=.rar
整个项目的工程和接收和发送的CODE放在这里:
https://bbs.21ic.com/forum.php?mod=attachment&aid=MTQ4ODI4NHw1Y2NiOTdjNDJlODNjZjFlZWM3OGJjODkzYjRmNmZiNnwxNzE0NTQ0MDM2&request=yes&_f=.rar

https://bbs.21ic.com/forum.php?mod=attachment&aid=MTQ4ODI5MHxjZDcyMGE4ZjhkMDBmYWQ3MzZmOTg3ODY2MTZmY2JhZXwxNzE0NTQ0MDM2&request=yes&_f=.rar
最后总结一下:
1、 易码魔盒工具在初始化和驱动程序这块确实很方便,可以快速实现芯片配置。
2、 程序编辑提供了流程图式的编程,内建的函数直接拖拉,支持用户自定义。对工程师来讲,流程图再熟悉不过了。只不过还需要适应。
3、 整体界面还不够美观,形象还是很重要的,对于用户的第一感官而言
4、 提供的驱动还不是很多,不过里面提供用户自定义驱动,如果能形成开源的生态,大家不断去完善这个驱动库,相信未来我们就能像画PCB一样,拖动封装库里的器件到原理图就能实现整体的代码框架。
5、 目前来讲,完成度还所欠缺,比如说代码编辑功能没有。

最后,赛元作为一家国产厂商,能在代码生成这块有如此创新之举实属不易,值得点赞,希望赛元这个工具越做越好,造福广大工程师朋友!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

62

帖子

0

粉丝