华北电力大学微机原理课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
( 2013—2014 年度第一学期)
课程:微机原理及应用
题目:电子琴及电子播放器
院系:自动化系
班级:自动化1103
学号: 201111010122
201109010113
201102020331
学生姓名:詹文超
靳朝阳
张晓
指导教师:张妍
设计周数:一周
成绩:
日期:2014年1 月10 日
微机原理及应用课程设计报告
一、目的与要求
1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力。
二、主要内容
1. 电子琴及电子播放器
2. 系统介绍
本设计不仅可以实现小键盘电子琴演奏,还可以通过拨码开关播放不同的电子音乐,主要有小星星,两只老虎和欢乐颂。硬件设计用到8253和8255芯片,8253工作在方式3,产生一定的频率方波,同时对应着不同音调;8255为可编程接口芯片,用于整个系统的开关控制功能。
3. 系统实现的功能
系统主要实现三个功能:
1、自动演奏3首歌曲;
2、利用小键盘手动演奏;
3、歌曲之间的相互切换。
4.所用芯片的工作原理
(1)8253原理
8253有3个独立的计数通道,每个通道结构相同,例若clk0给定频率,向控制字寄存器写入控制字,并向计数器0写入计数初值,采用不同的方式即可产生不同的频率。
8253的内部结构
(1).数据总线缓冲器
实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信
息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。
(2).读/写控制逻辑
控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
(3).控制字寄存器
在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
(4).计数通道0#、1#、2#:
这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。
(5).8253外部引脚
8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:
1.D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
2.RD:来自于CPU的读控制信号输入引脚,低电平有效。
3.WR:来自于CPU的写控制信号输入引脚,低电平有效。
4.CS:芯片选择信号输入引脚,低电平有效。
(6). 8253端口地址
(2)8255原理
8255有3种工作方式:方式0,方式1,方式3,本次设计用方式0。在这种方式下,任何一个端口可以通过方式控制字规定作为输入口,也可作为输出口; 8255A有两个控制字:方式选择控制字和端口C置位/复位控制字。方式选择控制字的最高位总是1,而端口C置位/复位控制字的最高位总是0,用来区分两个控制字。
8255初始化方式如下图
5.系统分析
(1)系统原理
在了解8253,8255工作原理之后,我们利用2个开关从8255芯片A口输入不同数值,00,01,10,11.利用编程区分4中状态,跳入4个循环,即可演奏3首歌曲和手动电子琴。8253则是事先算好初值,送如计数器。每个频率可产生不同的音。每个音之间停顿相应时间,每个句子之间停顿相应时间,即可演奏完每首歌曲。
每首歌曲和每个句子末尾有数字1,2判断是否停顿或者跳入下一首歌,实现每首歌之间的转换。
小键盘演奏则是利用一些算法得知每个健的值会存入al寄存器中,利用al中的值,判断al大小,设置数据段7个健值,取出响应频率设置循环即可弹奏。
(2)系统思路分析
系统从实现一个音开始,到完成一首歌的编曲,之后加入判断语句,进行第二首,第三首歌的编曲即已完成自动播放部分。之后单独进行小键盘分析,取出主要部分,判断出运作原理利用最终al的值进行频率换算。融入前一部分完成的歌曲中,反复调试完成。
三.实验总结
1.实验要点和问题分析
(1)计数值足够,所以只采用1个计数器,计数初值在程序中计算不便,所以定义数据段,根据clk0的频率和要产生的频率,计算初值,写入数据段;
(2)改变开关状态,读入数据相应跳转,3首固定歌曲都跳入同一循环W1进行演唱,简短程序;
(3)演唱完一首歌曲才可以进入下首歌曲,所以要在这首歌曲演唱完之前,改变开关状态;
(4)每首歌曲句末为1,2是判断是否加停顿和换歌;
(4)为防止程序太长,超出跳转地址,每次判断都跳到Wo处,简短程序;
(6)小键盘的程序需要看懂如何判别是那个健,最终值存入al中,根据al的值为1-7定义数据段1-7的频率,用si+al*2的值作为地址即可取出相应频率。
(7)1-7之外的数据不要等待,1-7的键入后,去掉停顿,按键长按则一直发生,可控制长短调。
2.实验心得
本次试验从最开始的尝试到最后全部完成,历经很长时间,做了很多努力,让我们都非常欣慰,在做实验的过程中,不断尝试,优化,大大提高了我们的团队合作能力和专业知识的掌握,关键是学和玩相结合,设计的过程虽然有点辛苦,但都很开心,我认为这点很重要。希望每次的实验都可以从兴趣而发,以乐趣结束,不再为书本而苦恼。相信我们会越做越好。另外感谢老师的耐心指导,给了我们很大的帮助。本次课设圆满成功。
四.参考文献
微机原理及应用马平姚万业王柄谦中国电力出版社2003年4月第一版