微机原理与接口技术实验Word文档格式.docx
- 文档编号:17834171
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:29
- 大小:25.11KB
微机原理与接口技术实验Word文档格式.docx
《微机原理与接口技术实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
如图7所示。
10.也可以通过
设置断点,断点显示如图8所示
,然后运行程序,当遇到断点时程序会停下来,然后观察数据。
可以使用E0000:
3000来改变该地址单元的数据,如图9所示,输入
11后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。
参考程序:
请参照随机软件中的Sample\ASM86\Wmd861.asm。
操作练习:
编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的
数据区中。
通过调试验证程序功能,使用E命令修改3500H单元开始的
数据,运行程序后使用D命令查看3600H单元开始的数据。
SSTACKSEGMENTSTACK;
定义堆栈段
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
SSTACK
START:
PUSHDS
XORAX,AX
MOVDS,AX
MOVSI,3000H;
建立数据起始地址
MOVCX,16;
循环次数
AA1:
MOV[SI],AL
INCSI;
地址自加1
INCAL;
数据自加1
LOOPAA1
MOVAX,4C00H
INT21H;
程序终止
CODEENDS
ENDSTART
练习2
移位
datasegment
da1db23h,98h,0d2h,00h,95h,7fh,0a6h,49h
da2db8dup(0)
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movsi,offsetda1
leadi,da2
movcx,8
lp:
moval,[si]
mov[di],al
incsi
incdi
looplp
movah,4ch
int21h
codeends
endstart
试验38数字累加和
sumdw?
movax,0
addal,[si]
adcah,0
movsum,ax
movbx,ax
endstart
4。
比较数的最大最小
db09h,0eeh,00h,45h,98h,80h,35h,0dah
maxdb?
mindb?
5,无符号的数最大最小
mindb?
moval,[si]
movbl,al
incsi
movcx,15
cmpal,[si]
jaenextl
jmpnext
nextl:
cmpbl,[si]
jbenext
movbl,[si]
next:
looplp
movdh,al
movdl,bl
movmax,al
movmin,bl
movah,4ch
codeends
6。
带符号的数比较大小
jgenextl
jlenext
7。
数中大于0,等于0,小于0的数的个数
movdl,0
movbl,0
movbh,0
movcx,16
cmpal,0
jlenextl
incdl
cmpal,0
jnenext2
incbl
jmpnext
next2:
incbh
movm1,ah
movm0,bl
movmf,bh
8。
ASIIA十进制数转化PUBLICSADD
SSTACKSEGMENTSTACK
DW64DUP(?
DATASEGMENT
SADDDB30H,30H,32H,35H,36H;
十进制数:
00256
DATAENDS
CODE,DS:
DATA
MOVAX,DATA
MOVAX,OFFSETSADD
MOVSI,AX
MOVBX,000AH
MOVCX,0004H
MOVAH,00H
MOVAL,[SI]
SUBAL,30H
A1:
IMULBX
MOVDX,[SI+01]
ANDDX,00FFH
ADCAX,DX
SBBAX,30H
INCSI
LOOPA1
A2:
JMPA2
CODEENDS
ENDSTART
10。
两位十进制转换为ASCII码在屏幕上显示出来
DATASEGMENT
daldb9ch
dataends
codesegment
data
start:
movax,data
moval,dal
movcl,4
shral,cl
cmpal,0ah
jaenext1
addal,30h
next1:
addal,37h
movah,02h
movdl,al
andal,0fh
cmpal,0ah
jaenext2
jmpnext0
next0:
movah,02h
12.用查表来转换完成
tabdb30h,31h,32h,33h,34h,35h,36h,37h
db38h,39h,41h,42h,43h,44h,45h,46h
daldb5fh
leabx,tab
xlat
xlat
12.数据排序
ARRAYDB43,90,12,120,88,76
flagdb-1
DATAENDS
STACKSEGMENTPARASTACK'
STACK'
DB1024DUP(?
STACKENDS
ASSUMECS:
CODE,SS:
stack,DS:
SORT:
MOVAX,DATA
MOVDS,AX
MOVBX,6
LP1:
CMPFLAG,0
JEEXIT
decbx
MOVCX,BX
MOVSI,0
MOVFLAG,0
LP2:
MOVAL,ArrAY[SI]
CMPAL,ARRAY[Si+1]
JLENEXT
XCHGAL,ARRAY[SI+1]
MOVARRAY[SI],AL
MOVFLAG,-1
addsi,1
looplp2
jmplp1
exit:
movah,4ch
int21h
codeends
endsort
后四个
8254定时/计数器应用实验
实验原理:
8254是Intel公司生产的可编程间隔定时器。
是8253的改进型,
比8253具有更优良的性能。
8254具有以下基本功能:
(1)有3个独立的16位计数器;
(2)每个计数器可按二进制或十进制(BCD)计数;
(3)每个计数器可编程工作于6种不同工作方式;
(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz);
(5)8254有读回命令(8253没有),除了可以读出当前
计数单元的内容外,还可以读出状态寄存器的内容;
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:
其中,
是输入时钟脉冲的频率,
是输出波形的频率。
1实验步骤:
(1)实验接线如图2所示;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象;
(4)改变计数值,验证8254的计数功能。
===========================
;
文件名:
A82541.ASM
功能描述:
通过对计数器0进行计数,计数初值为4,
当计数满后,产生正跳变触发中断,中断
程序显示M(每按5次输出一个M)
==================================
A8254EQU06C0H
B8254EQU06C2H
C8254EQU06C4H
CON8254EQU06C6H
MOVAX,0000H
MOVAX,OFFSETIRQ7;
取中断入口地址
MOVSI,003CH;
中断矢量地址
MOV[SI],AX;
填IRQ7的偏移矢量
MOVAX,CS;
段地址
MOVSI,003EH
填IRQ7的段地址矢量
CLI
POPDS
;
初始化主片8259
MOVAL,11H
OUT20H,AL;
ICW1
MOVAL,08H
OUT21H,AL;
ICW2
MOVAL,04H
ICW3
MOVAL,01H
ICW4
MOVAL,6FH;
OCW1
OUT21H,AL
8254
MOVDX,CON8254
MOVAL,10H;
计数器0,方式0
OUTDX,AL
MOVDX,A8254
STI
NOP
JMPAA1
IRQ7:
MOVDX,A8254
MOVAX,014DH(如果是F则为0146)实验室
INT10H;
显示字符M
MOVAX,0120H
INT10H
MOVAL,20H
中断结束命令
IRET
实验3
文件名:
A82542.ASM
产生1ms方波,输入时钟为1MHz,使用计数器0
计数初值为03E8H
============================
MOVDX,CON8254;
MOVAL,36H;
计数器0,方式3
MOVAL,0E8H
MOVAL,03H
实验4
8255并行接口实验
并行接口是以数据的字节为单位与I/O设备或被控制对象
之间传递信息。
CPU和接口之间的数据传送总是并行的,即
可以同时传递8位、16位或32位等。
8255可编程外围接口
芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B
、C三个并行接口,用+5V单电源供电,能在以下三种方式下
工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方
式2--双向选通工作方式。
8255的内部结构及引脚如图1所示,825
5工作方式控制字和C口按位置位/复位控制字格式如图2所示。
1.基本输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在
方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线
接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
实验步骤:
(1)实验接线图如图3所示,按图连接实验线路图;
(2)编写实验程序,经编译、连接无误后装入系统;
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
实验4程序
======================================
A82551.ASM
A口为输入,B口为输出,将读入的数据输出显示
IOY1
=======================================
MOVDX,0646H
MOVAL,90H
MOVDX,0640H
INAL,DX
CALLDELAY
MOVDX,0642H
DELAY:
PUSHCX
MOVCX,0F00H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
实验5
2.流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,
循环显示,D15~D8与D7~D0正相反,由右向左,
每次仅点亮一个灯,循环显示。
实验接线图如图4所示。
(1)按图4连接实验线路图;
(3)运行程序,观察LED灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。
===================================
A82552.ASM
A口为输出,B口为输出,流水灯显示
=======================================
SSTACKSEGMENTSTACK
CODE
MOVAL,80H
MOVBX,8001H(0180反方向)实验6
MOVAL,BH
RORBH,1(ROL右改左)实验7
MOVAL,BL
ROLBL,1(ROR右改左)实验7
MOVCX,0F000H
空了几个没写
键盘扫描及显示设计实验
实验内容:
将8255单元与键盘及数码管显示
单元连接,编写实验程序,
扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4×
4键盘,每个数码管
显示值可为0~F共16个数。
实验具体内容如下:
将键盘进行编
号,记作0~F,当按下其中一个按键时,
将该按键对应的编号在一个数码
管上显示出来,当再按下一个按键时,
便将这个按键的编号在下一个数码
管上显示出来,数码管上可以显示
最近4次按下的按键编号。
8255键盘及
显示实验参考接线图如图1所示。
参考程序:
请参照随机软件中的Sample\ASM86\KEYLED.ASM或Sample\C86\CKEYLED.C文件。
1.按图1连接线路图;
2.编写实验程序,检查无误后编译、连接并装入系统;
3.运行程序,按下按键,观察数码管的显示,验证程序功能。
程序
=======================================================
KeyLed.asm
键盘及数码管显示实验,通过8255控制。
8255的B口控制数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验