带有音乐的背景图片.docx
- 文档编号:17189489
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:11
- 大小:72.80KB
带有音乐的背景图片.docx
《带有音乐的背景图片.docx》由会员分享,可在线阅读,更多相关《带有音乐的背景图片.docx(11页珍藏版)》请在冰点文库上搜索。
带有音乐的背景图片
第1章设计目的与要求
1.1设计目的
1.巩固SPLC501液晶显示模块的使用方法。
2.掌握显示动态图片并伴有音乐背景的方法。
1.2设计要求
1.编程要求:
主程序利用C语言编写。
2.实现功能:
图片显示配合背景音乐播放。
由于设计中要播放音乐,对音质的
要求比较高,所以本设计要求利用SACM_A2000格式播放音乐。
3.设计现象:
开机后显示图像ON_01接着按ON_01→ON_02→ON_03→ON_04→
ON_05→ON_06→ON_07→ON_08→ON_010的顺序循环显示动态图片,同时播放背
景音乐。
第2章设计装备与基本原理
2.1设计装备
1.装有Windows系统和µ’nSP™IDE仿真环境的PC机一台,µ’nSP™十六位
单片机试验箱一个。
2.本设计用到的试验箱硬件模块为:
SPCE061A核心及周边电路模块(包括32个
I\O口),两路音频输出电路,LCD显示模组模块。
2.2设计原理
SPLC501液晶显示模组采用的驱动控制芯片为凌阳科技的SPLC501A芯片,SPLC501A为液晶显示控制驱动器,SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。
微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。
SPLC501A内置8580位显示RAM。
RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态:
“1”亮“0”暗。
具有65行驱动输出和132列驱动输出(注:
模组中的液晶显示面板仅为64行、128列)。
SPLC501液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;SPLC501A芯片中共有65(8Page×8bit+1)×132位的显示RAM区。
而显示器的显示点阵大小为64×128点,所以实际上在SPLC501液晶显示模
组中有用的显示RAM区为64×128位;按byte为单位划分,共分为8个Page,每个Page为8行,而每一行有128位(即128列)。
本设计中,主循环中要先显示一帧或者几帧图象,而显示程序相对来说耗时较长;为了保证语音资源的及时获取,同时得到及时的解码,在设计当中利用IRQ4的1KHz中断用SACM_A2000_ServiceLoop()函数,主循环当中只进行刷新显示即可。
由于CPU处理的速度非常快,于是在视觉上,就会感觉到一个动态的图片并且配有音乐背景。
第3章程序设计
3.1硬件连接
如图1硬件连接图,IOA8-IOA15连接SPLC501液晶显示模块的D0~D7,IOB4连接AO,IOB5连接RWP,IOB6连接EP,RE连接/RES,IOB9连接/CS,VR、C86和PS跳线都与V3短接,把SPLC501液晶显示模组的时序选择为6800时序;即把JP6中所有左右两排的引针全部用跳线短接,把J8和J13靠左边的两个引针用跳线短接起来。
图1硬件连接图
图2主程序流程图
3.2程序流程图
主程序流程图如图2,初始化操作包括初始化LCD和初始化语音播放,语音播放初始化为自动播放方式;开IRQ4_1KHz中断,在1KHz中断当中完成语音的服务程序(SACM_A2000_ServiceLoop())调用,以及进行计数累加(定义有一个全局的变量,用于中断计时),响应300次IRQ4_1KHz中断的时间刚好是LC动态图片的显示刷新时间0.3s;显示第一帧图象,也就是ON_01图象。
调用SACM_A2000_Play函数播放语音;进入显示动态图片加背景音乐循环,按照设计要求顺序显示图片,刷新时间为0.3s,判断是否播放结束,如果播放结束,则停止播放后,调用SACM_A2000_Play函数循环播放,如果没有播放结束,清看门狗。
IRQ4_1KHz中断服务程序流程图如图3。
图3IRQ4_1KHz中断
3.3设计步骤
新建一个工程ex8_LCD_DynamicGraphicMusic,在新工程里建立一个C语言文件main.c。
(按照读者自己的编程习惯或者编程要求,可以根据实际情况自行定义更多的文件)。
在IDE的安装路径\SPCE061A\example\IntExa\ex8_LCD_DynamicGraphic
Music\pic路径下找到设计要求的9幅图片。
提取这9幅图片的字模数据,一次提取它们的全部图片,不需要一幅幅提取;字模文件保存在新建ex8_LCD_DynamicGraphicMusic工程文件夹当中,命名为PicData。
拷贝语音播放库sacmv26e.lib和头文件a2000.h、a2000.inc到新建的ex8_LCD_DynamicGraphicMusic工程文件夹。
拷贝支持sacmv26e.lib的汇编语言文件hardware.asm和头文件hardware.h、hardware.inc到新建的ex8_LCD_DynamicGraphicMusic工程文件夹。
拷贝SPLC501液晶显示DataOSforLCD.asm、SPLC501Driver_IO.asm、SPLC501Driver_IO.inc、SPLC501User.c和SPLC501User.h五个驱动程序文件
到新建的ex8_LCD_DynamicGraphicMusic工程文件夹。
在IDE集成开发环境的ProjectSettinglink中链接sacmv26e.lib库到新建的工程中。
链接库的方法见第二章设计一。
添加PicData.c、hardware.asm、DataOSforLCD.asm、SPLC501Driver_IO.asm和SPLC501User.c到新建的工程的“SourceFiles”,添加PicData.h、a2000.h、a2000.inc、hardware.h、hardware.inc、SPLC501Driver_IO.inc、SPLC501User.h六个头文件到“HeadFiles”。
按照程序流程图编写程序。
RebuildAll。
按照硬件连接图连接硬件。
注意JP3和JP7所有引脚全部断开,即把JP3和JP7的所有跳线全部拔掉,以免对I/O口的数据造成影响。
下载程序,运行。
根据设计现象,分析是不是和设计要求相统一。
第4章调试结果与分析
4.1调试结果
单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时才发现的。
但通常是先排除系统中明显的硬件故障后才和软件结合起来调试。
4.2硬件调试
1.常见的硬件故障:
(1)逻辑错误:
样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。
这类错误包括:
错线、开路、短路等几种,其中短路是最常见的故障。
在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。
(2)器件失效:
元器件失效的原因有两个方面:
一是器件本身已损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误,集成块安装方向错误等。
(3)可靠性差:
引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏;内部和外部的干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。
(4)电源故障:
若样机中存在电源故障,则加电后将造成器件损坏。
电源的故障包括:
电压值不符合设计要求,电源引出线和插座不对应,电源功率不足、负载能力差。
2.硬件调试方法:
(1)脱机调试:
脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。
应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路;或其它信号线的短路。
对于样机所用的电源事先必须单独调试,调试好后,检查其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。
在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。
(2)联机调试通过脱机调试可排除一些明显的硬件故障。
有些硬件故障还是要通过联机调试才能发现和排除。
联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。
一切正常,即可打开电源。
通电后执行开发机读写指令,对用户样机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用样机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形(如输出波形、读写控制信号、地址数据波形以及有关控制电平)。
通过对波形的观察分析,寻找故障原因,并进一步排除故障。
可能的故障有:
线路连接上有逻辑错误、有断路或短路现象、集成电路失效等。
在用户系统的样机(主机部分)调试好后,可以插上用户系统的其它外围部件如键盘、显示器、输出驱动板、A/D、D/A板等,再对这些部件进行初步调试。
在调试中若发现用户系统工作不稳定,可能有下列情况:
电源系统供电电流不够,联机时公共地线接触不良;用户系统主机板负载过大;用户系统各级电源滤波不完善等。
对于工作不稳定的问题一定要认真查出原因,加以排除。
4.3软件调试
软件调试方法:
软件调试与所选用的软件结构和程序设计技术有关。
如果采用模块程序设计技术,则逐个模块调好以后,再进行系统程序总调试。
如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。
对于模块结构程序,要一个个子程序分别调试。
调试子程序时一定要符合现场环境,即入口条件和出口条件。
调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。
通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。
在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。
各程序模块通过后,可以把各功能块联合起来一起进行整体程序综合调试。
在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。
若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。
待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要作适当修正。
对于实时多任务操作系统的调试方法与上述方法有很多相似之处,只是实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。
逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。
在全部调试和修改完成后,插入用户样机后,用户系统即能脱离开发机独立工作,至此系统研制完成。
结论与体会
设计结论:
1.设计中我遇到了进制转换问题和显示不清问题。
2.我采用的解决方法是自己手动计算2进制转16进制,由于只有学字显示比较乱,所以大体能看出所显示的是什么内容3.优缺点
3.此次设计的优点是编程简单,连接简单,不过缺点是需要手动计算进制转换,并且笔画较为繁冗的字很难在LED板上显示。
4.我提出的建议是将单片机的点位进行扩充,以实现多笔画字的显示,并且可以使单片机软件程序智能的对进制进行转换,除去繁冗的进制计算。
心得体会:
课程设计终于结束了,最初的目的是想学到一些对将来就业很有实质性帮助的东西。
结果还算可以接受,虽然说与预期的有不少出入,但锻炼自己这个主要目标算是达成了。
通过这次课程设计,我对如何完成一项实际的计划有了进一步的认识,对如何加强自己的合作能力有了更进一步的思考。
通过这次课程设计,我想下学期的毕业设计会少点困难,以后在工作中也能够有更多的经验好借鉴。
在这段日子里,我实践、思考、反思、总结,所得收获都已经成为大学生涯中的宝贵财富。
或许大学生活中的片断随着岁月的流逝难免被遗忘,但是这段课程设计的日子相信仍会是记忆深刻,它作为我们走向社会的第一步,承载了即将面对现实和挑战的心情,必将难忘。
参考文献
[1]于海生.微型计算机控制技术[M].清华大学出版社,1999-6.
[2]孙涵芳.MCS-51系列单片机原理及应用.北京航天大学出版社,1996-4.
[3]黄正瑾.综合电子设计与实践[M].东南大学出版社,2002-3.
[4]罗亚非.凌阳16位单片机应用基础.北京航空航天大学出版社,2005.
[5]参考网址
附录
#defineP_SystemClock(volatileunsignedint*)0x7013
#defineP_INT_Ctrl(volatileunsignedint*)0x7010
#defineP_INT_Clear(volatileunsignedint*)0x7011
#defineP_INT_Ctrl_New(volatileunsignedint*)0x702D
#defineP_Watchdog_Clear(volatileunsignedint*)0x7012
#include"PicData.h"
#include"SPLC501User.h"
#include"A2000.h"
constunsignedint*BMP_Cartoon3[]
{(unsignedint*)9,
(unsignedint*)encoding_00,
(unsignedint*)encoding_01,
(unsignedint*)encoding_02,
(unsignedint*)encoding_03,
(unsignedint*)encoding_04,
(unsignedint*)encoding_05,
(unsignedint*)encoding_06,
(unsignedint*)encoding_07,
(unsignedint*)encoding_09};
unsignedintIRQ1KHz_Couter;
intmain(void)
{unsignedintuiTemp;
inti=1;
LCD501_Init(0x0000);
SACM_A2000_Initial
(1);
LCD501_SetPaintMode(4);
uiTemp=*P_INT_Ctrl_New;...
uiTemp=uiTemp|0x0010;
*P_INT_Ctrl_New=uiTemp;
__asm("IRQON");
LCD501_Bitmap(16,0,(unsignedint*)BMP_Cartoon3[1]);
IRQ1KHz_Couter=0;
SACM_A2000_Play(0,3,3);
while
(1)
{
if(IRQ1KHz_Couter>=300)
{
IRQ1KHz_Couter=0;
LCD501_Bitmap(16,0,(unsignedint*)BMP_
Cartoon3[i]);
i++;
if(i==10)
{i=1;}}
if((SACM_A2000_Status()&0x0001)==0)
{SACM_A2000_Stop();
SACM_A2000_Play(0,3,3);}
*P_Watchdog_Clear=0x0001;}}
voidBMP_Play_IRQ_Service(void)
{IRQ1KHz_Couter++;
SACM_A2000_ServiceLoop();
}
voidIRQ4(void)__attribute__((ISR));
voidIRQ4(void)
{if(*P_INT_Ctrl&0x0010)
{*P_INT_Clear=0x0010;
BMP_Play_IRQ_Service();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 带有 音乐 背景图片