1、目 录一、课程设计的目的与要求 1 1.1课程设计的目的 1 1.2课程设计的要求 1二、课程设计的内容及结果1 2.1 题目及主要技术指标 1 2.2 原理及流程图 1 2.3设计程序代码 4 2.4设计实验结果及图像 15三、课程设计总结 16四、参考文献 16大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 一、课程设计的目的与要求1.1课程设计的目的:本课程的课程设计是自动化专业学生学习完微机原理及应用课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用
2、微机原理开发系统的基本方法。1.2 课程设计的要求: 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:(1)掌握汇编语言程序设计的基本方法。(2)进一步理解各种接口电路的应用。例如8255并行接口,8253定时器等。(3)掌握利用PC机扬声器发出不同频率声音的方法。二、课程设计的内容 2.1题目及主要技术指标(1)课程设计的题目:“计算机仿真电子琴”。 (2)主要技术指标:a)在程序运行时使PC即成为一架可弹奏的电子琴。当按下数字健1-8时,依次发出1,2,3,4,5,6,7,I这8个音调。自行设计按下某一键则退出电子琴状态。b)在程序运行时使PC自动演奏一首乐曲。 2.2原理及流
3、程图 (1)音节频率设定对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音节都有对应的频率。各音节对应频率值(如表11): (2)产生一个正弦波的数据可取32(小于亦可),各不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发重低音“哆”的频率为131HZ,周期为(1/131)ms,定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。1大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业
4、班级: 姓名: 学号: 表11音节哆唻咪发嗦啦唏重低音频率(单位:HZ)131147165175196220247低音频率(单位:HZ)262294330349392440494中音频率(单位:HZ)523587659698784880988高音频率(单位:HZ)1046117513181397156817601975电路连接图:2大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 流程图:3大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 2.3设计程序代码:data segment ;数据定义段assume ds:dat
5、a ;建立数据段寄存器寻址msg_1 db $,0dh,0ah ;定义字节msg_2 db 0dh,0ah,In this OS. you can press below keys to enjoy:$msg_8 db 0dh,0ah,You can press p to play music! Or play a music by yourself $msg_3 db 0dh,0ah,Super Low: q-w-e-r-t-y-u$msg_4 db 0dh,0ah, Low: a-s-d-f-g-h-j$msg_5 db 0dh,0ah, Mid: z-x-c-v-b-n-m$msg_6
6、db 0dh,0ah, Hig: 1-2-3-4-5-6-7$msg_7 db 0dh,0ah,Anytime you can press Esc or Enter to exit.$msg_9 db 0dh,0ah,Please select the music(press q to exit the main menu):$msg_10 db 0dh,0ah,1. Huaxin$msg_11 db 0dh,0ah,2. Jingle bells$msg_12 db 0dh,0ah,3. Happy birthday to you$msg_13 db 0dh,0ah,4. Happy new
7、 year$msg_21 db 0dh,0ah, $note_t dw 131,147,165,175,196,220,247 dw 262,294,330,349,392,440,494 dw 523,587,659,698,784,880,988 dw 1046,1175,1318,1397,1568,1760,1975 dw 0 ;休止符0; 1,2,3,4,5,6,7 key_t db q,w,e,r,t,y,u db a,s,d,f,g,h,j db z,x,c,v,b,n,m db 1,2,3,4,5,6,7 db 0 ;休止符04大 连 海 洋 大 学 课 程 设 计 报 告 纸
8、学院: 专业班级: 姓名: 学号: ;画心 music_n1 db b,c,c,x,z,x,x,b,c db 0,b,c,c,x,z,x,b,n db c,0,b,c,c,x,z,x,z,j db z,x,j,g,h,d,g db h,h,c,x,z,j,j,g,h db g,g,h,h,z,j,h,g db s,d,d,d,g,h,h,j,z,g db z,x,x,c,c,b,c,c,x,z,x db z,j,z,x,j,g,h,d,g db h,h,c,x,z,j,g,h,h,0 db d,d,g,h,h,z,j,h,g,h db h,d,d,d,g,h,h,j,z,g,z db x,x,
9、c,c,b,c,c,x,z db x,z,j,z,x,j,g,h,d,g,h db h,c,x,z,j,g,h,h,b,c db c,x,z,x,x,b,c,c,c,b,c db c,x,z,x,b,n,x,c,c db b,c,c,x,z,x,z,j db z,x,j,g,h,d,g,h,h,c db x,z,j,g,h,h,0music_d1 db 4, 4, 8, 4, 4, 8, 4, 4, 16 db 8, 4, 4, 8, 4, 4, 8, 4, 4 db 16, 8, 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4
10、, 4, 4, 8, 8, 4 db 4, 4, 8, 4, 4, 4, 4, 8 db 4, 2, 16, 4, 4, 8, 4, 4, 4, 4 db 4, 4, 4, 4, 8, 4, 4, 8, 4, 4, 8 db 4, 4, 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4, 4, 4, 8, 4, 2, 8, 8 db 4, 4, 4, 8, 4, 4, 4, 4, 4, 4 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 45大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: db 4, 4, 4, 16, 4,
11、4, 8, 4, 4 db 8, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8 db 4, 4, 4, 4, 8, 4, 4, 16, 4, 4 db 8, 4, 4, 8, 4, 4, 4, 4, 8, 4, 4 db 8, 4, 4, 8, 4, 4, 4, 4, 8 db 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 4, 4, 8, 4, 4, 8, 4, 4 db 4, 4, 8, 4, 4, 32;铃儿响叮当music_n2 db g,c,x,z,g,0,g,h,g,c,x,z db h,0,h,a,h,v,c,x,j,g,b,b,v,x,c,z db
12、 g,c,x,z,g,0,g,h,g,c,x,z,h,v,c,x db b,b,b,b,n,b,v,x,z db c,c,c,c,c,c,c,b,z,x,c db v,v,v,v,c,c,c,x,x,z,x,b db c,c,c,c,c,c,c,b,z,x,c db v,v,v,v,c,c,b,b,v,x,z,0music_d2 db 4, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 4 db 8, 4, 2, 2, 4, 4, 4, 4, 8, 8, 4, 4, 4, 4, 8, 4 db 4, 4, 4, 4, 8, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4
13、, 4 db 4, 4, 4, 4, 4, 4, 4, 4, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 2, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8, 8 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 2, 16 db 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 16,326大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;生日快乐music_n3 db g,g,h,g,z,j db g,g,h,g,x,z db g,g,b,c,z,j,h db v,v,c,z,x,
14、z,0 music_d3 db 4, 4, 8, 8, 8, 16 db 4, 4, 8, 8, 8, 16 db 4, 4, 8, 8, 8, 8, 8 db 4, 4, 8, 8, 8, 16, 32music_n4 db z,z,z,g,c,c,c,z,z,c,b,b,v,c,x,x,c db v,v,c,x,c,z,z,c,x,g,j,x,z,0;新年好 music_d4 db 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 16, 4, 4 db 8, 8, 4, 4, 8, 8, 4, 4, 8, 8, 4, 4, 32jiepai db ? ;
15、节拍变量定义speed db 2 ;播放速度控制jiange db 1 ;音符间隔停顿时间data ends ;代码段定义code segment assume cs:code ;字符显示show macro str ;宏定义,输入参数:字符串str lea dx,str ;装入str的有效地址 mov ah,09h ;调用中断21,09h显示字符串 int 21h endm ;宏定义结束7大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;主函数main proc far mov ax,data mov ds,ax ;装载数据段寄存器ds,使之指向当前数据
16、段 show msg_21 show msg_1 show msg_2 show msg_8 show msg_3 show msg_4 show msg_5 show msg_6 show msg_7 show msg_21 mov bx,0 ;设定查表数组下标初值;按键扫描key_scan: mov al,6 mov jiepai,al mov bx,0000h mov ah, 00h ;利用bios的16号中断,扫描键盘按键 int 16h ;AL中返回按键的ASCII码 cmp al, 0dh jz exit cmp al, 1bh jz exit cmp al, p jz play
17、8大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: lookup: cmp key_tbx,al ;取出对应频率值 je next inc bx jmp lookupnext: shl bx,1 mov cx,note_tbx;取得对应数组下标值的频率值 call beep jmp key_scan exit: mov ah,4ch ;调用中断21,4ch退出系统 int 21h;音乐播放菜单play: show msg_9 show msg_10 show msg_11 show msg_12 show msg_13 show msg_21input: m
18、ov ah, 00h int 16h cmp al, q jz start cmp al, 1 jz next6 cmp al, 2 jz next7 cmp al, 3 jz next8 cmp al, 4 jz next9 jmp input 9大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: next6: call play_m1next7: call play_m2next8: call play_m3next9: call play_m4start: call main;音乐播放程序1play_m1 proc nearnext5: mov bx,0
19、next3: mov al,music_n1bx ;取出music频率值 push ax mov al,music_d1bx ;取出music节拍 mov jiepai,al pop ax cmp al, 0 ;是否为音乐结束标志符 je input push bx mov bx,0look1: cmp key_tbx,al ;查表取出对应频率值的指针bx je next1 inc bx and bx,0ffh jmp look1 next1: shl bx,1 mov cx,note_tbx cmp cx,0 je next4 call beep call pause pop bx inc
20、bx jmp next3 next4: call nobeepcall pause 10大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: pop bx inc bx jmp next3play_m1 endp;音乐播放程序2play_m2 proc nearnex5: mov bx,0nex3: mov al,music_n2bx push ax mov al,music_d2bx mov jiepai,al pop ax cmp al, 0 ;je input push bx mov bx,0loo1: cmp key_tbx,al ;查表取出对应频率值的
21、指针bx je nex1 inc bx and bx,0ffh jmp loo1 nex1: shl bx,1 mov cx,note_tbx cmp cx,0 je nex4 call beep call pause ; pop bx inc bx jmp nex3 nex4: call nobeepcall pause 11大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: pop bx inc bx jmp next10 play_m3 endp;音乐播放程序4play_m4 proc nearnxt5: mov bx,0next13: mov al,m
22、usic_n1bx push ax mov al,music_d1bx mov jiepai,al pop ax cmp al, 0 ;je input push bx mov bx,0lok1: cmp key_tbx,al je next15 inc bx and bx,0ffh jmp lok1 next15: shl bx,1 mov cx,note_tbx cmp cx,0 je next14 call beep call pause pop bx inc bx jmp next13 next14: call nobeep call pause 12大 连 海 洋 大 学 课 程 设
23、 计 报 告 纸学院: 专业班级: 姓名: 学号: next14: call nobeep call pause pop bx inc bx jmp next13 play_m4 endp main endp ;固定频率响beep proc near mov dx,0012h mov ax,34dch div cx ;ax为所得分频值 out 42h,al ;输出频率值,低8位 mov al,ah out 42h,al ;输出频率值,高8位 call spk_on ;开启蜂鸣器 mov ah,00h ;取时钟计数值 int 1ah mov al,jiepai ;18.2次为1000ms, 2次
24、约为100ms add al,speed cbw add ax,dx mov bx,ax delay1: mov ah,00h int 1ah cmp bx,dx jnz delay1 call spk_off ret beep endp13大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;休止符延迟时间nobeep proc near call spk_off mov ah,00h int 1ah mov al,jiepai add al,speed cbw add ax,dx mov bx,ax delay2: mov ah,00h int 1ah c
25、mp bx,dx jnz delay2 retnobeep endp;音符间隔停顿时间pause proc near call spk_off mov ah,00h int 1ah mov al,jiange cbw add ax,dx mov bx,ax delay3: mov ah,00h int 1ah cmp bx,dx jnz delay3 retpause endp14大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: ;开启蜂鸣器spk_on proc near push ax in al,61h or al,03h ;把61h端口低二位置1,即
26、打开蜂鸣器 out 61h,al pop ax retspk_on endp;关闭蜂鸣器spk_off proc near push ax in al,61h and al,0fch ;把61h端口低二位置0,即关闭蜂鸣器 out 61h,al pop ax retspk_off endpcode ends end main 2.4实验结果及图像结果:经过查阅资料编写程序、调试程序,能够较好的满足设计要求。以下为运行图像:15大 连 海 洋 大 学 课 程 设 计 报 告 纸学院: 专业班级: 姓名: 学号: 三、课程设计总结 对于本次的课程设计,刚刚给定题目时感觉无从下手,等查阅了资料后对于总体思路有了一些想法,包括原理、程序各模块的分块设计等。 因为对于一门课的课程设计,是要求我们对于正本书要有总体的把握,所以课设增进了我们对于书本知识的掌握,加深了理解。 我觉得理论是建立在实践的基础上的,而如果理论不能应用于实践,那它的存在是没有太大意义的,我们缺乏的是实践能力,所以以后要珍惜、把握好每一次这样的机会。四、参考文献1 王忠民 .微型计算机原理. 西安电子科技大学出版社 2007年2 赵燕,何南. 微机原理与应用试验指导书 大连海洋大学自编 2008年3 沈美明. 汇编语言程序设计实验教程. 北京:清华大学出版社,200216
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922