本帖最后由 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.html?mod=attachment&aid=MTQ4ODI2MHxhNjE0MDUxYWE0MDFmYjllZWVjMTBhN2I3MjRhYmQ2OXwxNzM4OTE2NTI5&request=yes&_f=.rar 整个项目的工程和接收和发送的CODE放在这里: https://bbs.21ic.com/forum.php?mod=attachment&aid=MTQ4ODI4NHwzNTJhYWZjY2QxYWZhZWEyZGZkZThlYzIzNjQ5N2IzMXwxNzM4OTE2NTI5&request=yes&_f=.rar
https://bbs.21ic.com/forum.html?mod=attachment&aid=MTQ4ODI5MHxhYTA5ZDc0YjVkNGUzZmQ1M2FkOWNkYzI4NDU3NDc4OXwxNzM4OTE2NTI5&request=yes&_f=.rar 最后总结一下: 1、 易码魔盒工具在初始化和驱动程序这块确实很方便,可以快速实现芯片配置。 2、 程序编辑提供了流程图式的编程,内建的函数直接拖拉,支持用户自定义。对工程师来讲,流程图再熟悉不过了。只不过还需要适应。 3、 整体界面还不够美观,形象还是很重要的,对于用户的第一感官而言 4、 提供的驱动还不是很多,不过里面提供用户自定义驱动,如果能形成开源的生态,大家不断去完善这个驱动库,相信未来我们就能像画PCB一样,拖动封装库里的器件到原理图就能实现整体的代码框架。 5、 目前来讲,完成度还所欠缺,比如说代码编辑功能没有。
最后,赛元作为一家国产厂商,能在代码生成这块有如此创新之举实属不易,值得点赞,希望赛元这个工具越做越好,造福广大工程师朋友!
|