您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理课设--电子琴8253-8255
第1页共10页一、内容摘要设计一个电子琴。利用数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调。二、课程设计的目的和意义1、进一步掌握定时器编程和应用。2、了解微机利用定时器产生音乐的基本方法。三、课程设计的要点和内容1、根据音阶频率表,利用定时器可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。2、对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:本次课设要求设计一个电子琴,作为一个乐器,其最基本的功能就是能够发出一个音阶的所有声音,即:do,re,mi,fa,so,la,xi,dou,8个音符,不同的声音的本质就是不同频率的波,每个音符都对应着固定的频率;而声音的长短即是波的个数。所以得出的一条思路是:用汇编语言来产生一系列频率不同的方波信号,找到各个音符的频率,然后用汇编语言产生同频信号,并将该信号输入到扬声器,如果驱动功率不够则可以加放大电路。四、硬件电路设计1、单元电路设计:硬件结构应结合软件方案一并考虑,做到软件、硬件功能相匹配。在DJ-598K三合一单片机微机试验仪平台上,硬件设计参考方案如下:第2页共10页2、电路工作原理:2.1可编程8253计数器(1)在计算机的引用中,常常要对外设的某些信号进行计数,希望计算机既能控制技术的过程,还有能读取计数的结果,进而作为控制或管理的决策依据。如果被计数的信号有了准确的固定的周期,就形成了定时器。(2)图为8253的内部组成和引脚。如图所示,与外部的连接线主要分布在右侧的三个部分,即:三个计数器。其中CLK为计数通道的输入脉冲信号,对于8253来说的频率范围是0—2MHz。GATE为门控信号,用来启动或禁止计数工作,高电平有效,不同的工作方式,作用也不同。Out为输出信号,用来输出波形,不同的工作方式,不同的工作方式,输出的波形也不同;而与CPU的的内部接线主要分布在左侧的三个部分。其中,D0—D7为8位三态数据线,可直接连接到CPU的数据总线上,主要作用有:是实现与CPU的数据传输通道,接受控制字或计数初值,读取计数通道中的当前计数值。CS—A1部分为读/写控制逻辑,主要用于接受CPU的控制信息,译码后产生整个器件内部的工作的控制信息——RD为读信号线,低电平有效;WR写信号线,低电平有效;CS为片选信号,低电平有效,只有CS有效的前提下,才会执行读或写操作;A1,A0为端口选择地址线,用于对右侧三个技术通道和控制寄存器进行寻址。第3页共10页(3)8253的主要工作原理是:8253其本质为减一计数器,其工作过程为:首先需要设置工作方式,然后将工作方式处置置入计数初值锁存器;启动计数后,CPU向8253的计数初值锁存器赋初值,每来一个CLK信号,减一计数器减1,直到减到0或1时,就发出输出信号OUT输出。2.274LS393(1)74LS393为一个双4位二进制计数器,主要用于二进制计数。(2)1CPVCC1RD2CP1QA2RD1QB2QA1QC2QB1QD2QCGND2QD五、软件开发1、系统程序模块图及说明开始调键扫显示子程序是数字键1~7吗?由音频数据置定时器初值启动定时器开始发声根据键值查表得音频先关数据Y第4页共10页六、联机调试1、硬件调试:PB0作为定时器门控信号,OUT1发出音频信号,驱动喇叭。2、软件调试及调试数据:将在硬件调试设计满足预期要求以后,把软件加载到硬件中,并对该系统进行功能测试。七、程序清单CODESEGMENT;DZQ.ASMASSUMECS:CODE,ds:codeCONTROLequ43h//CONTROL为43hCOUNT0equ40h//COUNT0为40hCOUNT1equ41h//同上COUNT2equ42h//同上IOCONPTEQU0FF2BHIOBPTEQU0FF29HIOAPTEQU0FF28HPAEQU0FF20H;字位口PBEQU0FF21H;字形口PCEQU0FF22H;键入口ORG18F0H//下一条偏移语句的偏移地址START:JMPSTART0//跳到STARTOBUFDB?,?,?,?,?,?//在DB中存?延时关闭定时停止发声第5页共10页KZDB?ltimedb?lkeydb?ZPDW?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F1Hdata3:dw2273,2024,1805,1704dw1517,1353,1205,1136START0:movax,cs//cs貌似是什么断点movds,axCALLBUF1//调用子程序,BUF1为其地址MOVAL,88H//设置控制字,使用工作方法4MOVDX,IOCONPT//DX为控制字口地址OUTDX,AL//送控制字movdx,IOBPT//设置计数器0口地址moval,00//数值锁存。。。outdx,almovzp,offsetbufredikey:calldispkey//调用dispkeycmpKZ,09h//kz-09h,设置条件标志位JNCredikey//跳转到redikeycmpkz,01h//kz-01h,设置条件标志位jcredikey//跳到redikeymovbx,zp//moval,kzmov[bx],alcmpbx,offsetbuf+5jzzp1incbxmovzp,bxjmpouttonezp1:movzp,offsetbufouttone:movdx,IOBPTmoval,0ffhoutdx,almoval,kzmovah,00hdecaxshlax,1movbx,offsetdata3addbx,axmovax,[bx]callt8253第6页共10页movcx,20hcon1:pushcxcalldisppopcxloopcon1movdx,IOBPTmoval,00outdx,aljmpredikeyt8253:pushaxmoval,76h;计数器1,16位二进制,方式3。movdx,CONTROL//outdx,al//送控制字popax//ax出栈movdx,COUNT1//outdx,almoval,ahoutdx,alret;-------------------------dispkey:calldispcallkeymovah,al;newkeymovbl,ltime;ltimemovbh,lkey;lkeymoval,01hmovdx,PA;0ff21houtdx,alcmpah,bhmovbh,ah;bh=newkeymovah,bl;al=timejzdisk4movbl,88hmovah,88hdisk4:decahcmpah,82hjzdisk6cmpah,0ehjzdisk6cmpah,00hjzdisk5movah,20hdecbljmpdisk7第7页共10页disk5:movah,0fhdisk6:movbl,ahmovah,bhdisk7:movltime,blmovlkey,bhmovKZ,bhmoval,ahretkey:moval,0ffhmovdx,PBoutdx,almovbl,00hmovah,0fehmovcx,08hkey1:moval,ahmovdx,PAoutdx,alrolal,01hmovah,alnopnopnopnopnopnopmovdx,PCinal,dxnotalnopnopandal,0fhjnzkey2incblloopkey1jmpnkeykey2:testal,01hjekey3moval,00hjmpkey6key3:testal,02hjekey4moval,08hjmpkey6key4:testal,04h第8页共10页jekey5moval,10hjmpkey6key5:testal,08hjenkeymoval,18hkey6:addal,blcmpal,10hjncfkeymovbl,almovbh,0hmovsi,offsetdata2moval,[bx+si]retnkey:moval,20hfkey:retdata2:db07h,04h,08h,05h,09h,06h,0ah,0bhDB01h,00h,02h,0fh,03h,0eh,0ch,0dhDISP:MOVAL,0FFH;00HMOVDX,PAOUTDX,ALMOVCL,0DFH;20H;显示子程序,5msMOVBX,OFFSETBUFDIS1:MOVAL,[BX]MOVAH,00HPUSHBXMOVBX,OFFSETDATA1ADDBX,AXMOVAL,[BX]POPBXMOVDX,PBOUTDX,ALMOVAL,CLMOVDX,PAOUTDX,ALPUSHCXDIS2:MOVCX,0a0HLOOP$POPCXCMPCL,0FEHJZLX1INCBXRORCL,1JMPDIS1第9页共10页LX1:MOVAL,0FFHMOVDX,PBOUTDX,ALRETBUF1:MOVBUF,11HMOVBUF+1,10HMOVBUF+2,10HMOVBUF+3,10HMOVBUF+4,10HMOVBUF+5,10HRETCODEENDSENDSTART第10页共10页
本文标题:微机原理课设--电子琴8253-8255
链接地址:https://www.777doc.com/doc-2661906 .html