汇编接口综合实验 简易电子琴实验Word格式文档下载.docx
- 文档编号:6500853
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:24
- 大小:369.57KB
汇编接口综合实验 简易电子琴实验Word格式文档下载.docx
《汇编接口综合实验 简易电子琴实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编接口综合实验 简易电子琴实验Word格式文档下载.docx(24页珍藏版)》请在冰点文库上搜索。
8253A的1工作方式和3方式配合可以产生占空比不同的输出方波,用这种波形可控制电子音响发出不同的音调。
使用通道0和通道2,通道0的输出OUT0作为通道2的GATE2的门控信号;
通道0工作在3方式,产生一定周期的方波信号,通道2工作在1方式;
1方式虽然不是周期输出,但是在GATE2信号上升沿周期出现时,1方式可以重新计数。
通过对这两种工作方式的计数初值的合理设置,通道2可以产生不同频率的周期性信号,来控制扬声器的发声。
当3方式的方波周期大于1方式定时长度时,可通过改变1方式定时时间常数就可以改变方波的占空比(如下图2示);
当3方式的方波周期小于1方式定时长度时,1方式总处于定时期间(发声停止)。
图2波形图
3.8x8点阵LED灯显示
8x8LED灯的工作原理:
只要在行线R1-R8加上高电平,在列线C1-C8加上低电平,则两线交叉点的LED就会发光。
通过此原理我们计算出了‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’所对应的编码方案。
并通过逐列扫描并延迟的方法实现字母的显示。
图3-18x8点阵内部结构图
图3-28x8点阵外部图
举一个很简单的例子,将8X8点阵简化为1个平面有64个点图像,来确定其显示的编码形式,如代码中DATA部分的那个大的显示矩阵
以“0”来举例说明显示8X8点阵显示过程:
图3-28x8点阵‘0’显示
8X8点阵显示“0”是因为,我们将所有的列都置高电平,然后让需要显示的发光二极管对应的点的行置低电平,其他行的则置高电平,然后把置低电平的行码记为1其他的记0,再从左向右读,则可以得到一个8位的2进制数。
如上图所示,第1行和第8行是00H,第2行和第7行是18H,第3、4、5行都是24H
则“0”显示的编码是:
00H,18H,24H,24H,24H,18H,00H
三、实验分析与设计
1.硬件思路
小键盘部分:
因为小键盘的读入用的扫描法,4行必须使用输入,4列必须输出,所以我们用到8255的PA0-PA3作为输出,PB0-PB3作为输入。
8255片选接200H。
扬声器发声部分:
8253使用级联方式,OUT0接GATE2,OUT2接扬声器,片选接210H。
点阵显示部分:
8X8阵列行接A口,列接B口。
中断部分:
PC6接MIR5中断。
2.软件分析
查询流程图如下:
图4-1主程序图4-2小键盘子程序
图4-3发声子程序图4-48x8LED灯子程序
四、实验硬件连线图
根据以上描述的硬件设计思路,电路连接线应如下图所示。
图5-1发声子程序实验连线图
图5-2小键盘子程序(含数码管)实验连接图
图5-38X8LED灯子程序实验连接图
五、实验创意
我们应用了小键盘模块、扬声器和8x8点阵LED模块,同时结合8253A定时计数模块,8255并行接口模块,8299中断模块将整个实验联系起来,实现了一个简易电子琴的装置。
同时在8x8点阵显示了按键对应的字符显示,让这个电子琴看起来更加炫!
8*8点阵我们最初想随着音调的高低变化亮度和点的多少,在实现的时候发现效果并不明显,所以我们改成随着按键发声来显示对应的字符,效果比之前好得多。
另外,发声频率由8253A写入计数控制,基本音有7个,加上一个高一调,而键盘可控制16个,所以我们分为高音部和低音部,实现了一个转换音的效果,更加人性化。
其实,我们有更高的愿望,比如,我们希望可以小键盘弹奏一首歌后按键实现自动播放整首歌曲的功能,这样就更加完整了,但是因时间和能力关系没能实现。
我们还想用128x64LCD实现一个音阶才的实时变化,希望我们在今后的学习之余回顾这个实验时可以补上这些功能。
六、实验结果演示
1.实际实验连线图
黄线8255的A口连8*8点阵的行1~8,小键盘的行0~3,红线B口连点阵的列1~8,小键盘的列0~3。
绿线表示8253的级联和cs接法,黑线连接扬声器SIN和out2,中断MIR5接PC6。
2.8x8点阵各字母显示图(部分举例,未全部贴图)(‘2’‘5’‘8’‘9’‘A’‘B’‘D’‘E’)
3.声音视频见文件“实验效果视频”。
七、实验体会
崔雪莹:
本次实验我主要负责程序代码的编写和整个实验的设计,通过此次实验,我对于硬件编程有了更为深入的了解,懂得了怎样编写硬件的较大一点的程序,尤其是写代码的时候一定要思路清晰,明确的知道自己到底想要做些什么,怎么去设计这个实验,通过此次试验对于今后的硬件学习打下了很好的基础。
经过这次试验,我对8255等芯片以及小键盘、8X8LED灯、电子音响的工作原理有了更为全面、更为深刻的理解,锻炼自己独立的利用手上芯片进行独立编程的能力。
实验还有继续改进的地方,我会继续学习,更加深入的去学习和研究。
安容巧:
本次试验是接口课中最复杂的一次实验,第一次实验课之前我们小组就去实验室讨论试验内容,确定了试验内容之后开始代码的初步编写。
经过实验课和老师的指导,我们完善了设计方案,经过多次课下小组自己找时间自己做实验,最终完成了试验。
经过这次试验,我们队8255等芯片以及小键盘、8X8LED灯、电子音响的工作原理有了更为全面、更为深刻的理解。
小组一起做实验,一起讨论,让我们学会了团队合作,对以后的学习工作很有帮助。
张佳悦:
本实验考查的内容很多,不仅有课堂上所学习的汇编与接口的知识,还对我们团队小组的分工协作提出了很高的要求。
我们小组成员分工明确、各尽所能,为整个设计性实验的完成作出了贡献。
同时,在和小组成员的交流中,我也强化了自己对汇编程序的理解以及对接口知识的巩固。
最后的成果,我个人感到非常满意,达到了预期的效果。
汇编与接口方面还有很多我们不太会用但的确重要的东西需要我们在接下来的学习中深入研究和探索。
_______________________________________________________________________________
附件:
程序清单(加注释)
.modelsmall
.386
DATASEGMENT
KEY_NODB?
;
用来存储按键编号
;
8*8点阵显示时字符
D0DB00H,18H,24H,24H,24H,24H,18H,00H;
‘0’
D1DB00H,18H,18H,18H,18H,18H,18H,00H;
‘1’
D2DB00H,3CH,20H,20H,3CH,04H,04H,3CH;
‘2’
D3DB00H,3CH,20H,20H,3CH,20H,20H,3CH;
‘3’
D4DB00H,24H,24H,24H,3CH,20H,20H,20H;
‘4’
D5DB00H,3CH,04H,04H,3CH,20H,20H,3CH;
‘5’
D6DB00H,3CH,04H,04H,3CH,24H,24H,3CH;
‘6’
D7DB00H,3CH,20H,20H,20H,20H,20H,20H;
‘7’
D8DB00H,3CH,24H,24H,3CH,24H,24H,3CH;
‘8’
D9DB00H,3CH,24H,24H,3CH,20H,20H,3CH;
‘9’
DADB18H,3CH,66H,66H,7EH,66H,66H,66H;
‘A’
DB1DB00H,1CH,24H,24H,14H,24H,24H,14H;
‘B’
DCDB00H,18H,24H,04H,04H,24H,18H,00H;
‘C’
DD1DB00H,1CH,24H,24H,24H,24H,1CH,00H;
‘D’
DEDB00H,3CH,04H,04H,3CH,04H,04H,3CH;
‘E’
DFDB00H,3CH,04H,04H,3CH,04H,04H,04H;
‘F’
NUMERDB7FH,5BH,6DH,6FH,40H,77H
DIPINDW0EE8H,0D49H,0BD6H,0B41H,9F7H,8E1H,7E8H,778H,7A6H,700H,66BH,600H,55BH,500H,454H,400H;
频率表即计数器计数初值
DATAENDS;
前8个低音,后8个高音
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
CLI
MOVDX,21H;
设置主片中断屏蔽字
INAL,DX
ANDAL,11011111B;
使用MIR5
OUTDX,AL
CALLPREPARE;
调用PREPARE子程序,写入中断向量表
LOP:
CALLINKEY;
调用INKEY子程序,检测按键
CALLSHOWALPHA;
调用SHOWALPHA子程序,8X8点阵显示字母
JMPLOP;
循环
MOVAX,4CH;
程序结束
INT21H
中断服务程序
INTERPROC;
中断服务程序,进中断发声
PUSHDX;
保护寄存器
PUSHAX
CLI;
关中断
CALLLOUD;
调用发声子程序
MOVDX,20H;
发EOI中断结束命令
MOVAL,20H;
OCW2,非自动结束
STI;
开中断
POPAX
POPDX
IRET
INTERENDP
发声子程序
LOUDPROC
PUSHDX
MOVDX,213H;
初始化8253通道0
MOVAL,00110110B;
命令字,通道0,3方式
MOVDX,210H
MOVAX,0FF40H;
通道0,赋初值8000
OUTDX,AL;
先写低字节
MOVAL,AH
OUTDX,AL;
再写高字节
初始化8253通道2
MOVAL,10110010B;
命令字,1方式,方波
MOVDX,212H;
通道2
MOVSI,OFFSETDIPIN;
频率表首地址送SI
MOVAL,KEY_NO;
取键盘编号
MOVAH,0
ADDSI,AX;
相加得到键盘编号对应的计数初值
MOVAX,[SI];
取得对应的计数初值,送扬声器发声
OUTDX,AL
MOVAL,AH
CALLDELAY;
调用延时子程序
将通道0的周期改成小于通道二让发声停止
通道03方式
MOVDX,210H
MOVAX,00F4H;
通道0赋初值500
MOVAL,AH
RET
LOUDENDP
检测键盘子程序
INKEYPROC
按键之前不发声
通道0,3方式
MOVAX,01F4H;
CLI
MOVDX,203H;
初始化8255
MOVAL,10000010B;
A输出,B读入
MOVDX,200H;
输出PA为0以便下面获得是否有按键按下
MOVAL,0
WAIT1:
MOVDX,201H;
读入PB的值
ANDAL,0FH;
屏蔽无关位
CMPAL,0FH;
检测是否有列线为0
JZWAIT1;
没有按键输入就退出函数
CALLDELAY;
调用延时子程序
BEGIN2:
检测按下的是哪一个按键
MOVCH,04H;
循环检测4行
MOVCL,0FFH;
-1,保存按键编码
MOVBL,0EH;
行屏蔽码
LOP2:
MOVAL,BL;
从第0行开始扫描
把AL指示的行线置零
MOVDX,201H
INAL,DX;
读入列线状态
ANDAL,0FH;
CMPAL,0FH;
若某位为0,则表明检测到按键
JNZSAVE
ADDCL,4;
无按键,跳过一行键盘编号
SHLBL,1;
移动到下一行
DECCH;
行数减一
JNZLOP2;
继续扫描
JMPBEGIN2;
检测完4行,无按键按下,跳转到等待按键
SAVE:
;
保存按键号
INCCL
SHRAL,1
JCSAVE;
得到键盘编号
ADDCL,CL
MOVKEY_NO,CL;
保存键盘编号
STI
PC6按位置位触发中断
MOVAL,00001101B
发高电平
NOP
MOVAL,00001100B;
发低电平
INKEYENDP
写中断向量表子程序
PREPAREPROCNEAR
CLD
MOVAX,0
MOVES,AX
MOVDI,4*35H
MOVAX,OFFSETINTER
STOSW
MOVAX,SEGINTER
PREPAREENDP
8x8点阵显示子程序
SHOWALPHAPROC
PUSHBX
PUSHCX
MOVBL,KEY_NO;
判断是否有按键按下
CMPBL,-1;
寄存器BL中数据与-1比较
大于1则证明有按键,反之则无按键
MOVBH,3FH;
将3FH送到BH中,代表了8X8点阵有64个
JZEND1
MOVDX,203H
MOVAL,10000000B;
A输出,B输出
OUTDX,AL
NEXT1:
MOVBL,00000001B
MOVSI,OFFSETA;
得到偏移量
MOVAL,8
MULLED_NO
ADDSI,AX
MOVCL,8
NEXT:
MOVDX,201H
MOVAL,BL
MOVDX,200H
MOVAL,[SI]
CALLDELAY1
CALLDELAY1
INCSI
SHLBL,1
DECCL
;
刷完8列后就跳出
JNZNEXT
DECBH
JNZNEXT1
END1:
POPDX
POPCX
POPBX
RET
SHOWALPHAENDP
延时子程序
DELAY1PROC
MOVAX,0FFH
L:
DECAX
JNZL
DELAY1ENDP
DELAYPROCNEAR
MOVAX,0FFFFH
W:
JNZW
W2:
JNZW2
DELAYENDP
CODEENDS
ENDSTART
八、成员分工
崔雪莹(第一完成人):
整体代码框架,小键盘、中断、8255、显示8x8点阵等代码,撰写的实验报告包括实验目的,实验原理小键盘部分和电子琴发声部分,绘制全部实验原理图、实验流程图和实验连接图,实验分析,实验结果分析和图片,实验的全部代码及注释,实验报告的排版等。
安容巧(第二完成人):
8x8点阵字符代码部分,字母常数值计算,8x8字母显示调试,实验连线,撰写的实验报告部分:
8x8点阵流程图设计,8x8点阵代码注释,拍照及录制实验视频。
张佳悦(第三完成人):
8253代码,8x8点阵字符代码部分,字母常数值计算,8x8字母显示调试,实验连线,撰写的实验报告部分:
8x8部分代码注释,实验感想。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编接口综合实验 简易电子琴实验 汇编 接口 综合 实验 简易 电子琴