本帖最后由 jinglixixi 于 2020-8-6 21:38 编辑
SC95F8616开发板是一个核心板式的最小系统,因此它的资源是全部向外敞开的。基于此这里就将它与OLED屏、软按键、MP3播放模块等组合在一起,来构建一个具有中文歌曲选择播放功能的播放器,其构成如图1所示。 图1 硬件构成
在程序设计方面,采用易码魔盒来开发,所涉及内容有OLED驱动函数的构建、按键的菜单选择及MP3的功能选择、串行通讯及MP3的指令发送等。 1.创建新工程 1)进入易码魔盒后,创建一个新工程。 2)将芯片型号设为“SC95F8616”,然后单击“开始项目”。 3)在芯片配置视图,按图2进行引脚配置,并按图3来设置UART0选项,按图4来设置独立按键选项。
图2 引脚配置
图3 UART0设置
图4 独立按键设置
这样就形成了,以P20为串行通讯的接收端,P21为串行通讯的发送端;以P07为按键的公共GND;以P12为OLED屏的数据端,P1 3为OLED屏的时钟端的引脚分配布局。 4)点击“生成工程源代码”, 则在“工程代码”栏可见到生成的内容,其程序结构和程序如图5所示。
图5 程序结构和初始化程序
2.实现串行通讯 1)完成变量的添加 2)在用户程序图形化编辑视图,完成图6所示流程,并对条件控制语句加以配置。
图6 程序流程
图7 配置条件控制语句
3)点击“生成工程源代码”, 则可得到图7所示的主程序和串行通讯中断处理服务程序。 图8 生成代码
4)点击“编译”工具图标,完成代码编译后如图9所示。 图9 完成编译
5)点击“烧录”工具图标,完成程序下载后如图10所示。 图10 执行下载
6)在串行通讯验证前,先将P21和P20分别与串口通信模块的RXD和TXD引脚连接。 打开串口调试工具并进行相应的设置后,发送数据,则可见到相应的接收数据,说明通讯正常,见如图11所示。 图11 串口通信验证
7)发送字节数据的功能实现,首先定义变量n,以便存放发送的字节内容。
8)添加2个功能函数,其内容如下: void delay(unsignedint z) { unsignedint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void SendByte(uint8_tData) { SBUF = Data; delay(60); }
9)按图12所示,添加自定义函数。 图12 添加自定义函数
10)完成如下主程序的修改,并加以编译。下载后运行的结构如图15所示。 图13修改主程序
图14 生成的主程序
图15 运行结果
|