您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 毕业设计--8253定时器-计数器接口与数字电子琴
实验要求实验:8253定时器/计数器接口与数字电子琴一、实验目的加深对课堂教授内容的理解,掌握汇编语言的语法规则;熟悉所用的计算机系统的操作方法,了解和熟悉8086微处理器的逻辑结构、工作模式、指令系统、汇编语言程序实验、DEBUG程序调试工具;学习上机调试程序的方法和技巧,提高编程能力。二、实验环境1、操作系统:DOS、windows98/2000/xp2、软件:MASM宏汇编三、实验内容1、内容:根据提供的音乐频率表和时间表,编写程序控制8253,使其输出连接到扬声器上能发出相应的乐曲。2、说明:一个音符对应一个频率。将对应一个音符频率的方波通到扬声器上就可发出这个音符的声音。音符与频率对照表如下图所示:音符1234567I频率5245886606987848809881048(利用8253的方式3—“方波发生器”,改变定时器2的计数值来改变声音频率,通过编程来获得声调(频率)和节奏(延时长短),使计算机演奏出音乐来。)将相应的一种频率的计数初值写入计数器,就可产生对应频率的方波。计数初值计算如下:计数初值=输入时钟÷输出频率例如输入时钟采用系统总线上CLK(1.041667MHZ),要得到800HZ的频率,计数初值即为1041667/800。对于每个音符演奏的时间,可以通过软件延时来处理。8253用于发声的电原理图:3、要求:自选曲目,实现该曲目的演奏功能,完成实验报告(电子版:文件类型*.doc)并提交一份完整的程序清单(文件类型:*.asm);实验报告字数不得少于1200字实验报告内容要求:有实验目的、实验环境、实验内容及主要工作原理(附8253内部结构和引脚图;8253控制字及初始化编程原理;发声程序电路原理图、流程图;主要功能附必要的功能说明。)、实验步骤、实验总结、参考资料。三、实验内容实验线路如下图,8253的CLK2接1.19MHz时钟,GATE2接+5V,OUT2接喇叭。8255的B口PB0、PB1、PB2、PB3、PB4、PB5、PB6、PB7,分别接开关KK0、KK1、KK2、KK3、KK4、KK5、KK6、KK7,作为电子琴的按键输入。拨动不同的开关,发出相应的音阶。设定8253的2#通道工作方式为方式3——方波发生器,用于计数一定的方波数,发出七个音阶相应的频率。8255B口作为输入,工作方式为方式0——基本输入\输出方式。四、实验步骤(1)编写并输入程序,检查无误后,经汇编、连接后装入系统。stacksegmentstackdw64dup(?)stackendsdatasegmentmsgdw-1dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axpushdsmovdx,43hmoval,10110111B;8253计数器2读/写计数器16位数模式3BCD码outdx,almovdx,63h使用8253实现使用1到8弹奏歌曲;其他键退出datasegmentmessagedb'Use1...8toplaythemusic','$'frequdw524,588,660,698,784,880,988,1048dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axleadx,messagemovah,09hint21hmoval,10110110bout43h,al;setthecontrolnext:movah,7int21hcmpal,'1'jbexitcmpal,'8'jaexit;getthefrequencyofthenumbersubal,30hmovah,0movbx,axsubbx,1shlbx,1movcx,frequ[bx];getthecountermovax,34dchmovdx,12h;DX:AX=1234DCH=1193180Ddivcxmovbx,ax;setthecountermovax,bxout42h,al;sendthelowermoval,ahout42h,al;sendthhignerinal,61h;setthe0and1as'1'oral,03hout61h,almovcx,0ffffhdelay:movdx,100hdec_dx:decdxjnzdec_dxloopdelayinal,61handal,11111100bout61h,al;openthevoicejmpnextexit:movah,4chint21hcodeendsendstart六、实验总结:经过这个课程设计,虽然时间比较短,完成任务的效果不是很理想,但是既然自己尝试过,就肯定学到了不少东西,也真正体会到做电子设计行业工作的辛苦,不过自己收获还是挺大的。这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较综合。经过短短一周的课程设计,我认识到,课程设计能真正让人学到实际应用的东西的一门课程。收获比上几星期课还多。首先,要实现题目要求的功能并有所创新,我们必须全心地投入其中,养成一种敢于钻研敢于创新的习惯。在把课程要求实现到实际中来的过程中,首先必须清楚明白地了解几个参考程序的每一行的意思,这就需要敢于静心钻研。为了把使得程序更加完整,就必须进行创新,这就需要敢于创新。其次,通过课程设计,让我在课本的基础上,更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技巧。为了了解键盘,查找了不少8279芯片的资料,了解了键盘的初始化,存取缓存,扫描键盘,读取键码以及键码和显示码之间的转换。为了实现基本功能,认真研究了参考程序的意义,了解了电子琴的不同音阶放音功能的实现,长短音的实现,更深入了解了8253计时器的使用方法。编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。调试程序中,学习了DEBUG的使用,DEBUG对检查程序的错误作用很大。同时,也要灵活使用各种调试方法,来缩小寻找错误的范围。检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。在设计扩展功能的过程中,大胆想像并且用多种思路来求解实现目标是必备的武器。四、参考资料《16位微机原理及接口技术》许文丹主编西安电子科技出版社《IBM-PC汇编语言程序设计》沈美明温冬婵编著清华大学出版社
本文标题:毕业设计--8253定时器-计数器接口与数字电子琴
链接地址:https://www.777doc.com/doc-5935661 .html