课程设计简易电子琴设计
- 格式:doc
- 大小:71.00 KB
- 文档页数:12
一设计任务描述
1.1设计题目:
简易电子琴设计
1.2设计目的
通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。具体要求如下:
(1)可以弹出7个音阶;
(2)弹奏简短音乐;
(3)通过改变键盘输入来改变8254输出频率,实现扬声器发音。
1.3设计要求
1、总体内容:设计简易电子琴,能发出至少7种音阶;
2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过;
3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释;
4、前期完成的实验有:8255并行接口实验。
1.4简易电子琴
电子琴简单功能实现以及利用由8255芯片控制的小键盘(含数码管、键盘阵列)实现控制电子琴。主程序由电子琴和键盘控制的两个程序有机组成,两个程序简单拼凑在一起是不能实现的。经过实际调试和修改,将原电子琴程序改为2个子程序:start(实现播放音阶)和delay(实现播放音阶时延时);将原键
盘控制程序改为1个主程序:ccscan(实现键盘扫描)。
各个子程序通过寄存器通信,寄存器存有当前输入的键盘码,同时为电子琴和键盘控制两子程序服务。调试后,主程序能实现课程设计要求的功能。
二设计概要
2.1设计内容
本次课程设计的内容为简易电子琴的设计与实现,利用8255将键盘输出值返回CPU,CPU通过分析命令8254输出相应频率的方波波形,再经过扬声器发出声音。
由于PC计算机的时钟晶振为1.1931816MHz,可以利用微机实验箱里面的发生单元发出声音。
表2.1 各音阶标称频率值:
2.2设计环境与器材
(1)PC计算机一台
用于对程序的编译测试等,实现对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱一台
此设备提供了8255、8259等必要芯片。并且能通过接受计算机传来的信息,实现相应的功能。
(3)导线若干条
用于电路和芯片之间的连接。
2.3主要芯片功能
2.3.1 8255主要功能
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被
控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2.1所示:
图2.1 内部结构及引脚
如图2.1所示,D0~D7为双向数据信号线,用来传送数据和控制字。
为读信号线,与其他信号线一起实现对8255接口的读操作。通常接系统总线的信号。
为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的。
为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作。
A0、A1为口地址选择信号线。本次设计使其分别与系统总线的XA1、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:
A1A0选择
0 0 A口
0 1 B口
1 0 C口
1 1 控制寄存器
RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
这里的8255接口所占地址范围为0640H~067FH。当对8255接口进行写操作时,各信号线的状态如下表所示:
8255在应用过程中,将不同的控制字装入芯片中控制寄存器,即可确定8255的工作方式。
8255在应用过程中,将不同的控制字装入芯片中控制寄存器,即可确定8255的工作方式。8255的控制字由8位二进制数构成,各位的控制功能如下图:
图2.2 置位/复位控制字格式
2.3.2 8254主要功能
8254具有3个独立的16位计数器,6种不同的工作方式。计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号。
三硬件接线图及流程图
3.1 硬件接线图