音乐播放器的实现及lcd显示微机原理课程设计_第1页
音乐播放器的实现及lcd显示微机原理课程设计_第2页
音乐播放器的实现及lcd显示微机原理课程设计_第3页
音乐播放器的实现及lcd显示微机原理课程设计_第4页
音乐播放器的实现及lcd显示微机原理课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术课程设计报告题目音乐播放器的实现及LCD显示学院信息学院专业物联网班级2012240901学号201224090105姓名章杭目录1、课程设计任务及要求11课程设计题目12课程设计任务及要求2、课程设计相关知识218254芯片228255芯片2312864液晶3、程序设计思路31设计思路说明32电路图连接4、代码程序说明5、调试结果及分析6、总结与体会一、课程设计任务及要求11课程设计题目音乐播放器的实现12课程设计任务及要求要求用TCPZK实验箱及PC机的连接实现音乐播放功能,并在12864液晶屏上显示所放音乐的歌名。二、课程设计相关知识218254芯片8254由以下几个部分组成1数据总线缓冲器8位、三态、双向2读/写控制逻辑;CS片选信号,低电平有效;RD读信号,低电平有效;WR写信号,低电平有效A1A0端口选择信号3三个通道02;4一个控制寄存器8254芯片共有六种工作方式,分别对应与六种不同的用途。(1)方式0计数到0结束输出正跃变信号方式。(2)方式1硬件可重触发单稳方式。(3)方式2频率发生器方式。(4)方式3方波发生器。(5)方式4软件触发选通方式。(6)方式5硬件触发选通方式。其引脚图如下228255芯片8255是INTEL公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255有3个通道A、B、C,每个通道又有8根线与外设连接。8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图75所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下(1)A组控制器控制A口与上C口的输入与输出。(2)B组控制器控制B口与下C口的输入与输出。引脚功能RESET复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS芯片选择信号线,当这个输入引脚为低电平时,即/CS0时,表示芯片被选中,允许8255与CPU进行通讯/CS1时,8255无法与CPU做数据传输RD读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS0时,允许CPU将数据或控制字写入8255。D0D7三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种。PB0PB7端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。不能工作于方式二。PC0PC7端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。A1,A0地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器当A10,A00时,PA口被选择当A10,A01时,PB口被选择当A11,A00时,PC口被选择当A11A01时,控制寄存器被选择8255有三种基本的工作方式为方式0基本的输入输出,方式1选通输入输出方式,方式2双向传送方式。1工作方式0基本输入输出方式功能方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,无锁存,C口还具有按位将其各位清0或置1的功能。常用于与外设无条件的数据传送或接收外设的数据。2)工作方式1选通输入输出方式A口借用C口的一些信号线用作控制和状态信号,组成A组,B口借用C口的一些信号线用作控制和状态信号,组成B组。在方式1下,C口的某些位被占用。方式1的输出当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满OBF信号,PC6用作外设收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。当B口工作于方式L且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。3工作方式2双向输入输出方式功能方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。其引脚图如下2312864液晶12864液晶是一种统称,只说明类屏的一个特征,就是12864个点构成。对于液晶屏的特性则没有说明。带中文字库的128X640402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X640402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示三、程序设计思路31设计思路说明所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。各个音符的对应频率表音符频率/HZ半周期/US音符频率/HZ半周期/US低1DO26219084FA74006761DO2771805中5SO7840638低2RE29417005SO83106022RE3111608中6LA8800568低3M33015166LA9320536低4FA3491433中7SI98805064FA3701350高1DO10460478低5SO3921276DO110904515SO4151205高2RE11750426低6LA44011362RE124504026LA4661072高3M13180372低7SI4941012高4FA13970358中1DO52309564FA148003381DO5540903高5SO15680319中2RE57808425S0166102922RE6220804高6LA17600284中3M65907596LA18650268中4FA6980716高7SI19760253利用TCPZK实验箱上的8254芯片、8255芯片及LCD液晶屏,8254芯片作为声音驱动部分,8255连接喇叭,8254CLK0接1MHZ时钟,GATE0接8255的PC4,OUT0接与门输入端1,CS接280H287H,8255PC5接与门输入端2,CS接288H28FH,与门输出端接LBJD3用跳线端子接好。使用8253产生音符频率。8253采用方式3,产生方波信号,根据输入计数初值的不同产生不同频率的方波信号来驱动扬声器。设某音符频率为FHZ,而CLK脉冲是1MHZ,则计数初值N1M/F。8253的控制端口为28BH,控制字为36H。使用8255并行接口芯片来控制扬声器的开和关,PC0始终接低电平,PA0和8253的OUT0接在与门上,这样只有PA01时扬声器才有可能开通,否则不发声。关闭的方法是,从PC口读入数据再从PA口输出;而开扬声器时只要在输出PA口数据前对数据进行一个取反操作就可以了。32电路图连接4、代码程序说明DATASEGMENTIO8255CEQU28AHIO8255CTLEQU28BHIO8253AEQU280HIO8253BEQU283HIO_ADDRESSEQU288HTABLEDW262,294,330,347,392,440,494,524低音的MSGDBPRESS1,2,3,4,5,6,7,8,ESC,0DH,0AH,FREQDW262,262,294,262,392,262,262,294,262,392,294,262,262,524,440,347DW330,294,330,262,440,347,392,347,1HZ_TABDW0C9FAH,0C8D5H,0BFECH,0C0D6H,0B8E8H,00020H,00020H,00020HDW0C9FAH,0C8D5H,0BFECH,0C0D6H,0B8E8H,00020H,00020H,00020HHZ_ADRDB存放显示行起始端口地DATAENDSCODESEGMENTASSUMECSCODE,DSDATASTARTMOVAX,DATAMOVDS,AXMOVDX,IO_ADDRESSADDDX,3MOVAL,80HOUTDX,AL8255初始化MOVAL,0FFHMOVDX,300HOUTDX,ALCALLCLEARLCD清除CALLFUNCUPLCD功能设置MOVCH,88HMOVSI,0FLOWINCCHINCCHINCSIINCSILEABX,HZ_TABMOVCH,2显示第2行信息CALLLCD_DISPJMPFLOWLEABX,HZ_TABMOVCH,3显示第3行信息CALLLCD_DISPL1JMPSTART1L1CLEARPROCMOVAL,0CHMOVDX,IO_ADDRESSOUTDX,AL设置CLEAR命令CALLCMD_SETUP启动LCD执行命令RETCLEARENDPFUNCUPPROCMOVAL,0FHLCD功能设置命令OUTDX,ALCALLCMD_SETUPMOVAL,34HLCD显示状态命令OUTDX,ALCALLCMD_SETUPRETFUNCUPENDPLCD_DISPPROCLEABX,HZ_TABCMPCH,2JMPDISP_SECMOVBYTEPTRHZ_ADR,DL第三行起始端口地址INCDLADDBX,16指向第二行信息JMPNEXTDISP_SECMOVBYTEPTRHZ_ADR,CHNEXTMOVCL,8CONTINUEPUSHCXMOVAL,HZ_ADRMOVDX,IO_ADDRESSOUTDX,ALCALLCMD_SETUP设定DDRAM地址命令MOVAX,BXPUSHAXMOVAL,AH先送汉字编码高位MOVDX,IO_ADDRESSOUTDX,ALCALLDATA_SETUP输出汉字编码高字节CALLDELAY延迟POPAXMOVDX,IO_ADDRESSOUTDX,ALCALLDATA_SETUP输出汉字编码低字节CALLDELAYINCBXINCBX修改显示内码缓冲区指针INCBYTEPTRHZ_ADR修改LCD显示端口地址POPCXDECCLJNZCONTINUEMOVCX,24SINGMOVAX,4240H计数初值1000000/频率,保存到AXMOVDX,0FHDIVWORDPTRFREQSIMOVBX,AXMOVDX,IO8253B设置8254计时器0方式3,先读写低字节,再读写高字节MOVAL,00110110BOUTDX,ALMOVDX,IO8253AMOVAX,BXOUTDX,AL写计数初值低字节MOVAL,AHOUTDX,AL写计数初值高字节MOVDX,IO8255CTL设置8255C口输出MOVAL,10000000BOUTDX,ALMOVDX,IO8255CMOVAL,30HOUTDX,AL置PC1PC011开扬声器CALLDELAY1CALLDELAY1CALLDELAY1延时CALLDELAY1CALLDELAY1MOVAL,0HOUTDX,AL置PC1PC000关扬声器RETLCD_DISPENDPCMD_SETUPPROCMOVDX,IO_ADDRESS指向8255端口控制端口ADDDX,2NOPMOVAL,00000000BPC1置0,PC0置0(LCDI端0,W端0)OUTDX,ALCALLDELAYNOPMOVAL,00000100BPC2置1(LCDE端1)OUTDX,ALNOPCALLDELAYMOVAL,00000000BPC2置0,(LCDE端置0)OUTDX,ALCALLDELAYRETCMD_SETUPENDPDATA_SETUPPROCMOVDX,IO_ADDRESS指向8255控制端口ADDDX,2MOVAL,00000001BPC1置0,PC01(LCDI端1)OUTDX,ALNOPCALLDELAYMOVAL,00000101BPC2置1(LCDE端1)OUTDX,ALNOPCALLDELAYMOVAL,00000001BPC2置0,(LCDE端0)OUTDX,ALNOPCALLDELAYRETDATA_SETUPENDPDELAYPROCPUSHCXPUSHDXMOVCX,0FFFHX11LOOPX11POPDXPOPCXRETDELAYENDP/START1MOVAX,DATAMOVDS,AXMOVDX,OFFSETMSGMOVAH,9INT21H显示提示信息ADDSI,2ADDBX,2DECCXJNZSINGFINISHMOVAX,4C00HINT21HDELAY1PROCNEAR延时子程序PUSHCXPUSHAXMOVAX,15X1MOVCX,0FFFFHX2DECCXJNZX2DECAXJNZX1POPAXPOPCXRETDELAY1ENDPCODEENDSENDSTART五、调试结果及分析这是按照方案做的结果,播放“生日快乐歌”,但由于本组人对音乐都是外行,各音阶频率搭配不好,导致音乐严重走调,但基本能听出不是噪音,也能辨认出歌曲。歌名也能从屏幕飘出且逐行移动,但是无法达到按顺序的按行移动,这是由于LED显示屏地址的分布是1324下来的,最后我们还是没有达到1234按行移动的结果。6、总结与体会在这一周的实验过程中碰到了很多的难题和障碍,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论