西电微机原理实验报告材料Word下载.docx
- 文档编号:20663062
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:34
- 大小:296.54KB
西电微机原理实验报告材料Word下载.docx
《西电微机原理实验报告材料Word下载.docx》由会员分享,可在线阅读,更多相关《西电微机原理实验报告材料Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
显示字符串
DS:
DX=串地址,‘$’为完毕字符
光标跟在串后面
4CH
返回DOS系统
AL=返回码
四、实验步骤
(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。
(2)使用“项目〞菜单中的“编译〞或“编译连接〞命令对实验程序进展编译、连接。
(3)“调试〞菜单中的“进展调试〞命令进入Debug调试,观察调试过程中数据传输指令执行后各存放器与数据区的内容。
按F9连续运行。
(4)更改数据区的数据,考察程序的正确性。
五、实验程序
DATASEGMENT
BUFFERDB'
03121370konglingling:
'
0AH,0DH,'
$'
BUFFER2DB'
aAbBcC'
'
BUFFER3DB0AH,0DH,'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
movah,09h
movDX,OFFSETBUFFER
int21h
MOVSI,OFFSETBUFFER2
lab1:
cmpBYTEPTR[SI],'
jelab2
MOVAL,DS:
[SI]
ANDAL,0F0H;
取高4位
MOVCL,4
SHRAL,CL
CMPAL,0AH;
是否是A以上的数
C2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;
showcharacter
MOVAH,02H
INT21H
ANDAL,0FH;
取低4位
CMPAL,0AH
C3
ADDAL,07H
C3:
addSI,1
jmplab1
lab2:
movDX,OFFSETBUFFER3
movah,01h
cmpal,'
q'
jelab3
movBL,AL
C4
C4:
MOVAL,BL
C5
C5:
jmplab2
lab3:
movah,4ch
CODEENDS
endSTART
六、实验结果
实验二数码转换实验
(1)掌握不同进制数与编码相互转换的程序设计方法。
(2)掌握运算类指令编程与调试方法。
(3)掌握循环程序的设计方法。
三、实验内容与说明
(1)重复从键盘输入不超过5位的十进制数,按回车键完毕输入;
(2)将该十进制数转换成二进制数;
结果以2进制数的形式显示在屏幕上;
(3)如果输入非数字字符,如此报告出错信息,重新输入;
(4)直到输入“Q〞或‘q’时程序运行完毕。
(5)键盘输入一字符串,以空格完毕,统计其中数字字符的个数,并在屏幕显示。
完成实验内容〔1〕〔2〕〔3〕〔4〕通过,
完成实验内容〔5〕优秀。
转换过程参考流程如图3-2-2所示。
十进制数可以表示为:
Dn*10n+Dn-1*10n-1+…+D0*100=∑Di*10i
其中Di代表十进制数1、2、3、…、9、0。
上式可以转换为:
∑Di*10i=〔〔〔Dn*10+Dn-1〕*10+Dn-2〕*10+…+D1〕*10+D0
由上式可归纳出十进制数转换为二进制数的方法:
从二进制数的最高位Dn开始做乘10加次位的操作。
依此类推,如此可求出二进制数结果。
表3-3-1数码转换对应关系
十六进制
BCD码
二进制机器码
ASCII码
七段码
共阳
共阴
0000
30H
40H
3FH
0001
31H
79H
06H
0010
32H
24H
5BH
3
0011
33H
4FH
4
0100
34H
19H
66H
5
0101
35H
12H
6DH
0110
36H
02H
7DH
7
0111
37H
78H
07H
1000
38H
00H
7FH
1001
39H
18H
67H
A
101
41H
08H
77H
B
1011
42H
03H
7CH
C
1100
43H
46H
D
1101
44H
21H
5EH
E
1110
45H
F
1111
0EH
71H
四、实验程序
;
PAGE60,132
本实验将输入的ASCII码转换为二进制,要求输入位数小于5
DATASEGMENT
MESDB0AH,0DH,'
TheAsciicodeofDecimalcodeare:
$'
MSG1DB0AH,0DH,0AH,0DH,0AH,0DH,'
PleaseInput(Exit:
q/Q):
MSG2DB0AH,0DH,'
Input:
MSG3DB0AH,0DH,'
InputError,Pleaseinputagain!
BINDB2DUP(0)
BUFDB30H,30H,30H,31H,35H
DB10HDUP(0)
NDW0
DATAENDS
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVDI,OFFSETBUF
CLC
MOVDX,OFFSETMSG1
MOVAH,09H;
MOVDX,OFFSETMSG2
MOVAH,09H
A1:
MOVAH,01H;
接收键盘输入
CMPAL,'
Q'
JZEXIT
CMPAL,'
CMPAL,39H
JAERROR
IN
STOSB;
将输入数据存放在BUF缓冲区中
CMPAL,13
JNEA1
MOVCX,N
DECCX
MOVBX,000AH
MOVSI,OFFSETBUF
MOVAH,0
MOVDX,0
LODSB
CMPCX,1
JEA3
SUBAL,30H;
将BUF中数据转换为二——十进制数
A2:
IMULBX
MOVDX,AX
A3:
SUBAL,30H
ADDAX,DX
LOOPA2
MOV[SI],AX
MOVDX,OFFSETMES
INCSI;
显示高字节
CALLSHOW
DECSI;
显示低字节
MOVN,0
LOOPSTART
SHOWPROEAR
MOVAH,06H
RET
SHOWENDP
EXIT:
MOVAX,4C00H
INT21H
ERROR:
MOVDX,OFFSETMSG3
JMPSTART
ENDSTART
五、实验结果
实验三根本IO口扩展实验
了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。
二、实验内容说明
74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。
其引脚图如下:
74LS273是一种带去除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平去除,常用作8位地址锁存器。
本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。
具体实验内容如下:
(1)当开关Yi为低电平时对应的发光二极管点亮,Yi为高电平时对应的发光二极管灭。
(2)当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。
(3)当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。
(4)自主设计控制与显示模式,完成编程调试,演示实验结果。
编程方法见IO〔样例程序〕.txt.(在编译环境下程序名后缀为.asm且不能含有汉字)
完成实验内容〔1〕〔2〕〔3〕通过。
完成实验内容〔4〕优秀
三、实验原理图
图3-2-174LS244与74LS273扩展I/O口原理图
实验连线图:
图3-2-2扩展I/O口连线图
〔1〕实验连线:
Ø
244的CS——ISA总线接口模块的0000H,Y7—Y0——开关K1—K8。
273的CS——ISA总线接口模块的0020H,Q7—Q0——发光二极管L1—L8。
该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
该模块的数据〔AD0~AD7〕连到ISA总线接口模块的数据〔LD0~LD7〕。
〔2〕编写实验程序,编译,运行程序
〔3〕拨动开关,观察发光二极管的变化。
1、笨方法实现〔主要代码〕:
MOVAX,MY_DATA
MOVDS,AX
MOVAX,MY_STACK
MOVSS,AX
LOP:
MOVDX,0DF00H
INAL,DX
CMPAL,00H
JEC0
CMPAL,0FFH
JEC3
;
JEEXIT
MOVDX,0DF20H
OUTDX,AL
JMPLOP
C0:
MOVAL,0FEH
JMPC1
MOVAL,07FH
JMPC2
C1:
ROLAL,1
MOVDX,0DF20H
OUTDX,AL
CALLDELAY
CALLBREAK
JEC1
CMPAL,0FEH
JMPC1
MOVAL,0FCH
CALLDELAY
CALLBREAK
MOVAL,0FDH
MOVAL,0FBH
MOVAL,0F7H
MOVAL,0EFH
MOVAL,0DFH
MOVAL,0BFH
MOVAL,0FFH
CMPAL,080H
JMPEXIT
MOVAH,4CH
2、循环左移右移实现:
主要代码:
〔1〕右移:
RORAL,1
callbreak
〔2〕循环左移:
ROlAL,1
实验四可编程并行接口8255实验
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程与应用。
二、实验内容
(1)流水灯实验:
利用8255的A口、B口循环点亮发光二极管。
(2)交通灯实验:
利用8255的A口模拟交通信号灯。
(3)I/O输入输出实验:
利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。
(4)通过开关控制交通红绿灯的亮灭。
(5)通过开关控制流水灯的循环方向和循环方式。
考核方式:
完成实验内容〔1〕〔2〕〔3〕其中之一通过,完成实验内容〔4〕或〔5〕优秀。
三、实验说明
1、8255A的内部结构
〔1〕数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以与CPU输入的状态信息都是通过这个缓冲器传送的。
〔2〕三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器与缓冲器,一个8位数据输入缓冲器〔输入没有锁存器〕。
〔3〕A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址一样的控制字存放器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
〔4〕读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式
方式0—根本输入输出方式;
方式1—选通输入输出方式;
方式2—双向选通输入输出方式。
3、8255A的状态字
4、8255A的控制字
表6-3-38255A方式控制字
D6
D5
D4
D3
D2
D1
D0
特
征
位
A组方式
00=方式001=方式1
1X=方式2
A口
0=输出
1=输入
C口高4位
B组方式
0=方式0
1=方式1
B口
C口低4位
表6-3-4按位置位/复位控制字
特征位
不用
位选择
000=C口0位……111=C口7位
0=复位
1=置位
四、实验原理图
图6-3-5可编程并行接口8255电路
五、实验步骤
1、流水灯实验
(1)实验连线
该模块的数据〔AD0~AD7〕、地址线〔A0~A7〕分别连到ISA总线接口模块的数据〔LD0~LD7〕、地址线〔LA0~LA7〕。
8255模块选通线CE连到ISA总线接口模块的0000H。
8255的PA0~PA7连到发光二极管的L0~L7;
8255的PB0~PB7连到发光二极管的L8~L15。
(2)运行程序,观察发光二极管。
2、交通灯实验
(1)实验连线:
8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。
〔2〕运行程序,观察发光二极管。
3、I/O输入输出实验
8255的PA0~PA7接开关K0~K7,8255的PB0~PB7接发光二极管L0~L7。
(2)
运行程序,拨动开关,观察发光二极管。
六、实验程序
主要程序:
*****************************************************************************
/*初始状态全为红灯*/
ST0PROCNEAR
MOVAL,1BH
OUTDX,AL
CALLDELAY
ST0ENDp
/*南北为绿灯,东西为红灯子程序*/
ST1PROCNEAR
MOVDX,P8255_A
MOVAL,33H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告 材料
![提示](https://static.bdocx.com/images/bang_tan.gif)