单片机键盘乐器课程设计报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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