微机原理课程设计简易电子琴设计Word格式.docx
- 文档编号:21935542
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:69.66KB
微机原理课程设计简易电子琴设计Word格式.docx
《微机原理课程设计简易电子琴设计Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计简易电子琴设计Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
0.5天
成绩评定
4
书写报告
七、主要参考资料(文献)。
1、《微机原理与应用》大连理工大学出版社
2、《微机原理与接口技术》北京航空航天大学出版社
3、《微型计算机原理与汇编语言》电子工业出版社
4、《8088/8086汇编语言程序设计》中央广播电视大学出版社
沈阳工程学院
微机原理及应用课程设计成绩评定表
系(部):
自动控制系班级:
自本051学生姓名:
陈阳
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;
能制定课程设计方案和日程安排。
0.1
5
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
查阅
文献
查阅文献有一定广泛性;
有综合归纳资料的能力
工作量饱满,难度适中。
0.3
评阅教师评审成绩
(加权分合计乘以8)
分
评阅教师签名:
课程设计总评成绩
摘要
微机原理课程设计——设计简易电子琴
本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。
首先利用了编程程序,编辑了8255芯片控制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后,输出到8254芯片中,由此实现对其的初始化。
将8254芯片设置为工作在方式3,即输出对称方波状态。
A端口为输入,“OUT”指令可将输出对应一定频率的方波送到扬声器中,由此实现发声。
本实验通过频率大小控制发出声音的高低,通过对延时程序的调用控制发出声音的长短。
并通过所编程序实现对键盘的重复扫描,重而可以弹奏多个音符的试验目的。
一.封面·
·
二.任务书·
三.成绩评定表·
四.摘要·
6
五.目录·
7
六.正文·
8
七.总结·
17
八.参考文献·
18
正文
我组的课程设计题目:
简易电子琴设计
1.实验内容:
2.实验要求:
(2)弹奏简短音乐。
(3)通过改变键盘输入来改变8254输出频率,实现扬声器发音
3.工作原理:
本程序是通过并行接口芯片8255对键盘进行扫描(对于键盘单元的工作原理见正文第9点),将8255芯片的PA0—PA4,PC0—PC4它们分别与键盘伤的X1—X4,Y1—Y4相连,根据控制字81H,决定工作在方式0,A端口和B端口输出,C端口输入,由其C口将按键情况输入到CPU中,在CPU中进行一系列运算,通过定时器8254将不同频率的波形经OUTO输入到扬声器中,从而实现扬声器的发音。
本实验中8254的工作方式为方式3,输出的波形为对称方波。
由于系统中8254的CLK端已固定接好频率为1MHZ的方波信号,所以要控制其输出端OUT0输出不同的频率只要根据通过写入不同的计数初值就能实现。
公式为:
CLK0端的输入频率/OUT0端的输出频率=计数初值N
通过频率的大小控制音阶的不同,通过延时程序控制发音的长短,由此达到实验要求。
4.所用芯片8255简介:
1)D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
2)PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
3)PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
4)PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
5)CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
6)RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
7)WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。
8)RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
9)A1、A0:
端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。
10)本实验用到的引脚有PA0-PA3、PC0-PC3、D0-D7、A0、A1、WR、RD、CS、和GND;
设定工作在方式0,A口输出、B口输出、C口低4位输入。
5.所用芯片8254简介:
1)D0-D7双向数据线,用以传送数据和控制字。
计数器的计数值亦通过此数据总线进行读写。
2)CS输入信号,低电平有效。
作为片选。
3)RD读控制信号,低电平有效。
4)WR写控制信号,低电平有效
5)A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号
6)CLK0是每个计数器的时钟输入端。
计数器对此时钟信号进行计数。
CLK最高频率可达2MHZ。
7)GATE0-GATE2门控制信号,即计数器的控制输出信号,用来控制计数器的工作。
8)OUT0-OUT2计数器输出信号,用来产生不同方式工作时的输出波形
9)8254具有3个独立的16位计数器,6种不同的工作方式。
计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号。
10)本实验中,我们用到的引脚有:
D0-D7、A0-A1、WR、RD、CS、CLK0、GATE0、OUT0等;
设定工作在方式3用来产生方波、应用计数器0。
6.程序流程图
7.程序代码:
MY8255_AEQU0600H
MY8255_BEQU0602H
MY8255_CEQU0604H
MY8255_MODEEQU0606H
MY8254_MODEEQU06C6H
MY8254_AEQU06C0H;
进行宏定义
MYDATASEGMENT
CHUSHUDW441D,495D,556D,589D,661D,742D,833D,882D,
262D,294D,330D,373D,402D,450D,494D,-1D
MYDATAENDS;
建立数据段MYDATA
MYCODESEGMENT;
建立数据段MYCODE
ASSUMECS:
MYCODE,DS:
MYDATA
START:
MOVAX,MYDATA
MOVDS,AX;
实现段寄存器DS的初始化
MOVDX,MY8255_MODE
MOVAL,81H
OUTDX,AL;
写8255芯片的控制字,实
现工作在方式0,A端口和B端口输出,C端口输入
MOVDX,MY8254_MODE
MOVAL,36H
使8254工作在方式3,A
口输入,运用计数器0,以二进制方式进行
BEGIN:
CALLCCSCAN;
调用扫描子程序
JNZNUM1;
有键按下时跳到NUM1
JMPBEGIN;
没键按下时循环执行
BEGIN
;
========================================
确定按下键的位置
NUM1:
CALLCCSCAN
JNZNUM2;
有键按下时跳到NUM2
JMPBEGIN;
没键按下时循环执行BEGIN
NUM2:
MOVCH,0FEH;
确定按下键在第一列
MOVCL,00H;
将CL清零
COLUM:
MOVAL,CH
MOVDX,MY8255_A;
将8255的A口地址赋给DX
OUTDX,AL;
将CPU中的AL值送到8255
的A口中,即送到x1、x2、
x3、x4中
MOVDX,MY8255_C;
将8255的C口地址赋给DX
INAL,DX;
将C口的值送到AL中
L1:
TESTAL,01H;
检验按下键是否在L1
JNZL2;
不是L1则跳到L2
MOVAL,00H;
为了后面用来与CHUSHU
数据段中数对应
JMPKCODE;
强制跳转到KCODE
L2:
TESTAL,02H;
检验按下键是否在L2
JNZL3;
不是L2则跳到L3
MOVAL,04H;
数据段中数对应。
JMPKCODE;
L3:
TESTAL,04H;
检验按下键是否在L23
JNZL4;
不是L3则跳到L4
MOVAL,08H;
L4:
TESTAL,08H;
检验按下键是否在L4
JNZNEXT;
不是L4则跳到NEXT
MOVAL,0CH;
KCODE:
ADDAL,CL;
实现AL与CL的无进位加法
MOVDL,2H
MULDL;
将AL乘以2结果保存到AX中
PLAY:
LEASI,CHUSHU;
使SI指向CHUSHU的首地址
ADDSI,AX;
通过SI加AX实现指针SI的移动
MOVDX,0FH
MOVAX,4240H;
被除数为0F4240H
DIVWORDPTR[SI];
除数为SI所指的数据
MOVDX,MY8254_A;
OUTDX,AL;
输出商的低4位
MOVAL,AH
输出商的高4位
MOVCX,8H;
输入计数值CX
NEXT3:
CALLDALLY;
调用延时子程序DALLY
CALLDALLY
CALLDALLY
LOOPNEXT3;
CX不为0重复执行NEXT3
MOVSI,30D
除数为SI=30所指的数据
OUTDX,AL
MOVAL,AH
实现静音,结束一个音符的发音
JMPBEGIN;
跳转到BEGIN,重复扫描
NEXT:
INCCL;
使CL加1,为了后面用来与
CHUSHU数据段中数对应
MOVAL,CH
TESTAL,08H
JZKERR;
无键按下时跳转到KERR
ROLAL,1D;
向左移位
MOVCH,AL
JMPCOLUM;
强制跳转到COLUM
KERR:
跳到BEGIN重新开始扫描
键盘扫描子程序
CCSCAN:
MOVAL,00H
MOVDX,MY8255_A
使8255芯片A端口输出
为0,既使x1、x2、x3、
X4为0
MOVDX,MY8255_C
INAL,DX;
将从C端口输入的y1、y2、y3、y4送到AL中
NOTAL;
将AL取反
ANDAL,0FH;
将AL前4位清零
RET
延时子程序
DALLY:
PUSHCX;
将CX压栈
MOVCX,000FH
T1:
MOVAX,0009FH
T2:
DECAX;
使AX减1
JNZT2;
AX不为0重复T2
LOOPT1;
CX不为0重复T1
POPCX;
将CX出栈
RET
MYCODEENDS;
代码段定义结束
ENDSTART;
程序结束
8.硬件接线图
(图6-1)
9.键盘与数码显示管工作原理
13
14
15
16
9
10
11
12
(L4)Y4
如图6-2
(L3)Y3
X组对应8255芯片的A口(X值为0)
(L2)Y2
Y组对应8255芯片的C口(Y值为1)
(L1)Y1
。
X1X2X3X4
(图6-2)
当有键按下时,该键的X、Y接触,Y值变为0,改变了输入8255芯片C
口的数值,从而与程序中的L1,L2,L3,L4对应,确定按键位置。
实现通过改
变键盘输入来改变8254输出频率,实现扬声器发音。
总结
通过这次课程设计我们学到了不少东西,真正认识到了微机原理的重要性,了解到了CPU,8255、8254等芯片功能的强大。
真正的运用自己的双手,完成了有生以来的第一个运用微机原理试验箱设计而成的作品,收获颇多!
当然,在设计的过程中我们遇到了很多的困难。
然而我们用耐心的去克服,用信心去解决。
并且在解决问题的过程中,学到了很多实际的知识,很多是书本上学不到的。
加深了我们对微机原理应用的认识
以前的上机课上,我们所应用的程序都是很简单的编程,实现的功能都比较简单,而本次课设要求我们掌握的知识比较综合,从分析到编程,再到连线,完完全全是一个独立系统的过程。
所以,在编制程序时遇到很多困难。
在解决问题时我们还体会到充分的调用用周围的资源是多么的重要。
我们的一些问题都是自己首先通过查书查资料,通过图书馆,通过网络来解决的,最后,在还没有解决的情况下,再去问老师。
这不仅培养了自己的解决问题的能力,同时,又熟悉了如何利用周边的资源快速有效的去解决问题。
给我最深刻的是作程序的要能够沉的住气,要有耐性,耐磨!
一周的课程设计虽然短暂,但是我们全心地投入其中,养成了一种敢于钻研敢于创新的习惯,学会了静心钻研,与同组同学相互合作,如此才能把程序设计的更加完整,更加新颖!
通过课程设计,让我在课本的基础上,更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技巧。
可以说是收益匪浅!
最后,衷心的谢谢老师对我们的耐心指导,让我们能够顺利的迈进微机原理科学的殿堂,我相信我们会受益终生!
!
参考文献
王
萍编
《微机原理应用实践》
机械工业出版社,2001
周明德编
《微机原理与接口技术实验指导与习题集》
人民邮电出版社,2002
《微型计算机系统原理及应用》
清华大学出版社,1998
周
斌编
《微机计算原理及应用(第三版)》
清华大学出版社,2001
颐编
《微机原理及应用实验教程》
重庆大学出版社,1998
潘
峰编
《微型计算机原理与汇编语言》
电子工业出版社,1997
《微机原理与应用》大连理工大学出版社
《微机原理与接口技术》北京航空航天大学出版社
《微型计算机原理与汇编语言》电子工业出版社
《8088/8086汇编语言程序设计》中央广播电视大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 简易 电子琴 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)