为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

毕业设计--8253定时器 计数器接口与数字电子琴

2018-01-08 7页 doc 28KB 124阅读

用户头像

is_212655

暂无简介

举报
毕业设计--8253定时器 计数器接口与数字电子琴毕业设计--8253定时器 计数器接口与数字电子琴 实验要求 实验:8253定时器/计数器接口与数字电子琴 一、 实验目的 加深对课堂教授内容的理解,掌握汇编语言的语法规则; 熟悉所用的计算机系统的操作方法,了解和熟悉8086微处理器的逻辑结构、工作模式、指令系统、汇编语言程序实验、DEBUG程序调试工具; 学习上机调试程序的方法和技巧,提高编程能力。 二、 实验环境 1、操作系统:DOS、windows98/2000/xp 2、软件:MASM宏汇编 三、 实验内容 1、内容:根据提供的音乐频率表和时间表,...
毕业设计--8253定时器 计数器接口与数字电子琴
毕业--8253定时器 计数器接口与数字电子琴 实验要求 实验:8253定时器/计数器接口与数字电子琴 一、 实验目的 加深对课堂教授内容的理解,掌握汇编语言的语法; 熟悉所用的计算机系统的操作方法,了解和熟悉8086微处理器的逻辑结构、工作模式、指令系统、汇编语言程序实验、DEBUG程序调试工具; 学习上机调试程序的方法和技巧,提高编程能力。 二、 实验环境 1、操作系统:DOS、windows98/2000/xp 2、软件:MASM宏汇编 三、 实验内容 1、内容:根据提供的音乐频率表和时间表,编写程序控制8253,使其输出 连接到扬声器上能发出相应的乐曲。 2、说明:一个音符对应一个频率。将对应一个音符频率的方波通到扬声器 上就可发出这个音符的声音。音符与频率对照表如下图所示: 音符 1 2 3 4 5 6 7 I 频率 524 588 660 698 784 880 988 1048 (利用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) 编写并输入程序,检查无误后,经汇编、连接后装入系统。 stack segment stack dw 64 dup(?) stack ends data segment msg dw -1 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax push ds mov dx, 43h mov al,10110111B ;8253计数器2读/写计数器16位数模式3 BCD 码 out dx,al mov dx,63h 使用8253实现使用1到8弹奏歌曲 ;其他键退出 data segment message db 'Use 1 ... 8 to play the music','$' frequ dw 524, 588, 660, 698, 784, 880, 988, 1048 data ends code segment assume cs:code, ds:data start: mov ax, data mov ds, ax lea dx, message mov ah, 09h int 21h mov al, 10110110b out 43h, al ;set the control next: mov ah, 7 int 21h cmp al, '1' jb exit cmp al, '8' ja exit ;get the frequency of the number sub al, 30h mov ah, 0 mov bx, ax sub bx, 1 shl bx, 1 mov cx, frequ[bx] ;get the counter mov ax, 34dch mov dx, 12h ;DX:AX=1234DCH=1193180D div cx mov bx, ax ;set the counter mov ax, bx out 42h, al ;send the lower mov al, ah out 42h, al ;send th higner in al, 61h ;set the 0 and 1 as '1' or al, 03h out 61h, al mov cx, 0ffffh delay: mov dx, 100h dec_dx: dec dx jnz dec_dx loop delay in al, 61h and al, 11111100b out 61h, al ;open the voice jmp next exit: mov ah, 4ch int 21h code ends end start 六、 实验总结: 经过这个课程设计,虽然时间比较短,完成任务的效果不是很理想,但是既然自己尝试 过,就肯定学到了不少东西,也真正体会到做电子设计行业工作的辛苦,不过自己收获还是挺大的。 这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较综合。 经过短短一周的课程设计,我认识到,课程设计能真正让人学到实际应用的东西的一门课程。收获比上几星期课还多。 首先,要实现题目要求的功能并有所创新,我们必须全心地投入其中,养成一种敢于钻研敢于创新的习惯。在把课程要求实现到实际中来的过程中,首先必须清楚明白地了解几个参考程序的每一行的意思,这就需要敢于静心钻研。为了把使得程序更加完整,就必须进行创新,这就需要敢于创新。 其次,通过课程设计,让我在课本的基础上,更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技巧。为了了解键盘,查找了不少8279芯片的资料,了解了键盘的初始化,存取缓存,扫描键盘,读取键码以及键码和显示码之间的转换。为了实现基本功能,认真研究了参考程序的意义,了解了电子琴的不同音阶放音功能的实现,长短音的实现,更深入了解了8253计时器的使用方法。 编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。调试程序中,学习了DEBUG 的使用,DEBUG对检查程序的错误作用很大。同时,也要灵活使用各种调试方法,来缩小寻找错误的范围。 检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。在设计扩展功能的过程中,大胆想像并且用多种思路来求解实现目标是必备的武器。 四、 参考资料 《16位微机原理及接口技术》许文丹主编 西安电子科技出版社 《IBM-PC汇编语言程序设计》沈美明 温冬婵编著 清华大学出版社
/
本文档为【毕业设计--8253定时器 计数器接口与数字电子琴】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索