微机原理课程设计报告电子琴.docx
- 文档编号:2400447
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:19
- 大小:98.88KB
微机原理课程设计报告电子琴.docx
《微机原理课程设计报告电子琴.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告电子琴.docx(19页珍藏版)》请在冰豆网上搜索。
微机原理课程设计报告电子琴
1.摘要
本次专业课程设计作为前阶段学习知识的一个检验,培养了我们的动手能力以及独立思考设计的能力,也是大学培养的一个重要实践步骤。
设计初期,我们通过网络,图书馆等资源查找到利用单片机设计制作电子琴的相关信息,对不同的方案进行细致的分析比较。
并且按照题意与实际情况进行改进,使之符合要求。
尔后利用恒科HK-51仿真开发系统编译软件对设计程序进行调试,最终确定了成熟的方案。
然后按照电路图进行实物焊接,最终做出一个简单的电子琴。
制作过程中发现的一些问题通过共同的分析研究得到的解决,此次课程设计巩固了前期的理论知识,增强了动手实践能力。
程序主要是由定时子程序、发光二极管显示子程序和中断服务程序组成。
包括对8253、8255等可编程器件的编程。
关键词:
8255;8253;中断;脉冲信号
目录
1概述......................................................1
1.1设计目的...............................................1
1.28255和8253的工作原理..................................1
2电子琴设计原理及流程图4
2.1设计原理4
2.2流程图4
3设计思路7
4源代码9
5调试情况及其分析..........................................15
6课程设计总结16
参考文献17
1概述
1.1设计目的
(1)了解交通灯管理的基本工作原理;
(2) 熟悉8255A并行接口的各种工作方式和应用;
(3)熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法;
1.28255和8253的工作原理
1.2.18255A的工作原理
⑴8255A的内部结构
①数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
②三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
③A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
④读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
⑵8255A的工作方式
方式0——基本输入输出方式;
方式1——选通输入输出方式;
方式2——双向方式。
1.2.28253的工作原理
8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。
其CLK0~CLK2是计数器0~2的时钟脉冲输入端,GATE0~GATE2是门控脉冲输入端,OUT0~OUT2是输出端。
2电子琴设计原理及流程图
2.1设计原理
(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。
给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。
对于音乐,每个音阶都有确定的频率。
各音阶标称频率值:
(2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:
发"1"频率为261。
1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms.定时时间可以由8253配合8255来实现。
按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。
本程序中设置默认长度为60个正弦波。
2.2流程图
2.2.1电路连接图如下:
(1)8253和8255连接如下
2.2.2主程序流程图
2.2.3发音子程序流程图
2.2.4键盘显示子程序流程图
2.25显示子程序流程图
3设计思路
在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:
电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。
程序设计的思路按以下顺序进行:
1.分析与确定程序总体设计目标
2.将总体目标划分为若干模块
3.定义每个模块的具体任务,明确它与其他模块间的通信方式
4.编写源程序,进行调试,包括:
●简单电子琴主程序
结合实验指导书的两程序,将其分为5个子程序,实现简单的播放和显示音阶的功能。
●录音子程序
实现记录弹奏曲目并播放的功能。
首先由9触发,将输入的音阶存入缓存区song中,输入的同时可以发声和显示。
当再次按9时录制完成。
●放音子程序
本子程序实现放音功能。
首先从8279键盘读出键码,判断,如果键码不是1-8即回到程序开始,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。
播放60次后,从PORT1中取出值到AL,和1相与,判断是否有按键,如果有就进入死循环,直到下次按键为止。
●放歌子程序
调用放音子程序。
●暂停子程序
在乐曲播放过程中,每调用一次MUSIC,就从PORT1中取出AL,检测AL个数,即每次发音后按键盘的次数。
当检测到AL为1时,即按了一次任意就使程序进入一个死循环,不发音,到此实现了暂停,然后再次按动任意键时,AL就为2,不为1,所以程序跳出死循环,继续从断开处调用乐曲,继续播放。
●源程序整体
程序开始,显示提示信息,对缓存区、8279初始化。
接着调用发音子程序,键盘子程序,在把AL送缓存区,实现发音和显示。
接着对9键、0键、f键、r键进行逐个判断,当9按下时,调用录音子程序。
当按下0时,播放录制的曲目。
当按下f键时,播放程序中预设的曲目。
当检测到r时,退出到DOS状态。
当每一个都检测不到时,退回到调用发音子程序,继续发音显示。
从而实现有扩展功能的电子琴。
5.模块连接,形成完整的程序
6.编写程序文档
4源代码
DATASEGMENT
IOPORTEQU0C400H-0280H
PORT0EQUIOPORT+2B0H;8279DATAPORT
PORT1EQUIOPORT+2B1H;8279CTRLPORT
SEC1DB0;HOURHIGHT
SEC2DB0;HOUPLOW
MIN1DB0;MINHIGHT
MIN2DB0;MINLOW
HOUR1DB0;SECHIGHT
HOUR2DB0;SECLOW
LEDDB3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,77H,7CH,39H,5EH,79H,71H;7段管对应的显示码
DB67H,37H,73H,31H,3EH,36H,66H
IO8253AEQUIOPORT+280H
IO8253BEQUIOPORT+283H
IO8255AEQUIOPORT+288H
IO8255BEQUIOPORT+28BH
IO0832AEQUIOPORT+290H
DATA1DB80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH
DB0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H
DB80H,66H,4EH,38H,25H,15H,09H,04H
DB00H,04H,09H,15H,25H,38H,4EH,66H;正弦波数据
TIMEDB120,106,94,89,79,70,63,59;发不同音时8253的计数器初值
MSGDB’************************************************’,0DH,0AH
DB’THISISOURWORK,PLEASESUPPORTUS,THANKYOU’,0DH,0AH
DB'1.PRESS1~8TOPLAY',0DH,0AH,0DH,0AH
DB'2.PRESS9TORECORD',0DH,0AH,0DH,0AH
DB'3.PRESS0TOPLAYTHERECORD',0DH,0AH,0DH,0AH
DB'4.PRESSFTOPLAYTHESONG',0DH,0AH,0DH,0AH
DB'5.PRESSANYKEYTOPAUSE/STARTWHENPLAYTHERECORD',0DH,0AH,0DH,0AH
DB'6.PRESSRTOEXIT',0DH,0AH,0DH,0AH
DB’COPYRIGHT@MR.LI&MR.HUANG’,0DH,0AH
DB’**********************************’,0DH,0AH,'$'
NUMDB?
;NUM为8253计数器初值的序号
SONGDB50DUP(?
)
SONG1DB1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1
MSGPLAYDB0DH,0AH,0DH,0AH,'RECORDING......PLESS9TOEND',0DH,0AH,0DH,0AH,'$'
MSGENDDB'RECORDFINISHED.',0DH,0AH,0DH,0AH,0DH,0AH,0DH,0AH,'$'
MSGPLAY1DB0DH,0AH,0DH,0AH,'PLAYING......PRESSANYKEYTOPAUSE.',0DH,0AH,0DH,0AH,'$'
MSGEND1DB'PLAYINGFINISHED.',0DH,0AH,0DH,0AH,'$'
DATAENDS
STACK1SEGMENTPARASTACK'STACK'
DB50DUP(0)
STACK1ENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMSG
MOVAH,9
INT21H;显示提示信息
CLI
MOVAX,DATA
MOVDS,AX
MOVSEC1,0
MOVSEC2,0
MOVMIN1,0
MOVMIN2,0
MOVHOUR1,0
MOVHOUR2,0;显示缓存区初始化
MOVAX,DATA
MOVDS,AX
MOVAX,CS
MOVDS,AX
MOVDX,PORT1
MOVAL,0D3H;11010011清除命令特征位
OUTDX,AL;8279CLEAR
MOVAL,2AH;0010101042分频,内部使用1MHZ/42的频率
OUTDX,AL;8279CLOCK
MOVAL,40H
OUTDX,AL;READFIF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 报告 电子琴