单片机键盘乐器课程设计报告书

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工学院

课程设计报告

(2015 ~2016学年度第二学期)

课程名称接口技术与外部设备课程设计名称键盘电子乐器

学号

专业

班级

地点

教师

1.课程设计目的及要求

1)、实验目标、功能设计要求:利用并行接口8255作为键盘接口,设计一个具有2个八度音阶的键盘乐器,音阶键不少于16个,采用扫描方式管理键盘,音域围自行定义。 2)、软件、硬件环境:Windows XP 、1G 存

2. 课程设计步骤 (1) 弄明白设计题目

(2) 查阅资料,搞清楚8253和8255的工作原理。 (3) 上网查阅相关资料 (4) 编程实现

(5) 完成课程设计报告

3. 课程设计容 1)、设计概述

(a) 开发平台:masm (b) 参考书籍:《微型计算机接口技术及应用》、《IBM —PC 汇编语言课程设计》、《手把手教你学单片机》 2)、处理流程 (a)8253 引脚图

1224

12…

1413GN D D 7D 6D 5D 4D 3D 2

D 1D 0CLK 0OUT 0GAT

E 0

V CC W R

D C

S A 1A 0CLK 2

OUT 2

GATE 2CLK 1

GATE 1OUT 1…

8253/8254

图3.1 定时/计数器8253/8254 引脚图

B

1234567891011121314151617181920

4039383736353433323130292827262524232221

P A3P A2P A1P A0RD CS GND A0A1P A7P A6P A5P A4P A0P A1P A2P A3P B0P B1P B2

P A5P A6P A7P A0WR RESET D0D1D2D3D4D5D6D7Vcc P A7P A6P B5P B4P B3

8255

4. 课程设计结果 运行正确:

摁键盘Q~U :能发低音

摁键盘A~J :能发比上行高一音阶的音频 摁键盘Z~M :能发比上行更高一音阶的音频

5. 课程设计总结分析

组员分工及评分:查找资料:阳吉红(B )、董湘北(B ) 程序修改实现:媚(B +)

董湘北自我评价:接到课程设计题目,刚开始刚到非常的棘手,通过翻阅了上学期的《汇编语言程序实验教程》,了解到控制电路是以位触发和定时器控制两种不同的方式驱动扬声器发声,8253驱动扬声器,8255接受输入的数据。实验完成还行,巩固了硬件知识。

阳吉红自我评价:这个实验中我们遇到了很多问题但在老师和同学的帮助下得到了解决

开 始

获取中断向量

调用8253,驱动扬声器 返回中断向量 设置中断向量

调用8255,按键发声

返回DOS

,这个实验让我了解了接口实验的基本要求,总之学到不少东西啦。

媚自我评价:学完接口技术这门课程,觉得自己学得还可以。但是做完课程设计,才发现自己学得远远不够。虽然课程设计做得不是非常好,但是,还是学到一些东西。知道了8253不近可以用来做计数器,还能编程驱动扬声器。我们这个课程用到了8253和8255。8253用来驱动扬声器,8255用来接受从键盘输入的数据。

总的来说,结果还不是太坏。还是学到了一点东西。

6. 附录(源程序)

DATAS SEGMENT

;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODE SEGMENT

ASSUME CS:CODE

D1=131;设置音频围

D2=147

D3=165

D4=175

D5=196

D6=220

D7=247

Z1=262

Z2=294

Z3=330

Z4=349

Z5=392

Z6=440

Z7=494

G1=523

G2=587

G3=659

G4=714

G5=784

G6=880

G7=988

OLDINT8 DD ?

OLDINT9 DD ?

TIME DW 0

ASCII DB10H,11H,12H,13H,14H,15H,16H

DB 1EH,1FH,20H,21H,22H,23H,24H

DB 2CH,2DH,2EH,2FH,30H,31H,32H MUSIC DW D1,D2,D3,D4,D5,D6,D7

DW Z1,Z2,Z3,Z4,Z5,Z6,Z7

DW G1,G2,G3,G4,G5,G6,G7

NEWINT8: DEC CS:WORD PTR TIME ;指向TIME JZ CLOSEV

NEW8_0:JMP CS:OLDINT8

CLOSEV:PUSH AX

IN AL,61H

AND AL,0FDH

OUT 61H,AL

POP AX

JMP NEW8_0

VOICE:MOV CX,AX

MOV DX,12H

MOV AX,34DCH

DIV CX

PUSH AX

MOV AL,0B6H

OUT 43H,AL

POP AX

OUT 42H,AL

XCHG AL,AH

OUT 42H,AL

IN AL,61H

OR AL,03H

OUT 61H,AL

RET

NEWINT9: IN AL,60H

PUSH AX

IN AL,61H

OR AL,80H

OUT 61H,AL

AND AL,7FH

OUT 61H,AL

MOV AL,20H

OUT 20H,AL

STI

POP AX

PUSH AX

CMP AL,80H

相关文档
最新文档