计算机硬件技术基础实验报告Word下载.doc
《计算机硬件技术基础实验报告Word下载.doc》由会员分享,可在线阅读,更多相关《计算机硬件技术基础实验报告Word下载.doc(28页珍藏版)》请在冰点文库上搜索。
DALLYPROC
D0:
MOVCX,200H
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
RET
DALLYENDP
N个单位延时时间(N送至DL)
DECDL
JNZD0
下面提供了乐曲《友谊地久天长》的频率表和时间表。
频率表是将曲谱中的音符对应的频率值依次记录下来(B调、四分之二拍),时间表是将各个音符发音的相对时间记录下来(由曲谱中节拍得出)。
频率表:
FREQ_LISTDW371,495,495,495,624,556,495,556,624;
DW495,495,624,742,833,833,833,742,624
DW624,495,556,495,556,624,495,416,416,371
DW495,833,742,624,624,495,556,495,556,833
DW742,624,624,742,833,990,742,624,624,495
DW556,495,556,624,495,416,416,371,495,0
时间表:
TIME_LISTDB4,6,2,4,4,6,2,4,4;
DB6,2,4,4,12,1,3,6,2
DB4,4,6,2,4,4,6,2,4,4
DB12,4,6,2,4,4,6,2,4,4
DB6,2,4,4,12,4,6,2,4,4
DB6,2,4,4,6,2,4,4,12
频率表和时间表是一、一对应的,频率表的最后一项为0,作为重复的标志。
根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。
将时间表中相对时间值带入延时程序来得到音符演奏时间。
实验参考程序流程如图1所示。
五,实验步骤:
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2)首先运行CHECK程序,查看I/O空间始地址。
(3)利用查出的地址参考流程图编写程序,然后编译链接。
(4)参考图2所示连接实验线路。
(5)运行程序,听电子发声单元的扬声器发出的音乐是否正确。
图1电子发声设计实验参考程序流程图
图2电子发声设计实验参考接线图
;
Sound.asm
电子发声设计实验
****************根据查看端口资源修改下列符号值*******************
IOY0EQU9C00H
*****************************************************************
MY8254_COUNT0EQUIOY0+00H*4;
8254计数器0端口地址
MY8254_COUNT1EQUIOY0+01H*4;
8254计数器1端口地址
MY8254_COUNT2EQUIOY0+02H*4;
8254计数器2端口地址
MY8254_MODEEQUIOY0+03H*4;
8254控制寄存器端口地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
FREQ_LISTDW371,495,495,495,624,556,495,556,624;
频率表
DW495,495,624,742,833,833,833,742,624
DW624,495,556,495,556,624,495,416,416,371
DW495,833,742,624,624,495,556,495,556,833
DW742,624,624,742,833,990,742,624,624,495
DW556,495,556,624,495,416,416,371,495,0
TIME_LISTDB4,6,2,4,4,6,2,4,4;
时间表
DB6,2,4,4,12,1,3,6,2
DB4,4,6,2,4,4,6,2,4,4
DB12,4,6,2,4,4,6,2,4,4
DB6,2,4,4,12,4,6,2,4,4
DB6,2,4,4,6,2,4,4,12
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,MY8254_MODE;
初始化8254工作方式
MOVAL,36H;
定时器0、方式3
OUTDX,AL
BEGIN:
MOVSI,OFFSETFREQ_LIST;
装入频率表起始地址
MOVDI,OFFSETTIME_LIST;
装入时间表起始地址
PLAY:
MOVDX,0FH;
输入时钟为1.0416667MHz,1.0416667M=0FE502H
MOVAX,0E502H
DIVWORDPTR[SI];
取出频率值计算计数初值,0F4240H/输出频率
MOVDX,MY8254_COUNT0
OUTDX,AL;
装入计数初值
MOVAL,AH
MOVDL,[DI];
取出演奏相对时间,调用延时子程序
CALLDALLY
ADDSI,2
INCDI
CMPWORDPTR[SI],0;
判断是否到曲末?
JEBEGIN
MOVAH,1;
判断是否有按键按下?
INT16H
JZPLAY
QUIT:
MOVDX,MY8254_MODE;
退出时设置8254为方式2,OUT0置0
MOVAL,10H
MOVAX,4C00H;
结束程序退出
INT21H
DALLYPROC;
延时子程序
MOVCX,200H
MOVAX,0FFFFH
DECAX
JNZD2
LOOPD1
DECDL
JNZD0
RET
DALLYENDP
CODEENDS
ENDSTART
初始效果:
播放了《友谊天长地久》
修改点:
FREQ_LIST和TIME_LIST
重新编排了了频率表和时间表的内容
修改效果:
发出了音乐《两只老虎》
修改后代码:
IOY0EQU0d800H
FREQ_LISTDW262,294,330,262,262,294,330,262,330,350,393,330,350,393;
DW393,441,393,350,330,262,393,441,393,350,330,262
DW294,196,262,294,196,262
TIME_LISTDB4,4,4,4,4,4,4,4,4,4,8,4,4,8;
DB2,2,2,2,4,4,2,2,2,2,4,4
DB4,4,8,4,4,8
MOVCX,0A00H
六,实验心得
这是我们第一次接触硬件实验,第一次接触TD-PIT+实验系统,以前都只是在书本上看过有关方面的内容,这次终于见到真的了!
我们怀着好奇和激动的心情完成了这次实验,但总体来说效果没有想象中的那样美好,我们不懂的东西太多了。
虽然实验倒是圆满完成了,但我们只是像个技工一样按照讲义按部就班地把线接好,把程序改好,至于线路为什么要这样连接,具体的程序语言是什么意思却并不是很清楚,整体的认识和把握还是比较模糊的。
不过这个实验还是极大地激发了我们的好奇心,在课后我们查阅了一些文献,大致了解一些关于电子发生器的原理以及运用,我们了解到它很重要的一个作用就是用作有源消声器,就是一种在风道内,用电脑控制电子发声器产生一种与需消噪声的频率、强度相合,但相位相反的干涉声波来消除噪声的消声装置。
有源消声器基本原理是在原来的声场中,利用电子设备再产生一个与原来的声压大小相等、相位相反的声波,使其在一定范围内与原来的声场相抵消。
有源消声器被广泛使用于发电、化工、冶金、纺织等工业厂矿中用于各种型号锅炉、汽机排汽;
风机;
安全门等设备的消声降音。
实验二点阵LED显示设计实验
学习点阵LED的操作方法。
使用基本输入输出单元中的两路输出OA[7:
0]和OB[7:
0]分别控制点阵LED的行控制R[7:
0]和列控制L[7:
0]。
编写程序,使点阵LED的每一行和每一列依次循环显示。
四,实验说明
8×
8点阵LED相当于8×
8个发光管组成的阵列,其中每一行共用一个阳极(行控制),每一列共用一个阴极(列控制)。
行控制和列控制满足正确的电平就可使相应行列的发光管点亮。
实验平台上点阵LED的管脚及相应的行、列控制位如图1所示。
(a)(b)
图18×
8点阵LED管脚图
本实验利用基本输入输出单元的两路输出分别控制点阵LED的行和列,编写一个简单的程序,使每一行和每一列依次循环显示。
参考程序流程如图2所示。
五,实验步骤
(2)首先运行Tdpit集成操作软件,检查端口资源分配情况。
记录与所使用片选信号对应的I/O端口始地址。
(3)利用查出的地址编写程序,然后编译链接。
(4)实验参考接线如图4所示连接实验线路。
(5)运行程序,观察LED显示是否正确。
图2点阵LED显示实验参考程序流程图
图38×
8点阵LED显示实验参考接线图
图416×
16点阵LED显示实验参考接线图
源代码:
Led-HZ.asm
32位LED点阵汉字显示实验
INCLUDELED-HZ.inc
.386P
IOY0EQU0DC00H;
片选IOY0对应的端口始地址
STACK1SEGMENTSTACK
DATASEGMENTUSE16
ADDRDW?
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
MOVAX,DATA
MOVDS,AX
A2:
MOVADDR,OFFSETHZDOT;
取汉字数组始地址
MOVSI,ADDR
A1:
MOVCX,20H;
控制1屏显示时间
LOOP2:
CALLDISPHZ
SUBSI,32
LOOPLOOP2
KEY:
MOVAH,1;
INT16H
JNZQUIT
ADDSI,2
MOVAX,SI
SUBAX,ADDR
CMPAX,352;
比较文字是否显示完毕
JNBA2
JMPA1
MOVEAX,0;
灭灯
MOVDX,IOY0
OUTDX,EAX
MOVAX,4C00H;
INT21H
DISPHZPROCNEAR;
显示1屏汉字子程序
PUSHCX
MOVCX,16
MOVBX,0FFFEH
LOOP1:
MOVAL,BYTEPTR[SI]
MOVAH,BYTEPTR[SI+1]
ROLEAX,16
MOVAX,BX
ADDSI,2
ROLBX,1
NOTEAX
CALLDALLY
LOOPLOOP1
POPCX
RET
DISPHZENDP
DALLYPROCNEAR;
软件延时子程序
MOVAX,0FFFFH
DECAX
JNZD1
DALLYENDP
CODEENDS
ENDSTART
DATASEGMENT
HZDOT:
空白
DB000H,000H,000H,000H,000H,000H,000H,000H
西CCEF7
DB000H,000H,0FFH,0FFH,060H,006H,060H,006H
DB0FEH,07FH,066H,066H,066H,066H,066H,066H
DB066H,066H,036H,07CH,01EH,060H,00EH,060H
DB006H,060H,0FEH,07FH,006H,060H,000H,000H
安CB0B2
DB0C0H,000H,080H,001H,0FCH,0FFH,00CH,060H
DB066H,030H,0E0H,000H,060H,000H,0FFH,0FFH
DB030H,00CH,030H,00CH,030H,006H,0E0H,003H
DB080H,001H,0E0H,007H,038H,03CH,00FH,018H
唐CCCC6
DB080H,001H,000H,003H,0FCH,07FH,00CH,003H
DB0FCH,01FH,00CH,01BH,0FCH,07FH,00CH,01BH
DB0FCH,01FH,00CH,003H,0FCH,01FH,03CH,018H
DB036H,018H,0F6H,01FH,0