计算机硬件技术基础实验报告.docx
- 文档编号:23099908
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:35
- 大小:224.94KB
计算机硬件技术基础实验报告.docx
《计算机硬件技术基础实验报告.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术基础实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
计算机硬件技术基础实验报告
计算机硬件技术基础实验
实验报告
学校:
__________________
院系:
__________________
学号:
__________________
姓名:
__________________
同组人员:
__________________
实验一电子发声设计实验
一,实验目的
学习用8254定时/计数器使扬声器发声的编程方法。
二,实验设备
PC微机一台、TD-PIT+实验系统一套。
三,实验内容
根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
四,实验说明及步骤
一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。
音符与频率对照关系如表1所示。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以发出这段乐曲的声音。
表1音符与频率对照表(单位:
Hz)
利用8254的方式3—“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。
计数初值的计算如下:
计数初值=输入时钟÷输出频率
例如输入时钟采用系统总线上CLK(1.041667MHz),要得到800Hz的频率,计数初值即为1041667/800。
对于每一个音符的演奏时间,可以通过软件延时来处理。
首先确定单位延时时间程序(这个要根据PC机的CPU频率做相应的调整)。
然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。
单位延时时间
DALLYPROC
D0:
MOVCX,200H
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
RET
DALLYENDP
N个单位延时时间(N送至DL)
DALLYPROC
D0:
MOVCX,200H
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
DECDL
JNZD0
RET
DALLYENDP
下面提供了乐曲《友谊地久天长》的频率表和时间表。
频率表是将曲谱中的音符对应的频率值依次记录下来(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
OUTDX,AL
MOVDL,[DI];取出演奏相对时间,调用延时子程序
CALLDALLY
ADDSI,2
INCDI
CMPWORDPTR[SI],0;判断是否到曲末?
JEBEGIN
MOVAH,1;判断是否有按键按下?
INT16H
JZPLAY
QUIT:
MOVDX,MY8254_MODE;退出时设置8254为方式2,OUT0置0
MOVAL,10H
OUTDX,AL
MOVAX,4C00H;结束程序退出
INT21H
DALLYPROC;延时子程序
D0:
MOVCX,200H
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
DECDL
JNZD0
RET
DALLYENDP
CODEENDS
ENDSTART
初始效果:
播放了《友谊天长地久》
修改点:
FREQ_LIST和TIME_LIST
重新编排了了频率表和时间表的内容
修改效果:
发出了音乐《两只老虎》
修改后代码:
;Sound.asm
;电子发声设计实验
;****************根据查看端口资源修改下列符号值*******************
IOY0EQU0d800H
;*****************************************************************
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_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
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
OUTDX,AL
MOVDL,[DI];取出演奏相对时间,调用延时子程序
CALLDALLY
ADDSI,2
INCDI
CMPWORDPTR[SI],0;判断是否到曲末?
JEBEGIN
MOVAH,1;判断是否有按键按下?
INT16H
JZPLAY
QUIT:
MOVDX,MY8254_MODE;退出时设置8254为方式2,OUT0置0
MOVAL,10H
OUTDX,AL
MOVAX,4C00H;结束程序退出
INT21H
DALLYPROC;延时子程序
D0:
MOVCX,0A00H
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
DECDL
JNZD0
RET
DALLYENDP
CODEENDS
ENDSTART
六,实验心得
这是我们第一次接触硬件实验,第一次接触TD-PIT+实验系统,以前都只是在书本上看过有关方面的内容,这次终于见到真的了!
我们怀着好奇和激动的心情完成了这次实验,但总体来说效果没有想象中的那样美好,我们不懂的东西太多了。
虽然实验倒是圆满完成了,但我们只是像个技工一样按照讲义按部就班地把线接好,把程序改好,至于线路为什么要这样连接,具体的程序语言是什么意思却并不是很清楚,整体的认识和把握还是比较模糊的。
不过这个实验还是极大地激发了我们的好奇心,在课后我们查阅了一些文献,大致了解一些关于电子发生器的原理以及运用,我们了解到它很重要的一个作用就是用作有源消声器,就是一种在风道内,用电脑控制电子发声器产生一种与需消噪声的频率、强度相合,但相位相反的干涉声波来消除噪声的消声装置。
有源消声器基本原理是在原来的声场中,利用电子设备再产生一个与原来的声压大小相等、相位相反的声波,使其在一定范围内与原来的声场相抵消。
有源消声器被广泛使用于发电、化工、冶金、纺织等工业厂矿中用于各种型号锅炉、汽机排汽;风机;安全门等设备的消声降音。
实验二点阵LED显示设计实验
一,实验目的
学习点阵LED的操作方法。
二,实验设备
PC微机一台、TD-PIT+实验系统一套。
三,实验内容
使用基本输入输出单元中的两路输出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所示。
五,实验步骤
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(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
DW256DUP(?
)
STACK1ENDS
DATASEGMENTUSE16
ADDRDW?
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
START:
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
QUIT:
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
MOVDX,IOY0
OUTDX,EAX
CALLDALLY
LOOPLOOP1
POPCX
RET
DISPHZENDP
DALLYPROCNEAR;软件延时子程序
MOVAX,0FFFFH
D1:
DECAX
JNZD1
RET
DALLYENDP
CODEENDS
ENDSTART
DATASEGMENT
HZDOT:
;空白
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
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,033H,018H,000H,000H
;都CB6BC
DB030H,000H,030H,0FCH,0FEH,0CFH,0B0H,06DH
DB0F0H,03CH,0FFH,01FH,030H,03CH,018H,06CH
DB0FCH,0CDH,08EH,0CDH,0FFH,0CDH,08CH,0FDH
DB08CH,06DH,0FCH,00DH,08CH,00DH,000H,00CH
;科CBFC6
DB0E0H,030H,03EH,033H,030H,036H,030H,036H
DB0FFH,030H,038H,033H,078H,036H,0FCH,036H
DB03CH,0F0H,036H,03EH,0F3H,033H,030H,030H
DB030H,030H,030H,030H,030H,030H,030H,030H
;教CBDCC
DB030H,00CH,030H,00CH,0FEH,00DH,0F0H,0FEH
DB0FFH,067H,030H,066H,018H,067H,0FCH,036H
DB067H,03CH,030H,03CH,0F0H,019H,03FH,018H
DB030H,03CH,030H,037H,0FCH,0E1H,018H,060H
;仪CD2C7
DB030H,003H,030H,006H,018H,03EH,0D8H,036H
DB0CCH,030H,0CEH,018H,08FH,019H,08CH,019H
DB00CH,00FH,00CH,00FH,00CH,006H,00CH,00FH
DB08CH,019H,0CCH,0F0H,07CH,060H,00CH,000H
;器CC6F7
DB0FCH,07EH,0CCH,066H,0CCH,066H,0FCH,07EH
DB080H,019H,080H,031H,0FFH,07FH,0E0H,007H
DB038H,01CH,00FH,0F0H,0FCH,07FH,0CCH,033H
DB0CCH,033H,0CCH,033H,0FCH,03FH,000H,000H
;公CB9AB
DB000H,000H,060H,006H,0E0H,006H,060H,006H
DB030H,00CH,030H,018H,018H,038H,0CCH,0F0H
DB0C6H,061H,0C0H,000H,060H,00CH,030H,018H
DB098H,03FH,0FCH,039H,018H,018H,000H,000H
;司CCBBE
DB000H,000H,0FCH,07FH,000H,060H,000H,060H
DB0FEH,06FH,000H,060H,000H,060H,0FCH,067H
DB00CH,066H,00CH,066H,0FCH,067H,00CH,066H
DB00CH,060H,000H,078H,000H,030H,000H,000H
;空白
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DATAENDS
初始效果:
LED屏上滚动显示“西安唐都科教仪器公司”
修改点:
DATASEGMENT
A1:
MOVCX,20H
原文为“西安唐都科教仪器”,现改编为实验小组两成员的名字和学院“材料的刘昊阳和冯恩科”,并且控制显示时间,使字幕滚动速度变慢
修改效果:
LED屏上以较慢速度滚动显示“材料学院的刘昊阳和冯恩科”
修改后代码:
;Led-HZ.asm
;32位LED点阵汉字显示实验
INCLUDELED-HZ.inc
.386P
;****************根据查看端口资源修改下列符号值*******************
IOY0EQU0DC00H;片选IOY0对应的端口始地址
;*******
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件技术基础 实验报告 计算机硬件 技术 基础 实验 报告