《电子发声实验课程设计.docx》由会员分享,可在线阅读,更多相关《电子发声实验课程设计.docx(11页珍藏版)》请在第壹文秘上搜索。
1、微机原理课程设计课题:电子发声设计实验专业:学号:姓名:一、课题名称及设计组成员课题名称电子发声设计实验设计人姓名学号分工程序设计及调试线路连接及查错报告日期二、课题内容及要求课题名:电子发声设计实验1、要求:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。要求至少要完成以下工程的一项(1) 可播放两首不同的乐曲(2) 根据不同的按键播放不同的音乐(3) 可改变音乐的音调(4) 可显示播放乐曲的名称2、所设计的电路实现的功能:设计中完成了实验要求中提出的要求。设计中实现了,用按键进行随时切换两首音乐(友谊地久天长,两只老虎)和对所播放的当前音乐进
2、行两种不同音调(中音和低音)的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K用于对当前播放音乐的音调进行选择。设计中还实现了对16X16的1.ED管的控制运用点阵汉字输出歌名。三、方案、系统组成框图和工作原理说明I、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。音乐名XD0DO鼓PAXD77-0-D7妤PAXAzSSko三键盘扫描5H-ICWIeR#IOYO_V为00?NKO、Kl为01?N-按-三A颦友谊地;播放两只老虎低调的输出为利用总线对16X16点阵地控制来实现。(1)本设计中PC发声系统以825
3、4的计数器0为核心。系统初始化时,计数器0工作在方式3的“方-波发声器”方式,产过将音乐频率转;奂为相应耳计数初值,1天长低调器0的计发初值就可么使扬芸器发出个司的频率的音响。(2)发生系统控制为受8255芯片控制,外猿二2、Kl为10?I(3)演奏但音君而-个哪玄心与一个频率对应的计数初植写入M数器0扬声器整典W端上要型值侪公式为:=22Kl为,播放两只老虎原调其中IMHZ转换TTm轲%4240H0播放友谊地久天长原调(4)控制音符的演奏时间,是j奥每一个音符规定一个“单位时间”:单,调用发音不程屣时间。具中,N为调W参数,一首歌只有一个调试参数。2、系统组成(电路图):四、程序功能描述及程
4、序流程序域土二键盘输入值发生变化?_一如程麻程将扁二接口嗝亍后,开始通过对外界按键扫描,来检查应进行采取的操作,其中KOsKl为4i;日操Rk臾工闺仔N播放音乐程序(2)程序流程I是否播放完毕完成不同的程序跳转,从而实现相应的播放功能。0和1,即低电平和高电平。五、程序源代码及注释1.在1.ED单元中显示歌曲名称ROW1EQU0600H;端口定义ROW2EQU0640HCO1.lEQU0680HCO1.2EQU06C0HSTACKlSEGMENTSTACKDW256DUP(?)STACKlENDS;定义为数据段INC1.UDEHZDOTht.ASM;数据字段为汉字点阵库,在HZDOTht.AS
5、M;文件中CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,ROWlMOVA1.,OOHOUTDX,A1.MOVDX,R0W2OUTDX,A1.MOVA1.,OffHMOVDX,CO1.lOUTDX,A1.MOVDX,CO1.2OUTDX,A1.BGO:MOVAX,160MOVSI,OFFSETHZDOThtBGl:CA1.1.DISPADDS1.2DECAXJZBGOJMPBGl,-显小,乂子J桂序;入口参数:SI=存放汉字起始地址DISP:MOVCX,OOOFHPUSHAXM1.O:PUSHCXMOVB1.,OlHM
6、OVCX,0008HM1.l:MOVDX,ROWl;控制0-7行MOVA1.,OOHOUTDX,A1.MOVA1.,SInotalMOVDX,CO1.l;0-7歹IJOUTDX,A1.INCSIMOVA1.,SInotalMOVDX,CO1.2OUTDX,A1.INCSI:8-15歹IJMOVDX,ROWlMOVA1.,B1.OUTDX,A1.RO1.B1.,1CA1.1.DE1.AY1.OOPM1.lMOVDX,ROWlMOVA1.,OOHOUTDX,A1.MOVCX,0008H;控制0-7行M1.2:MOVDX,ROW2MOVA1.,OOHOUTDX,A1.MOVA1.,SInotal;控
7、制8-15行MOVDX,CO1.lOUTDX,A1.INCSIMOVA1.,SInotal;0-7列MOVDX,CO1.2;8-15歹IJOUTDX,A1.INCSIMOVDX,ROW2MOVA1.,B1.OUTDX,A1.RO1.B1.,1CA1.1.DE1.AY1.OOPM1.2MOVDX,R0W2MOVA1.,OOHOUTDX,A1.SUBSI,32POPCX1.OOPM1.OPOPAXRET;控制8-15行DE1.AY:PUSHCX;延时子程序MOVCX,OlOOHD1.l:PUSHAXPOPAX1.OOPD1.lPOPCXRETCODEENDSENDSTART此程序中8255芯片和点
8、阵1.ED单元的连接,用来实现在点阵1.ED显示单元来显示汉字的功能。通过调用汉字存放单元的地址,在1.ED单元中可以显示出流动的字体。此程序实现的字体是“友谊天长地久二2.此程序用来实现程序流程图中所示的功能,即通过开关来控制播放曲目的的切换和音调的改变。IOY3EQU06C0HMY8254.COUNTOEQUIOY3+OOH;8254计数器0端口地址MY8254.COUNTlEQUIOY3+02H;8254计数器1端口地址MY8254.COUNT2EQUIOY3+04H;8254计数器2端口地址MY8254.MODEEQUIOY3+06H;8254控制存放器端口地址IOYOEQU0600H
9、MY8255.AEQUIOYO+OOHMY8255._BEQUIOY0+02HMY8255._CEQUIOY0+04HMY8255.MODEEQUIOY0+06HSTACKlSEGMENTSTACKDW256DUP(?)STACKlENDSDATASEGMENTFREQ_1.ISTDWDWDWDWDWDW371,495,495,495,624,556,495,556,624495,495,624,742,833,833,833,742,624624,495,556,495,556,624,495,416,416,371495,833,742,624,624,495,556,495,556,83
10、3742,624,624,742,833,990,742,624,624,495556,495,556,624,495,416,416,371,495,0;第一首歌频率表TIME_1.ISTDB4,6,2,4,4,6,2,4,4;第一首歌时间表DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4,6,2,4,4DB6,2,4,4,6,2,4,4,12FREQ.1.IST1DW330,371,416,330;第二首歌频率表DW330,371,416,330DW416,441,495DW495,5
11、56,495,441,416,330DW495,556,495,441,416,330DW330,248,330DW330,248,330,0TIME_1.IST1DB4,4,4,4;第二首歌时间表DB4,4,4,4DB4,4,8DB4,4,8DB2,2,224,4DB2,2,2,2,4,4DB4,4,8DB4,4,8FREQ_1.IST2;第一首歌频率表变音后TIME_1.IST2;第一首歌时间表变音后DB4,6,2,4,4,6,2,4,4DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4
12、,6,2,4,4DB6,2,4,4,6,2,4,4,12FREQ_1.IST3;第二首歌频率表变音后TIME_1.IST3;第二首歌时间表变音后DB4,4,4,4DB4,4,4,4DB4,4,8DB4,4,8DB2,2,2,2,4,4DB2,2,2,2,4,4DB4,4,8DB4,4,8DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;初始化8254工作方式MOVAX,90HMOVDX,AX;A口作为输入INPUT:MOVDX,MY8254_MODE;初始化8254工作方式MOVA
13、1.,36H;定时器0、方式3OUTDX,A1.MOVDX,MY8255_A;检查输入,是否要设中断问题INA1.,DXCMPA1.,80HJZNEARPTRBEGINCMPA1.,81HJZNEARPTRBEGINlCMPA1.,82HJZNEARPTRBEGIN2CMPA1.,83HJZNEARPTRBEGIN3JNZINPUTBEGIN:MOVSI,OFFSETFREQ_1.IST;装入频率表起始地址MOVDI,OFFSETTIME.1.IST;装入时间表起始地址P1.AY:MOVDX,MY8255_AINA1.,DXCMPA1.,80HJNZNEARPTRINPUTMOVDX,OFH;输入时钟为IMHz,1M=OF424OHMOVAX,4240HDIVWORDPTRSIMOVDX,MY8254_COUNTOOUTDX,A1.MOVA1.,AHOUTDX,A1.MOVD1.,DICA1.1.DA1.1.YADDSI,2INCDICMPWORDPTRSI,OJENEARPTRINPUTJMPP1.AYBEGINl:MOVSI,OFFSETFREQ_1.IST1MOVDI,OFFSETTIME_1.IST1P1.AYl:MOVDX,MY8255_AINA1.