目 录
实验一 系统认识实验 ------------------------------------------------- 2
实验二 数制转换实验 ------------------------------------------------- 7
实验三8255并行接口实验 -------------------------------------------- 15
实验四 8255键盘及显示接口实验 ------------------------------------- 20
实验五 8254计数/定时器实验 ---------------------------------------- 26
实验六 A/D转换实验 ------------------------------------------------ 32
实验七 中断特性及8259应用编程实验 -------------------------------- 35
实验八 静态存储器扩展实验 ----------------------------------------- 45
附录 Wmd86 联机软件使用说明 --------------------------------------- 48
- 1 -
《微机原理与接口技术》
实验一 系统认识实验
一、实验目的
掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
二、实验设备
PC微机一台,TD-PITE实验装置一套。
三、实验内容
编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。
四、实验步骤
1. 运行Wmd86软件,进入Wmd86集成开发环境。
2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。
图1
3. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。默认文件名为Wmd861。
图2
- 2 -
《微机原理与接口技术》
4. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。
图3
程序:
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: PUSH DS XOR AX, AX MOV DS, AX
MOV SI, 3000H MOV CX, 16 AA1: MOV [SI], AL
INC SI INC AL LOOP AA1 AA2: JMP AA2 CODE ENDS
END START 5. 点击
;定义堆栈段
;建立数据起始地址 ;循环次数 ;地址自加1 ;数据自加1
,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击
进行链接,链接无误输出如图5所示的输出信息。
- 3 -
《微机原理与接口技术》
图4
图5
6. 连接PC与实验系统的通讯电缆,打开实验系统电源。
7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击 下载程序。 为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿色的背景。如图6所示。
图6
- 4 -
《微机原理与接口技术》
8. 将输出区切换到调试窗口,使用D0000:3000命令查看内存3000H起始地址的数据,如图7所示。存储器在初始状态时,默认数据为CC。
图7
9. 点击按钮运行程序,然后再点击来停止程序运行,接下来观察程序运行结果,
仍使用命令D0000:3000来观察数据变化。如图8所示。
图8
10. 也可以通过在语句AA2: JMP AA2处设置断点,断点显示如图9所示,然后运行
程序,当遇到断点时程序会停下来,然后观察数据。可以使用E0000:3000来改变该地址单元的数据,如图10所示,输入11后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。
图9
- 5 -
《微机原理与接口技术》
图10
操作练习:
编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。
- 6 -
《微机原理与接口技术》
实验二 数制转换实验
一、实验目的
1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。 2. 熟悉程序调试的方法。
二、实验设备
Pc微机一台,TD-PITE实验装置一套。
三、实验内容及步骤
计算机输入设备输入的信息一般是由ASSII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。 计算机与外设间的数制转换关系如图所示2-1所示,数制对应关系如表2-1所示。
键盘 光电机 拨码开关 数据开关 ASCII码 ASCII码 BCD码 二进制 机 主 ASCII码 CRT显示 打印机 多段显示 位显示 ASCII码 BCD码 二进制 图2-1 数制转换关系
表1 数制对应关系表 十六进制数 0 1 2 3 4 5 6 7 8 9 A B BCD码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 二进制机器码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1010 ASCII码 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 42H - 7 -
七段码 40H 79H 24H 30H 19H 12H 02H 78H 00H 18H 08H 03H 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 67H 77H 7CH 《微机原理与接口技术》
C D E F 1011 1100 1110 1111 43H 44H 45H 46H 46H 21H 06H 0EH 39H 5EH 79H 71H 1. 将ASCII码表示的十进制数转换为二进制数
十进制表示为:
Di代表十进制数0,1,2,„,9; 上式转换为:
由此可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。
参考流程:
实验程序: PUBLIC SADD
SSTACK SEGMENT STACK
- 8 -
《微机原理与接口技术》
SSTACK DATA SADD DATA CODE
START: A1: A2: CODE
DW DUP(?) ENDS
SEGMENT
DB 30H,30H,32H,35H,36H ENDS
SEGMENT
ASSUME CS:CODE, DS:DATA MOV AX, DATA MOV DS, AX
MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H IMUL BX
MOV DX, [SI+01] AND DX, 00FFH ADC AX, DX SUB AL, 30H INC SI LOOP A1 JMP A2 ENDS
END START
;十进制数:00256
实验步骤:
(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;
(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H; (3)运行程序,然后停止程序;
(4)查看AX寄存器,即为转换结果,应为:0100 ; (5)反复试几组数据,验证程序的正确性。
2. 将十进制数的ASCII码转换为BCD码
- 9 -
《微机原理与接口技术》
从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表1可知,一字节ASCII码取其低四位即变为BCD码。 实验程序:
SSTACK SSTACK CODE
START: A1: A2: A3: CODE
SEGMENT STACK DW DUP(?) ENDS
SEGMENT
ASSUME CS:CODE MOV CX, 0005H MOV DI, 3500H MOV BL, 0FFH MOV AL, [DI] CMP AL, 3AH
JNB A2 SUB AL, 30H
JB A2 MOV BL, AL
MOV AL, BL MOV [DI+0AH],AL INC DI LOOP A1 JMP A3 ENDS
END START
;转换位数
;ASCII码首地址 ;将错误标志存入BL
;不低于3AH则转A2 ;低于30H则转A2 ;结果或错误标志送入AL ;结果存入目标地址
实验步骤:
(1)自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统;
(2)在3500H~3504H单元中存放五位十进制数的ASCII码,即:键入E3500后,输入31,32,33,34,35;
(3)运行程序,然后停止程序运行; (4)键入D350A,显示运行结果,应为: 0000:350A 01 02 03 04 05 CC „
(5)反复测试几组数据,验证程序功能。
3. 将十六位二进制数转换为ASCII码表示的十进制数
十六位二进制数的值域为0~65535,最大可转换为五位十进制数。
- 10 -
《微机原理与接口技术》
五位十进制数可表示为:
Di:表示十进制数0~9
将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。
实验程序:
SSTACK SEGMENT STACK
DW DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV SI,3500H ;源数据地址
MOV DX,[SI]
MOV SI,3515H ;目标数据地址 A1: DEC SI
MOV AX,DX MOV DX,0000H
MOV CX,000AH ;除数10
DIV CX ;得商送AX, 得余数送DX XCHG AX,DX
ADD AL,30H ;得Di得ASCII码 MOV [SI],AL ;存入目标地址 CMP DX,0000H
JNE A1 ;判断转换结束否,未结束则转A1 A2: CMP SI,3510H ;与目标地址得首地址比较
JZ A3 ;等于首地址则转A3,否则将剩余地址 DEC SI ;中填30H MOV AL,30H MOV [SI],AL JMP A2 A3: JMP A3 CODE ENDS END START
实验步骤
- 11 -
《微机原理与接口技术》
(1)编写程序,经编译、链接无误后,装入系统; (2)在3500H、3501H中存入0C 00; (3)运行程序,然后停止运行;
(4)检查运行结果,键入D3510,结果应为:30 30 30 31 32; (5)可反复测试几组数据,验证程序的正确性。
4. 十六进制数转换为ASCII码
由表1中十六进制数与ASCII码的对应关系可知:将十六进制数0H~09H加上30H后得到相应的ASCII码,AH~FH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。自行绘制流程图。 实验程序
SSTACK SEGMENT STACK
DW DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0004H
MOV DI,3500H ;十六进制数源地址 MOV DX,[DI] A1: MOV AX,DX
AND AX,000FH ;取低4位 CMP AL,0AH
JB A2 ;小于0AH则转A2
ADD AL,07H ;在A~FH之间,需多加上7H A2: ADD AL,30H ;转换为相应ASCII码
MOV [DI+0DH],AL ;结果存入目标地址 DEC DI PUSH CX MOV CL,04H
SHR DX,CL ;将十六进制数右移4位 POP CX LOOP A1 A3: JMP A3 CODE ENDS
END START
实验步骤
- 12 -
《微机原理与接口技术》
(1)编写程序,经编译、链接无误后装入系统;
(2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B 20; (3)先运行程序,然后再停止运行;
(4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC „; (5)反复输入几组数据,验证程序功能。
5. BCD码转换为二进制数
将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,自行绘制流程图并编写程序。
SSTACK SEGMENT STACK DW DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL ADD AL, AL ADD AL, AL ADD AL, BL INC SI
ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS
END START
实验步骤
(1)编写程序,经编译、链接无误后装入系统;
- 13 -
《微机原理与接口技术》
(2)将四个二位十进制数的BCD码存入3500H~3507H中,即:先键入E3500,然后输入01 02 03 04 05 06 07 08;
(3)先运行程序,然后停止运行;
(4)键入D3510显示转换结果,应为:0C 22 38 4E; (5)反复输入几组数据,验证程序功能。
- 14 -
《微机原理与接口技术》
实验三8255并行接口实验
一、 实验目的
1、 学习并掌握8255的工作方式及其应用。 2、 掌握8255典型应用电路的接法。
3、 掌握程序固化及脱机运行程序的方法。
二、 实验设备
Pc机一台,TD-PITE实验装置一套。
三、 实验内容
1、 基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成波动开关
到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。
2、 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7-D0由左向
右,每次仅亮一个灯,循环显示,D15-D8与D7-D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验原理:
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。
- 15 -
《微机原理与接口技术》
图3-1 8255的内部结构和外部引脚
(a)工作方式控制字 (b)c口按位置位/复位控制字
图3-2 8255控制字格式
8255实验单元电路图如下图所示:
- 16 -
《微机原理与接口技术》
图3-3 8255实验单元电路图
实验步骤
1. 基本输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
实验步骤:
(1)实验接线图如图3-4所示,按图连接实验线路图;
图3-4 8255基本输入/输出实验接线图
实验程序
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK
START: MOV DX, 06H
MOV AL, 90H OUT DX, AL AA1: MOV DX, 00H
IN AL, DX CALL DELAY MOV DX, 02H OUT DX, AL JMP AA1
DELAY: PUSH CX
MOV CX, 0F00H
- 17 -
《微机原理与接口技术》
AA2:
PUSH AX POP AX LOOP AA2 POP CX RET
CODE
ENDS
END START
(2)编写实验程序,经编译、连接无误后装入系统;
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
(4)点机“调试”下拉菜单中的“固定程序”项,将程序固化到系统存储器中。
2. 流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4所示。
图3-5 8255流水灯实验接线图
实验步骤:
(1)按图3-5连接实验线路图;
(2)编写实验程序,经编译、链接无误后装入系统; (3)运行程序,观察LED灯的显示,验证程序功能; (4)自己改变流水灯的方式,编写程序。 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
- 18 -
《微机原理与接口技术》
START: MOV DX, 06H MOV AL, 80H OUT DX, AL MOV BX, 8001H AA1: MOV DX, 00H MOV AL, BH OUT DX, AL ROR BH, 1
MOV DX, 02H MOV AL, BL OUT DX, AL ROL BL, 1
CALL DELAY CALL DELAY JMP AA1
DELAY: PUSH CX
MOV CX, 0F000H AA2: PUSH AX POP AX LOOP AA2 POP CX RET CODE ENDS
END START - 19 -
《微机原理与接口技术》
实验四 8255键盘及显示接口实验
一、实验目的
了解键盘扫描及数码显示的基本原理,熟悉8255的编程/
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容
将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0-F共16个数,。实验具体内容如下:将键盘进行编号,记作0—F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来,再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
实验内容:
将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。8255键盘及显示实验参考接线图如图1所示。
键盘及数码管显示单元电路图如图 4-1 所示。
- 20 -
《微机原理与接口技术》
图4-2 8255 键盘扫描及数码管显示实验线路图
功能描述: 键盘及数码管显示实验,通过8255控制。
8255的B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。按下按键,该按键对应的位置将按顺序显示在数码管上。
实验程序:
MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_CON EQU 0606H
SSTACK SEGMENT STACK DW 16 DUP(?) SSTACK ENDS
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,3000H
- 21 -
《微机原理与接口技术》
MOV AL,00H
MOV [SI],AL ;清显示缓冲 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV [SI+4],AL MOV [SI+5],AL MOV DI,3005H
MOV DX,MY8255_CON ;写8255控制字 MOV AL,81H OUT DX,AL
BEGIN: CALL DIS CALL CLEAR CALL CCSCAN JNZ INK1 JMP BEGIN INK1: CALL DIS CALL DALLY CALL DALLY CALL CLEAR CALL CCSCAN
JNZ INK2 JMP BEGIN INK2: MOV CH,0FEH MOV CL,00H COLUM: MOV AL,CH
MOV DX,MY8255_A OUT DX,AL
MOV DX,MY8255_C IN AL,DX
L1: TEST AL,01H ;is L1? JNZ L2
MOV AL,00H ;L1 JMP KCODE
L2: TEST AL,02H ;is L2? JNZ L3
MOV AL,04H ;L2
JMP KCODE
L3: TEST AL,04H ;is L3?
;调用显示子程序 ;清屏 ;扫描 ;有键按下,转到INK2 - 22 -
《微机原理与接口技术》
JNZ L4
MOV AL,08H ;L3
JMP KCODE
L4: TEST AL,08H ;is L4? JNZ NEXT
MOV AL,0CH ;L4 KCODE: ADD AL,CL CALL PUTBUF
PUSH AX KON: CALL DIS CALL CLEAR CALL CCSCAN JNZ KON POP AX NEXT: INC CL MOV AL,CH TEST AL,08H JZ KERR ROL AL,1 MOV CH,AL JMP COLUM KERR: JMP BEGIN CCSCAN: MOV AL,00H
MOV DX,MY8255_A OUT DX,AL
MOV DX,MY8255_C IN AL,DX NOT AL
AND AL,0FH RET
CLEAR: MOV DX,MY8255_B MOV AL,00H OUT DX,AL RET
DIS: PUSH AX
MOV SI,3000H MOV DL,0DFH MOV AL,DL AGAIN: PUSH DX
- 23 -
《微机原理与接口技术》
MOV DX,MY8255_A OUT DX,AL MOV AL,[SI]
MOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AX MOV AL,[BX]
MOV DX,MY8255_B OUT DX,AL CALL DALLY INC SI POP DX MOV AL,DL TEST AL,01H JZ OUT1 ROR AL,1 MOV DL,AL JMP AGAIN OUT1: POP AX RET
DALLY: PUSH CX
MOV CX,0006H T1: MOV AX,009FH T2: DEC AX JNZ T2 LOOP T1 POP CX RET
PUTBUF: MOV SI,DI MOV [SI],AL DEC DI
CMP DI,2FFFH JNZ GOBACK MOV DI,3005H GOBACK: RET
CODE ENDS
END START
- 24 -
《微机原理与接口技术》
实验步骤:
1. 按图4-1连接线路图;
2. 编写实验程序,检查无误后编译、连接并装入系统;
3. 运行程序,按下按键,观察数码管的显示,验证程序功能。
- 25 -
《微机原理与接口技术》
实验五 8254计数/定时器实验
一、实验目的
1、掌握8254的工作方式及应用编程。 2、掌握8254典型应用电路的接法。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容
计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按“KK1+”5次后,产生一次计数中断,并在屏幕上显示一个字符“M”.
实验原理:
8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:
(1)有3个的16位计数器;
(2)每个计数器可按二进制或十进制(BCD)计数; (3)每个计数器可编程工作于6种不同工作方式;
(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz);
(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为:
其中是输入时钟脉冲的频率,是输出波形的频率。
图5-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述:
(1)方式0:计数到0结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。
(5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。
- 26 -
《微机原理与接口技术》
图5-1 8254的内部接口和引脚
8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表1所示。
表5-1 8254的方式控制字格式
表5-2 8254读出控制字格式
表5-3 8254状态字格式
8254实验单元电路图如下图所示:
图5-2 8254实验电路原理图
- 27 -
《微机原理与接口技术》
1.计数应用实验
编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”。 实验程序
A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET IRQ7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH
MOV [SI], AX ;填IRQ7的段地址矢量 CLI POP DS
;初始化主片8259 MOV AL, 11H
OUT 20H, AL ;ICW1 MOV AL, 08H
OUT 21H, AL ;ICW2 MOV AL, 04H
OUT 21H, AL ;ICW3 MOV AL, 01H
OUT 21H, AL ;ICW4
MOV AL, 6FH ;OCW1 OUT 21H, AL
- 28 -
《微机原理与接口技术》
AA1: IRQ7: CODE
;8254
MOV DX, CON8254 MOV AL, 10H OUT DX, AL
MOV DX, A8254 MOV AL, 04H OUT DX, AL STI NOP JMP AA1
MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 014DH INT 10H MOV AX, 0120H INT 10H MOV AL, 20H
OUT 20H, AL IRET ENDS
END START
;计数器0,方式0
;显示字符M
;中断结束命令
实验步骤:
(1)实验接线如图5-2所示;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象; (4)改变计数值,验证8254的计数功能。
- 29 -
《微机原理与接口技术》
2.定时应用实验
图5-3 8254定时应用实验接线图
编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波。
实验程序:
A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: MOV DX, CON8254 ;8254
MOV AL, 36H ;计数器0,方式3 OUT DX, AL
MOV DX, A8254 MOV AL, 0E8H OUT DX, AL MOV AL, 03H OUT DX, AL
AA1: NOP JMP AA1
- 30 -
《微机原理与接口技术》
CODE ENDS
END START
实验步骤:
(1)接线图如图5-3所示;
(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统; (3)运行实验程序,用示波器测试OUT0输出,验证程序功能。
- 31 -
《微机原理与接口技术》
实验六 A/D转换实验
一、实验目的
1.学习理解模/数信号转换的基本原理。 2.掌握模/数转换芯片ADC0809的使用方法。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容:
编写实验程序,将ADC单元中提供的0V~5V信号源作为ADC0809的模拟输入量,进行A/D转换,转换结果通过变量进行显示。
实验原理:
ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标为:
· 分辨率:8位 · 单电源:+5V
· 总的不可调误差:±1LSB · 转换时间:取决于时钟频率 · 模拟输入范围:单极性 0~5V · 时钟频率范围:10KHz~1280KHz
ADC0809的外部管脚如图6-1所示,地址信号与选中通道的关系如表6-1所示。
图6-1 ADC0809外部引脚图
表6-1 地址信号与选中通道的关系
- 32 -
《微机原理与接口技术》
实验步骤:
1. 按图2连接实验线路;
2. 编写实验程序,经编译、链接无误后装入系统; 3. 将变量VALUE添加到变量监视窗口中;
4. 在JMP START语句行设置断点,使用万用表测量ADJ端的电压值,计算对应的采样值,然后运行程序;
5. 程序运行到断点处停止运行,查看变量窗口中VALUE的值,与计算的理论值进行比较,看是否一致(可能稍有误差,相差不大);
6. 调节电位器,改变输入电压,比较VALUE与计算值,反复验证程序功能。
图6-3 AD转换实验接线图
实验程序
SSTACK SEGMENT STACK DW DUP(?) SSTACK ENDS
PUBLIC VALUE ;设置全局变量以便变量监视
- 33 -
《微机原理与接口技术》
DATA SEGMENT VALUE DB ? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA MOV DS, AX
MOV DX, 0H OUT DX, AL CALL DALLY
IN AL, DX MOV VALUE, AL
JMP START DALLY: PUSH CX PUSH AX
MOV CX, 100H A5: MOV AX, 0800H A6: DEC AX JNZ A6 LOOP A5 POP AX POP CX RET
CODE ENDS
END START
;启动AD采样 ;读AD采样结果 ;将结果送变量 ;在此处设置断点 - 34 -
《微机原理与接口技术》
实验七 中断特性及8259应用编程实验
一、实验目的
1.掌握8259中断控制的工作原理。 2.学习8259的应用编程方法。 3.掌握8259级联方式的使用方法。
二、实验设备
PC机一台,TD-PITE试验装置一套。
三、实验原理及内容
在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图7-1所示。
图7-1 8259内部连续及外部管脚引出图
表7-1列出了中断控制单元的寄存器相关信息。
- 35 -
《微机原理与接口技术》
表7-1 ICU寄存器列表
初始化命令字1寄存器(ICW1)说明见图7-2所示。
- 36 -
《微机原理与接口技术》
图7-2 初始化命令字1寄存器
初始化命令字2寄存器(ICW2)说明见图7-3所示。
图7-3 初始化命令字2寄存器
初始化命令字3寄存器(ICW3)说明,主片见图7-4,从片见图5。
初始化命令字4寄存器(ICW4)说明见图7-6。
图7-6 初始化命令字4寄存器
- 37 -
《微机原理与接口技术》
操作命令字1寄存器(OCW1)说明见图7-7。
图7-7操作命令字1寄存器
操作命令字2寄存器(OCW2)说明如图7-8所示。
图7-8操作命令字2寄存器
操作命令字3寄存器(OCW3)说明如图7-9所示。
- 38 -
《微机原理与接口技术》
图7-9 操作命令字3寄存器
查询状态字(POLL)说明如图7-10所示。
图7-10 程序状态字寄存器
在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。
系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示:
1.8259单中断实验
实验接线图如图7-11所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。
图7-11 8259单中断实验接线图
程序如下:
- 39 -
《微机原理与接口技术》
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT ASSUME CS:CODE START: PUSH DS MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET MIR7 MOV SI, 003CH MOV [SI], AX MOV AX, CS MOV SI, 003EH
MOV [SI], AX CLI POP DS
;初始化主片8259 MOV AL, 11H
OUT 20H, AL MOV AL, 08H
OUT 21H, AL MOV AL, 04H
OUT 21H, AL MOV AL, 01H
OUT 21H, AL ;初始化从片8259 ;MOV AL,11H ;OUT 0A0H,AL ;MOV AL,30H ;OUT 0A1H,AL ;MOV AL,02H ;OUT 0A1H,AL ;MOV AL,01H ;OUT 0A1H,AL ;MOV AL,0FFH ;OUT 0A1H,AL MOV AL, 6FH
;取中断入口地址 中断矢量地址 填IRQ7的偏移矢量 段地址
填IRQ7的段地址矢量;ICW1 ;ICW2 ;ICW3 ;ICW4
;OCW1
- 40 -
; ; ; ;
《微机原理与接口技术》
OUT 21H, AL STI AA1: NOP JMP AA1 MIR7: STI
CALL DELAY MOV AX, 0137H INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET
DELAY: PUSH CX
MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS
END START 实验步骤:
;显示字符7
;中断结束命令
(1)按图7-11连接实验线路;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。
2.8259级联实验
实验接线图如图7-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”
- 41 -
《微机原理与接口技术》
图7-12 8259级联实验
程序如下:
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT ASSUME CS:CODE START: PUSH DS MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET MIR7 MOV SI, 003CH MOV [SI], AX MOV AX, CS MOV SI, 003EH
MOV [SI], AX
MOV AX, OFFSET SIR1 MOV SI, 00C4H MOV [SI], AX MOV AX, CS MOV SI, 00C6H MOV [SI], AX CLI POP DS
;初始化主片8259 MOV AL, 11H
OUT 20H, AL MOV AL, 08H
取中断入口地址 中断矢量地址
填IRQ7的偏移矢量 段地址
填IRQ7的段地址矢量
;ICW1
- 42 -
;;;;; 《微机原理与接口技术》
OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL ;初始化从片8259 MOV AL, 11H OUT 0A0H, AL
;ICW2 ;ICW3 ;ICW4
;ICW1 MOV AL, 30H OUT 0A1H, AL MOV AL, 02H OUT 0A1H, AL MOV AL, 01H OUT 0A1H, AL MOV AL, 0FDH OUT 0A1H,AL
MOV AL, 6BH OUT 21H, AL STI AA1: NOP JMP AA1
MIR7: CALL DELAY MOV AX, 014DH INT 10H MOV AX, 0137H INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET
SIR1: CALL DELAY MOV AX, 0153H INT 10H MOV AX, 0131H INT 10H
;ICW2
;ICW3 ;ICW4
;OCW1 = 1111 1101
;主8259 OCW1
;M
;显示字符7
;中断结束命令
;S
;显示字符1
- 43 -
《微机原理与接口技术》
MOV AX, 0120H INT 10H MOV AL, 20H OUT 0A0H, AL OUT 20H, AL IRET
DELAY: PUSH CX
MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS
END START
实验步骤:
(1)按图7-12连接实验线路;
(2)输入程序,编译、链接无误后装入系统;
(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性; (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。
- 44 -
《微机原理与接口技术》
实验八 静态存储器扩展实验
实验内容:
编写实验程序,将0000H~000FH共16个数写入SRAM的从0000H起始的一段空间中,然后通过系统命令查看该存储空间,检测写入数据是否正确。
实验原理:
存储器是用来存储信息的部件,是计算机的重要组成部分,静态RAM是由MOS管组成的触发器电路,每个触发器可以存放1位信息。只要不掉电,所储存的信息就不会丢失。因此,静态RAM工作稳定,不要外加刷新电路,使用方便。但一般SRAM 的每一个触发器是由6个晶体管组成,SRAM芯片的集成度不会太高,目前较常用的有6116(2K×8位),62(8K×8位)和62256(32K×8位)。本实验平台上选用的是62256,两片组成32K×16位的形式,共K字节。62256的外部引脚图如图8-1所示。
图8-1 62256 引脚图
本系统采用准32位CPU,具有16位外部数据总线,即D0、D1、„、D15,地址总线为BHE#(#表示该信号低电平有效)、BLE#、A1、A2、„、A20。存储器分为奇体和偶体,分别由字节允许线BHE#和BLE#选通。
存储器中,从偶地址开始存放的字称为规则字,从奇地址开始存放的字称为非规则字。处理器访问规则字只需要一个时钟周期,BHE#和BLE#同时有效,从而同时选通存储器奇体和偶体。处理器访问非规则字却需要两个时钟周期,第一个时钟周期BHE#有效,访问奇字节;第二个时钟周期BLE#有效,访问偶字节。处理器访问字节只需要一个时钟周期,视其存放单元为奇或偶,而BHE#或BLE#有效,从而选通奇体或偶体。写规则字和非规则字的简单时序图如图8-2所示。
- 45 -
《微机原理与接口技术》
图8-2写规则字(左)和非规则字(右)简单时序图
实验程序
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT START PROC FAR
ASSUME CS:CODE MOV AX, 8000H MOV DS, AX AA0: MOV SI, 0000H MOV CX, 0010H MOV AX, 0000H AA1: MOV [SI], AX INC AL INC SI INC SI LOOP AA1 NOP jmp AA0 HERE: JMP HERE START ENDP CODE ENDS
END START 实验步骤
1. 实验接线图如图9-3所示,按图接线;
- 46 -
《微机原理与接口技术》
图9-3 SRAM 实验接线图
2. 编写实验程序,经编译、链接无误后装入系统; 3. 先运行程序,然后再停止程序运行;
4. 通过D命令查看写入存储器中的数据,应为0001、0002、„、000F共16个字; 5. 改变实验程序,按非规则字写存储器,观察实验结果; 6. 改变实验程序,按字节方式写存储器,观察实验现象;
7. 将实验程序改为死循环程序,分别按规则字与非规则字的方式写存储器,并使用示波器观察WR#信号的波形,分析实验现象,掌握16位外部数据总线的操作方法。
- 47 -
《微机原理与接口技术》
附录 Wmd86 联机软件使用说明
界 面 窗 口 介 绍
主界面窗口如下,主要分为三部分:程序编辑区、变量区和输出区,下面分别加以介绍。
程序编辑区:
位于界面右上部,用户可在程序编辑区用“新建”命令打开一个新文档或用“打开”命令打开一个已存在的文档,在文档中用户可编辑程序。用户可在程序编辑区打开多个文档,点击文档标签可激活任一文档。编译、链接、加载以及调试命令只针对当前活动文档。用户调试程序时,调试界面亦在文档中显示。
变量区:
位于界面左上部,包括三个部分:寄存器区、变量区和堆栈区。寄存器区和变量区用于实时监视寄存器和变量,也能够修改寄存器和变量的值,堆栈区主要用于实时监视堆栈寄存器。点击寄存器区标签可观察和修改寄存器,点击变量区标签可观察和修改变量,点击堆栈区标签可观察堆栈寄存器。执行相关操作后寄存器、变量和堆栈寄存器的值自动刷新,如果寄存器区刷新后的值和刷新前的值相同,则显示为蓝色,如果不同,则显示为红色。变量区
- 48 -
《微机原理与接口技术》
和堆栈区刷新前和刷新后都为蓝色。想修改寄存器或变量,用鼠标左键单击某寄存器或变量,当寄存器或变量值的区域变为蓝色后输入修改后的值,然后回车。如果修改的是寄存器,输入的值的长度与寄存器的长度相同,回车后修改正确,如果输入的值的长度和寄存器的长度不相同,寄存器的值没有被修改,保持原来的值且可以继续修改该寄存器的值。如果修改的是变量,输入的值的长度与变量的长度相同,回车后修改正确,如果输入的值的长度小于变量的长度,回车后输入值的前面自动添零,如果输入值的长度大于变量的长度,回车后输入值的后面的多余部分自动删除。堆栈区只用于监视,不能够被修改。
输出区:
位于界面下部,输出区包含三个部分:编译区、调试区和结果区。编译区显示编译和链接的结果,如果编译时有错误或警告,双击错误或警告信息,错误标识符会指示到相应的有错误或警告的行。调试区主要用于DEBUG调试。结果区主要用于显示程序加载结果、程序运行输出结果和复位结果。结果区中有“加载中,请稍候....”的字样表示联机软件正在把可执行文件加载到下位机中,用户此时应等待直到加载完成,“加载成功”表示加载完成且成功,“加载失败”表示加载完成且失败,此时应重新加载。程序中用“INT 10H”输出的结果亦显示在此区。软复位或硬件复位成功后,结果区显示“复位成功!”。如果复位不成功则不显示此句。
按 钮 功 能 介 绍
标准工具栏:
标准工具栏共有十二个按钮,其图如下:
新建按钮
用此按钮在Wmd86中建立一个新文档。 您可用打开命令打开一个现存文档。
- 49 -
《微机原理与接口技术》
打开按钮
用此命令在一个新的窗口中打开一个现存的文档。您可同时打开多个文档,点击某文档的标签可激活此文档。您可用窗口菜单在多个打开的文档中切换。见窗口1,2,...命令。 您可用新建命令建立新文档。
保存按钮
用此命令来关闭当前活动文档。Wmd86会建议您在关闭文档之前保存对您的文档所做的改动。如果您没有保存而关闭了一个文档,您将会失去自从您最后一次保存以来所做的所有改动。在关闭一无标题的文档之前,Wmd86会显示另存为对话框,建议您命名和保存文档。
剪切按钮
用此命令将当前被选取的数据从文档中删除并放置于剪贴板上。如当前没有数据被选取时,此命令则不可用。
把数据剪切到剪贴板上将取代原先存放在那里的内容。
复制按钮
用此命令将被选取的数据复制到剪切板上。如当前无数据被选取时,此命令则不可用。 把数据复制到剪贴板上将取代以前存在那里的内容。 粘贴按钮
用此命令将剪贴板上内容的一个副本插入到插入点处。如剪贴板是空的,此命令则不可用。 打印按钮
用此命令来打印一个文档。在此命令提供的打印对话框中,您可以指明要打印的页数范围、副本数、目标打印机,以及其它打印机设置选项。 撤消按钮
如果可能的话,可用此命令来撤消上一步编辑操作。如果无法撤消上一步操作,菜单上的撤消命令会变灰。
重复按钮
- 50 -
《微机原理与接口技术》
如果可能的话,可用此命令来恢复撤消的编辑操作。如果无法恢复编辑操作,菜单上的重复命令会变灰。 显隐变量区按钮
用此按钮可显示和隐藏变量和寄存器区。
显隐输出区按钮
用此按钮可显示和隐藏输出区。 变量监控按钮
加载成功后才可用此按钮。点击此按钮,出现如下对话框:
左边的列表框为程序中的全局变量,系统只能监视全局变量,右边的列表框为系统正在监视的全局变量。如果想监视左边列表框的某一变量A,用鼠标左键单击变量A,使之成为选择项,如上图所示,此时点击“加入监视”按钮,右边的列表框出现变量A,点击“结束”按钮后变量A会出现在变量区。如果想从变量区去掉某一正在监视的变量B,点击“变量监控”按钮,出现如上图所示对话框,在右边的列表框中用鼠标左键单击变量B,使之成为选择项,如上图所示,此时点击“停止监视”按钮,此变量从右边的列表框消失,点击“结束”按钮后,变量B从变量区消失。
- 51 -
《微机原理与接口技术》
在汇编语言源文件中,数据段定义的变量并不是全局变量,因此数据段定义的变量并不出现在上图所示的对话框的左边列表,要想监视这些变量,必须使它们成为全局变量,使一个变量成为全局变量的方法是用关键字PUBLIC在源程序的最前面声明之,格式是:PUBLIC symbol[,...],范例如下:
数据段DATA1中的数据 mus_time,mus_freq 经过PUBLIC声明后成为全局变量,编译、链接、加载完成后,点击“变量监控”按钮,此时对话框左边的列表框出现 mus_time和mus_freq 变量,可对这两个变量进行监控。
在C语言源文件中,函数内部定义的变量不是全局变量,函数外面定义的变量才是全局变量,因此系统只能监视函数外面定义的变量。要想监视某一变量,应该把他定义在函数的外面。
堆栈监控
点击此按钮,出现如下对话框:
选择“不监控堆栈”单选按钮,确定后不监视堆栈寄存器,选择“监控堆栈”单选按钮,确定后监视堆栈寄存器。默认选项为“不监控堆栈”。
自 定 义 功 能
自定义功能之命令属性页:
- 52 -
《微机原理与接口技术》
该属性页主要三项:类别、命令、说明。
类别:列出了应用程序所有的菜单。
命令:列出了选中的菜单中所对应的菜单命令。如上图中选中的是\"文件\"菜单,则在\"命令\"栏中列出了\"文件\"所对应的菜单命令。
说明:如果选中了一个菜单命令,则在说明栏中注明该菜单命令的作用。
右 键 菜 单
右键菜单之工具栏菜单:
工具栏菜单提供了以下命令:
标准工具栏 显示或隐藏标准工具栏
- 53 -
《微机原理与接口技术》
变量区 显示或隐藏变量区 输出区 显示或隐藏输出区 编译工具栏 显示或隐藏编译工具栏 调试工具栏 显示或隐藏调试工具栏
自定义
标准工具栏(T):
用此命令可显示和隐藏标准工具栏。标准工具栏包括了Wmd86中一些最普通命令的按钮,
如文件打开。在工具栏被显示时,一个打勾记号出现在该菜单项目的旁边。 参见工具栏以得到对使用工具栏的帮助。 变量区(W):
用此命令可显示和隐藏变量区。 输出区(O):
用此命令可显示和隐藏输出区 编译工具栏(T):
用此命令可显示和隐藏编译工具栏。编译工具栏包括了Wmd86中全部编译命令的按钮,如编译、链接。在工具栏被显示时,一个打勾记号出现在该菜单项目的旁边。 参见工具栏以得到对使用工具栏的帮助。 调试工具栏(T):
用此命令可显示和隐藏调试工具栏。调试工具栏包括了Wmd86中全部调试命令的按钮,如单步、跳过。在工具栏被显示时,一个打勾记号出现在该菜单项目的旁边。 参见工具栏以得到对使用工具栏的帮助。
右 键 菜 单
右键菜单之编辑菜单:
- 54 -
《微机原理与接口技术》
编辑菜单提供了以下命令:
剪切 从文档中删除数据并将其移到剪贴板上。 复制 从文档中将数据复制到剪贴板上。 粘贴 从剪贴板上将数据粘贴到文档中。
剪切(T):
用此命令将当前被选取的数据从文档中删除并放置于剪贴板上。如当前没有数据被选取时,此命令则不可用。
把数据剪切到剪贴板上将取代原先存放在那里的内容。
复制(C):
用此命令将被选取的数据复制到剪切板上。如当前无数据被选取时,此命令则不可用。 把数据复制到剪贴板上将取代以前存在那里的内容。
粘贴(P):
用此命令将剪贴板上内容的一个副本插入到插入点处。如剪贴板是空的,此命令则不可用。
文 件 菜 单 项
文件菜单项:
- 55 -
《微机原理与接口技术》
文件菜单提供了以下命令: 新建 建立一个新文档 打开 打开一个现存文档 关闭 关闭一个打开的文档
保存 用同样的文件名保存一个打开的文档 另存为 用指定的文件名保存一个打开的文档 打印 打印一个文档
打印预览 在屏幕上按被打印出的格式显示文档 打印设置 选择一个打印机以及打印机连接 退出 退出Wmd86
新建(N):
用此命令在Wmd86中建立一个新文档。 您可用打开命令打开一个现存文档。
打开(O):
用此命令在窗口中打开一个现存的文档。您可同时打开多个文档,点击某文档的标签可激活此文档。您可用窗口菜单在多个打开的文档中切换。见窗口1,2,...命令。 您可用新建命令建立新文档。
关闭(C):
用此命令来关闭当前活动文档。Wmd86会建议您在关闭文档之前保存对您的文档所做的改动。如果您没有保存而关闭了一个文档,您将会失去自从您最后一次保存以来所做的所有改动。在关闭一无标题的文档之前,Wmd86会显示另存为对话框,建议您命名和保存文档。
保存(S):
用此命令将当前活动文档保存到它的当前的文件名和目录下。当您第一次保存文档时,Wmd86显示另存为对话框以便您命名您的文档。如果在保存之前,您想改变当前文档的文件名和目录,您可选用另存为命令。
另存为(A)„:
- 56 -
《微机原理与接口技术》
用此命令来保存并命名活动文档。Wmd86会显示另存为对话框以便您命名您的文档。 如要用当前文件名和目录保存文档,您可用保存命令。
打印(P)„:
用此命令来打印一个文档。在此命令提供的打印对话框中,您可以指明要打印的页数范围、副本数、目标打印机,以及其它打印机设置选项。
打印预览(V):
用此命令按要打印的格式显示活动文档。当您选择此命令时,主窗口就会被一个打印预览窗口所取代。这个窗口可以按它们被打印时的格式显示一页或两页。打印预览工具栏提供选项使您可选择一次查看一页或两页,在文档中前后移动,放大和缩小页面,以及开始一个打印作业。
打印设置(R)„:
用此命令来选择一台打印机和一个打印机连接。在此命令提供的打印设置对话框中,您可以指定打印机及其连接。
最近使用文件:
您可以通过此列表,直接打开最近打开过的文件,共四个。
退出(X):
用此命令来结束您Wmd86的运行阶段。您也可使用在应用程序控制菜单上的关闭命令。 Wmd86会提示您保存尚未保存的改动。
编 辑 菜 单 项 编辑菜单项:
- 57 -
《微机原理与接口技术》
编辑菜单提供了以下命令:
撤消
如果可能的话,可用此命令来撤消上一步编辑操作。如果无法撤消上一步操作,菜单上的撤消命令会变灰。
重复
如果可能的话,可用此命令来恢复撤消的编辑操作。如果无法恢复撤消的编辑操作,菜单上的重复命令会变灰。
剪切(T)
用此命令将当前被选取的数据从文档中删除并放置于剪贴板上。如当前没有数据被选取时,此命令则不可用。
把数据剪切到剪贴板上将取代原先存放在那里的内容。
复制(C)
用此命令将被选取的数据复制到剪切板上。如当前无数据被选取时,此命令则不可用。 把数据复制到剪贴板上将取代以前存在那里的内容。
粘贴(P)
用此命令将剪贴板上内容的一个副本插入到插入点处。如剪贴板是空的,此命令则不可用。
查找
点击此命令将弹出查找对话框,如下图,用于查找指定字符串。
- 58 -
《微机原理与接口技术》
“Find what:”编辑框:写入你想要查找的字符串
“Match whole word only”复选框:是否全字匹配。如果不选中此复选框,找到的字符串的长度有可能大于想要查找的字符串,如:我们想要查找字符串“WANG1”,可能会找到字符串“WANG10”,这是因为我们没有选中全字匹配复选框,如果我们选中此复选框,则不会出现此种情况
“Match case”复选框:是否辨认大小写。如果不选中此复选框,找到的字符串中字符的大小写可能与我们想要查找的字符串有差别,如:我们想要查找字符串“WANG1”,可能会找到字符串“Wang1”。如果我们选中此复选框,则不会出现此种情况 “Up”单选按钮:从下向上查找 “Down”单选按钮:从上向下查找
“Find Next”按钮:查找下一个字符串,如果是第一次查找则从当前光标处开始向下或向上开始查找,如果不是第一次查找,则从上一次找到的位置向下或向上开始查找。 “Cancel”按钮:取消查找对话框。
替换
点击此命令将弹出替换对话框,如下图,找到某一字符串,并用指定字符串替换之
- 59 -
《微机原理与接口技术》
“Find what”编辑框:想要查找的字符串 “Replace”编辑框:替换后的字符串
“Match whole word only”复选框:是否全字匹配。如果不选中此复选框,找到的字符串的长度有可能大于想要查找的字符串,如:我们想要查找字符串“WANG1”,可能会找到字符串“WANG10”,如果此时进行替换,字符串“WANG10”变为“WANG120”,如果我们选中此复选框,则不会出现此种情况
“Match case”复选框:是否辨认大小写。如果不选中此复选框,找到的字符串中字符的大小写可能与我们想要查找的字符串有差别,如:我们想要查找字符串“WANG1”,可能会找到字符串“Wang1”,如果此时进行替换,字符串“Wang1”变为“WANG12”。如果我们选中此复选框,则不会出现此种情况
“Selection”单选按钮:如果文档中有选中部分,此按钮使能,选中此按钮则从选中部分查找和替换
“Whole file”单选按钮:从整个文档中查找和替换
“Find Next”按钮:查找下一个字符串。如果是第一次查找,从当前光标位置开始查找,如果不是第一次查找,则从上一次找到的位置开始查找
“Replace”按钮:替换一个字符串。如果当前已经找到某一字符串,用指定字符串替换它,并找到下一个字符串,如果还没有找到某一字符串,不进行替换并找到字符串 “Replace All”按钮:用指定字符串替换全部能够找到的字符串 “Cancel”按钮:取消替换对话框。
查 看 菜 单 项
查看菜单项:
- 60 -
《微机原理与接口技术》
工具栏(T):
a、标准工具栏
用此命令可显示和隐藏标准工具栏。标准工具栏包括了Wmd86中一些最普通命令的按钮,如文件打开。在工具栏被显示时,一个打勾记号出现在该菜单项目的旁边。 参见工具栏以得到对使用工具栏的帮助。 b、 变量区(W)
用此命令可显示和隐藏寄存器和变量区。 c、 输出区(O)
用此命令可显示和隐藏输出区。 d、编译工具栏(B)
用此命令可显示和隐藏编译工具栏。 参见工具栏以得到对使用工具栏的帮助。 e、调试工具栏(D)
用此命令可显示和隐藏调试工具栏。 参见工具栏以得到对使用工具栏的帮助。 f、 自定义(C) 见自定义项。
状态栏(S):
此命令可用来显示和隐藏状态栏。状态栏描述了被选取的菜单项目或被按下的工具栏按钮,以及键盘的锁定状态将要执行的操作。当状态栏被显示时,在菜单项目的旁边会出现一个打勾记号。
端 口 菜 单 项
端口菜单项:
- 61 -
《微机原理与接口技术》
端口菜单提供了以下命令:
端口1 选择1号串口进行联机。 端口2 选择2号串口进行联机。
端口测试 对当前选择的串口进行联机测试。 端口1:
此命令用来选择串口1进行联机通讯,该命令会对串口1进行初始化操作,并进行联机测试,报告测试结果。 端口2:
此命令用来选择串口2进行联机通讯,该命令会对串口2进行初始化操作,并进行联机测试,报告测试结果。
端口测试:
此命令用来对当前选择的串口进行联机通讯测试,并报告测试结果。
编 译 菜 单 项
编译菜单项:
编译(C):
- 62 -
《微机原理与接口技术》
编译当前活动文档中的源程序,在源文件目录下生成目标文件。如果有错误或警告生成,则在输出区显示错误或警告信息,双击错误或警告信息,可定位到有错误或警告的行,修改有错误或警告的行后应重新“编译”。如果编译没有错误生成(即使有警告生成)使能“链接”菜单项和工具栏中的“链接”按钮,以便进行链接。编译时自动保存源文件中所做的修改。
链接(L):
链接编译生成的目标文件,在源文件目录下生成可执行文件。如果有错误或警告生成,则在输出区显示错误或警告信息,查看错误或警告信息修改源程序,修改后应重新“编译”和“链接”。如果链接没有错误生成(即使有警告生成),使能“加载”菜单项和工具栏中的“加载”按钮,以便进行加载。
加载(D):
把链接生成的可执行文件加载到下位机。在加载过程中输出区有“加载中,请稍候...”的字样,用户此时应该等待直到加载完成。加载完成后,如果加载成功,输出区显示“加载成功!”,使能“调试”菜单中的菜单项和调试工具栏中的按钮,此时CS和IP指向程序的开始执行行并在此行设置执行标记。如果加载失败,输出区显示“加载失败!”,不使能“调试”菜单中的菜单项和调试工具栏中的按钮,此时应重新进行“加载”。
编译链接并加载(T):
依次执行编译、链接和加载。如果编译有错误生成,不执行链接和加载,在输出区显示编译生成的错误或警告信息,双击错误或警告信息,可定位到有错误或警告的行,修改有错误或警告的行后应重新“编译链接并加载”,如果编译没有错误生成(即使有警告生成)接着执行链接并使能“链接”菜单项和工具栏中的“链接”按钮。如果链接有错误生成,不执行加载,在输出区显示链接生成的错误或警告信息,查看错误或警告信息修改源程序后应重新“编译链接并加载”,如果链接没有错误生成(即使有警告生成)接着执行加载并使能“加
- 63 -
《微机原理与接口技术》
载”菜单项和工具栏中的“加载”按钮。如果加载成功,输出区显示“加载成功!”,如果加载不成功,输出区显示“加载失败!”。
设 置 菜 单 项
波形菜单项:
设置菜单提供了以下命令: 语言 设置语言环境
汇编语言 设置编译环境为汇编语言环境 C语言 设置编译环境为C语言环境 变量监控 选择要监视的全局变量 堆栈监控 选择是否要监视堆栈寄存器
汇编语言:
设置编译环境为汇编语言环境。此时可编辑、编译和链接IBM-PC汇编语言源程序。
C语言:
设置编译环境为C语言环境。此时可编辑、编译和链接C语言源程序。
变量监控:
加载成功后才可用此按钮。点击此按钮,出现如下对话框:
- -
《微机原理与接口技术》
左边的列表框为程序中的全局变量,系统只能监视全局变量,右边的列表框为系统正在监视的全局变量。如果想监视左边列表框的某一变量A,用鼠标左键单击变量A,使之成为选择项,如上图所示,此时点击“加入监视”按钮,右边的列表框出现变量A,点击“结束”按钮后变量A会出现在变量区。如果想从变量区去掉某一正在监视的变量B,点击“变量监控”按钮,出现如上图所示对话框,在右边的列表框中用鼠标左键单击变量B,使之成为选择项,如上图所示,此时点击“停止监视”按钮,此变量从右边的列表框消失,点击“结束”按钮后,变量B从变量区消失。
在汇编语言源文件中,数据段定义的变量并不是全局变量,因此数据段定义的变量并不出现在上图所示的对话框的左边列表,要想监视这些变量,必须使它们成为全局变量,使一个变量成为全局变量的方法是用关键字PUBLIC在源程序的最前面声明之,格式是:PUBLIC symbol[,...],范例如下:
- 65 -
《微机原理与接口技术》
数据段DATA1中的数据 mus_time,mus_freq 经过PUBLIC声明后成为全局变量,编译、链接、加载完成后,点击“变量监控”按钮,此时对话框左边的列表框出现 mus_time和mus_freq 变量,可对这两个变量进行监控。
在C语言源文件中,函数内部定义的变量不是全局变量,函数外面定义的变量才是全局变量,因此系统只能监视函数外面定义的变量。要想监视某一变量,应该把他定义在函数的外面。
堆栈监控:
点击此按钮出下如下对话框:
选择“不监控堆栈”单选按钮,确定后不监视堆栈寄存器,选择“监控堆栈”单选按钮,确定后监视堆栈寄存器。默认选项为“不监控堆栈”。
调 试 菜 单 项
调试菜单项:
调试菜单提供了以下命令:
设置断点/删除断点 设置或删除一个断点
- 66 -
《微机原理与接口技术》
清除所有断点 清除所有设置的断点 设置起点 设置程序开始运行的起点 单步 执行一条语句 跳过 跳过一个函数
运行到断点/运行 从当前位置运行到结束或断点 停止 停止运行
设置断点/删除断点(B):
当前光标所在的行为当前行,用鼠标左键单击程序可任意改变当前行。如果当前行无断点则在当前行设置断点,如果当前行有断点则删除当前行的断点。设置断点的行如上图所示。并不是源程序的所有行都可以设置断点,如伪操作行和空行不能设置断点。源程序设置的断点数不能超过8个。
清除所有断点(D):
清除源程序中设置的所有断点,只有当设置的断点数大于零时,该菜单才使能。
设置起点(T):
- 67 -
《微机原理与接口技术》
当前光标所在的行为当前行,用鼠标左键单击程序可任意改变当前行。此命令把当前行设置为程序的起点,即程序从此行开始运行,寄存器区的CS和IP的值刷新后指向此行,设置程序起点的行如上图所示。并不是源程序的所有行都可以设置起点,如伪操作行和空行不能设置起点。
单步(T):
图一
图二
图三
图四
- 68 -
《微机原理与接口技术》
图五
图六
图七
点击此命令使程序执行一条语句,如果是函数则进入函数内部,执行后刷新所有的变量
和寄存器的值。如图一所示,“ADD WANG1,01H”为当前执行行,点击“单步”指令后,执行界面如图二,此时“ADD WANG2,01H”变成当前执行行。如果当前执行行的下一行有断点,如图三所示,点击“单步”指令后,执行界面如图四所示,即如果单步后的当前执行行有断点,执行界面就如图四所示。如果当前执行行为函数调用,如图五所示,点击“单步”指令后,当前执行行进入函数内部,执行界面如图六所示,如果当前执行行有断点,执行界面则如图七所示。并不是所有的语句都适用单步,如:初始化8253的语句不适用单步,关闭中断后的语句不适用单步。如果在不适用单步的语句使用单步命令会导致下位机死机,从而不响应上位机的命令,出现死机情况后应先软件复位,如果软件复位成功,则不需要硬件复位,如果软件复位不成功,系统会提示您硬件复位,硬件复位成功后会使能调试工具栏的按钮。
跳过(O):
- 69 -
《微机原理与接口技术》
图一
图二
图三
图四
图五
点击此命令使程序执行一个函数,执行后刷新所有变量和寄存器的值。只有当当前执行行为函数调用,如图一所示,才用此命令,此时当前执行行为“call WW31”,点击“跳过”指令后,执行界面如图二所示,此时当前执行行为“mov al,05h”。如果当前执行行为函数调
- 70 -
《微机原理与接口技术》
用且下一行有断点,如图三所示,点击“跳过”指令后,执行界面如图四所示,即如果点击“跳过”指令后的当前执行行有断点,执行界面就如图四所示。如果函数内部有断点,点击“跳过”指令后,程序会停在函数内部有断点的行,如图五所示。
运行到断点/运行:
从当前执行行开始向后运行,如果没有断点,则运行直到程序结束。如果有断点,则运行到断点后停止。
停止:
发送此命令使程序停止运行,程序停止后刷新所有寄存器和变量的值。
固化程序:
将当前程序固化进存储器。
虚 拟 仪 器 菜 单 项
虚拟仪器菜单项:
详见虚拟仪器
窗 口 菜 单 项 窗口菜单项:
窗口菜单提供了以下命令,这些命令使您能在应用程序窗口中安排多个文档的多个视图: 新建窗口 建立一个查看同样文档的新窗口。
- 71 -
《微机原理与接口技术》
层叠 按重叠方式安排窗口。
平铺 按互不重叠平铺方式安排窗口。 排列图标 安排已最小化窗口的图标。 窗口1,2,... 转到指定的窗口。
新建窗口(N):
用此命令来打开一个具有与活动的窗口相同内容的新窗口。您可同时打开数个文档窗口以显示文档的不同部分或视图。如果您对一个窗口的内容做了改动,所有其它包含同一文档的窗口也会反映出这些改动。当您打开一个新的窗口,这个新窗口就成了活动的窗口并显示于所有其它打开窗口之上。
层叠(C):
用此命令按相互重叠形式来安排多个打开的窗口。
平铺(T):
用此命令按互不重叠形式来安排多个打开的窗口。
排列图标(A):
用此命令在主窗口的底部安排被最小化的窗口的图标。如果在主窗口的底部有一个打开的窗口,则有可能会看不见某些或全部图标,因为它们在这个文档窗口的下面。
窗口选择:
Wmd86在窗口菜单的底部显示出当前打开的文档窗口的清单。有一个打勾记号出现在活动的窗口的文档名前。从该清单中挑选一个文档可使其窗口成为活动窗口。
帮 助 菜 单 项 帮助菜单项:
- 72 -
《微机原理与接口技术》
帮助主题(H):
用此命令来显示帮助的开场屏幕。从此开场屏幕,您可跳到关于使用Wmd86的一些指令以及各种不同类型参考资料。
一旦您打开了帮助,在任何时候您如果想要回到开场屏幕,您都可以通过击内容按钮来实现。
关于(A)Wmd86 :
用此命令来显示您的Wmd86版本的版权通告和版本号码。
- 73 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务