计算机硬件课程设计 电子琴.docx
《计算机硬件课程设计 电子琴.docx》由会员分享,可在线阅读,更多相关《计算机硬件课程设计 电子琴.docx(49页珍藏版)》请在冰豆网上搜索。
计算机硬件技术基础课程设计
电子琴
小组成员及分工:
XXXXXXXX
指导老师:
唐丹
班 级:
自动化03班
重庆大学自动化学院
重庆大学计算机硬件技术基础课程设计
目录
目录 2
摘要 2
1.设计目的与意义 3
1.1设计目的 3
1.2设计意义 3
2.课程设计的任务和思路 4
2.1设计任务 4
2.2设计思路 4
3.硬件工作原理 7
3.18255工作原理 7
3.28254工作原理 8
3.3扬声器模块工作原理 9
3.4三色LED数显 10
3.54X4非编码键盘 11
4.功能说明 12
4.1总体功能说明 12
4.1.1主程序说明 12
4.2弹奏功能说明 13
4.2.1音符选择 14
4.2.2音阶选择 14
4.2.3弹奏实现 14
4.2.4流程图 14
4.3回放功能 15
4.4歌曲播放功能 17
4.5显示功能 18
5.组员心得体会 19
心得体会1:
19
心得体会2:
21
心得体会3:
23
心得体会4:
25
6.操作说明书 27
6.1连线要求 27
6.2使用电子琴弹奏乐曲以及使用各个子功能的方法 28
7.整体程序清单 29
Ⅰ
摘要
通过大三上学期对《计算机硬件技术》课程的学习,我们初步掌握了一些计算机硬件工作的基本原理、汇编语言程序设计方法,建立了微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力。
为了更好的理解和掌握学习到的知识,也为了更深入的了解熟悉可编程定时器8254和8255,我们试图通过编程使8255识别输入键值,通过8254识别发声,达到通过按键控制扬声器发声频率的目的,从而模拟电子琴的工作原理。
由于本电子琴设计简单,方便改装用于其他实用领域,如报警器、门铃、儿童玩具等,具有一定的实用价值。
要完成一个简易的电子琴,要求我们利用相关已经学过的芯片连接成一个电子电路,并且通过自己用汇编语言编程,控制设计的电子电路实现电子琴的一些功能,比如通过高中低音键和音调键分别控制发出高低音的1、2、3、4、5、6、7音调,比如播放预先存储的歌曲,比如回放上一个弹奏的歌曲等。
本文首先介绍了设计目的、意义、任务及思路,接着简单介绍了各个元器件的工作原理,然后以流程图的形式展现了各程序的基本思路,再介绍了一些具体功能是如何实现的,在附录中还附带了完整的程序,最后描述了组员的心得体会。
1.设计目的与意义
1.1设计目的
计算机硬件技术课程设计是对所学课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。
课程设计要求同学们熟悉汇编语
言的编程、连接、调试、运行等步骤,以及设计中所设计的相关软硬知识。
通过课程设计,一方面提高运用汇编语言变成解决实际问题的能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。
1.2设计意义
通过课程设计要进一步锻炼在微型计算机应用方面的实际工作能力。
计算机科学是一门应用型学科,学习时必须紧密联系实际,要强调实际问题的能力。
通过设计学会面对一个实际问题时如何分析问题、收集资料并且如何将理论知识运用于实际生活中,解决实际问题。
2.课程设计的任务和思路
2.1设计任务
设计一个电子琴,以扬声器作为发声装置,以4X4小键盘作为输入装置,模拟电子琴的琴键和功能按键,嗲子清具有低、中、高三个音阶,能弹奏曲目在计算机硬件试验系统基础上,完成扬声器模块的设计,完成基本功能,并在此基础上完善并优化系统功能。
(1)按“1—7”中的任一数字键,则发出对应的中音;
(2)若按下“高音键”和“1—7”中的任一数字键,则发出对应的高音;
(3)若按下“低音键”和“1—7”中的任一数字键,则发出对应的低音;
(4)弹奏时要求能够区分节拍、音调、音阶和休止符。
2.2设计思路
电子琴的设计实际上就是要设计一个程序,通过识别按键,控制扬声器模块的振动频率,从而发出不同的音调。
扬声器模块是通过并行接口芯片8255和定时芯片8254来控制发音的,其电路连接方式如下图所示。
频率
OUT2
GATE2
CLK2 8254
PC8
1
8255A
扬声器模块
&
图1扬声器控制电路
扬声器是由8254通道2产生的方波信号驱动发声的。
要想让扬声器发声,除了电源和接地外,,还需要一个引脚给予振动频率才能正常工作。
同时当8255的PC7置1,,使得8254的GATE为高时。
OUT2引脚上才能产生一定频率的方波信号驱动扬声器,使扬声器发声。
因此,可以通过对8255的PC7的设置来控制扬声器的开通和关断,而其发音频率可以通过改变8254通道2的计数初值来控制。
因此设计程序的任务就是要通过识别按键来设置8255的PC7输出电平的高低,以及设置8254通道2计数初值。
在实际的课程设计中,因为计数初值的设置、8254的CLK频率的选择等原因,我们给予8254用于参与计算高低中音的程序频率和实际OUT2口输出的驱动频率有
点不同,以下两表分别为OUT2口输出频率和程序中用于计算的频率:
音符
1
2
3
4
5
6
7
频率(低)
131
147
165
175
196
220
247
频率(中)
262
294
330
349
392
440
494
频率(高)
524
588
660
698
784
880
988
表一:
OUT2口输出的驱动频率
音符
1
2
3
4
5
6
7
频率(低)
101
112
125
134
151
167
186
频率(中)
202
224
250
268
302
334
372
频率(高)
402
448
500
536
604
668
744
表二:
程序中参与计算8254计数初值的频率
3.硬件工作原理
3.18255工作原理
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8
位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片
(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
8255的内部结构图如图2所示,它有3个数据端口,分为两组,
A组由A口和C口高四位组成,B组由B口和C口低四位组成。
其方式控制字如图3所示。
图28255内部结构图
图38255控制字
3.28254工作原理
8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。
人们所使用的微机内的动态存储器刷新电路、系统日时钟的技术以及发声系统的声源都是由8254芯片来参与完成工作的。
每个8254芯片有3个独立的16位计数器通道,每个计数器有6中工作方式,都可以按二进制或十进制(BCD码)计数。
8254芯片主要由数据总线、缓冲器、读写逻辑控制字、寄存器、计数器四部分组成。
其中当计数器工作在方式3时,输出信号为方波信号。
图48253内部结构图
图58253控制字格式
8254的通道0,通道1,通道2,控制口的端口地址分别为:
300H,304H,308H,30CH。
因为扬声器是由通道2来控制的,故应选择通道2,工作方式选为方式3,输出的信号则为方波信号。
3.3扬声器模块工作原理
扬声器模块式有8254以方式3产生的方波信号驱动发声的。
该发声驱动系统由8255的PC7口经控制8254的GATE电平高低控制定时计数开始与结束的。
3.4三色LED数显
8255A并行模块中共有4片8255A芯片,每个8255A芯片的输出控制了两个共阳极8段LED,通过PCI总线接口与其相连,下面为电路图和端口地址,字型码和LED显示颜色选择表格
3.54X4非编码键盘
在拓展的实验板上有4行4列非编码键盘,按键的行、列信号用过插孔引出,行信号通过插孔P0-P3引出,列信号用过插孔Q0-Q3引出,4X4非编码键盘电路图如下图所示。
4.功能说明
4.1总体功能说明
8254的A口与B口分别连接4X4键盘的行与列,从中读取键值,确定音符,1—7按键分别对应1—7音符。
C口连接两个开关,读取选择的音阶,若K1K2=01则为高音,若K1K2=01则为低音,否则为中音。
8255根据选择的音符与音阶根据音符频率表确定需要的发声频率Hz送给8254。
8254的CLK频率为3MHz,由N=3MHz /Hz确定
8254计数初值N。
8254工作在方式3,通过OUT 口以方波形式将发声频率传给发声模块。
发声模块通过不同的频率选择不同的音符与音阶发声。
当不需要发声时,使8254的GATE为低电平。
4.1.1主程序说明
程序开始运行后,首先读取开关状态,若没有键按下,则进入弹琴子程序,否则判断是回放还是放音键。
若为回放键,则进入回放子程序,否则进入播放子程序。
进入子程序后,判断是否结束或中断。
若不是则重复运行子程序,否则重新读取开关。
主程序的流程图如下图所示:
4.2弹奏功能说明
图6主程序流程图
开始
读取开关
回放
是否有键按下
是
是播放还是回放
否
播放
进入弹琴子程序
进入播放子程序
进入回放子程序
是否结束或中断
否
是否结束或中断
否
是否结束或中断
否
是
是
是
首先根据音符音阶表建立音阶表LOW、MID、HIGH。
根据K1K2选择高中低音,由LEA指向相应表。
再根据8255读取按键值,若没有按键按下,则重新开始选择音阶读取键值,若有键按下则根据键值选择偏移地址放入SI中,从而准确判断选择发音频率,送往扬声器。
再令GATE为高电平,开启扬声器发声。
发声时不断扫描键盘和功能键,若有键盘键按下则重新根据相应的音符发声,若有功能键
按下则关闭扬声器。
4.2.1音符选择
扬声器发音的频率是由8254产生方波的频率决定的,而方波频率又是由通道的计数初值来决定的,因此可以通过改变通道的计数初值来实现变调功能。
计数初值N=时钟频率/音阶频率,时钟频率为3MHZ,可以将相应音调对应的时钟频率存入内存单元,当选择相应的音调时,计算计数初值时,采用对应的时钟频率值,
4.2.2音阶选择
高中低音阶主要是三组频率不同的音