微机实验书 - 图文

更新时间:2023-11-12 12:22:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理与接口技术

实验指导书

深圳大学电子科学与技术学院

2008年12月

1

《微机原理与接口技术》实验

《微机原理与接口技术》实验课是计算机科学与技术专业本科生(或相关信息类专业)教学的必修课程,是重要的专业技术基础课。在理论教学基础上通过实验教学,使学生加深对所学知识的理解,熟练掌握各接口器件的特征和使用方法;熟悉系统设计方法和系统调试方法。 一、制定本大纲的依据

本大纲根据《微机原理与应用》教学大纲对学生试验能力培养要求而制定。 二、对本门课程的实验具体安排

教学大纲要求总学时72。根据课程的特点,需要加强实验环节,提高学生的认识。理论教学54学时,实验课共开设18个学时,其中认识型实验12学时,综合设计型专业实验6学时。学生按照实验指导书的要求,完成指定的实验任务,并按时提交实验报告。实验课分班进行,每个实验班80人左右,配备一名实验指导教师。

实验分为微机原理和接口两个部分。

计算机科学与技术专业、实验名称及学时分配 序号 1 2 3 4 5 6 1 2 实 验 内 容 微机原理部分 DOS常用命令及8086指令使用 内存操作数及寻址方法 汇编程序上机过程 分支程序 多重循环程序 子程序 微机接口部分 系统认识及内存扩展实验 并行口8255A的应用实验 计划学时 2 2 2 2 2 2 2 2 教学大纲要求 必做 必做 必做 选做 必做 必做 必做 必做 1

3 4 5 6 7 8 合计 定时/计算器8253应用实验 8251A串行接口应用实验 8259A中断控制应用实验 A/D转换0809应用试验 综合实验(一) 综合实验(二) 2 2 2 2 18 必做 必做 选做 选做 四、学生应达到的实验能力与标准

1.学会DEBUG调试软件的应用,熟悉计算机指令和内存数据存储方式; 2.掌握汇编语言的循序、分支、循环结构的编程思想;

3.对微机原理中的各个硬件环节有初步的认识及实际操作能力; 五、实验成绩的考核与评定办法

根据学生的实验预习、实验纪律、实验动手能力及实验报告结果进行综合评定,给出优、良、中、及格、不及格。

要求:完成实验后,收拾现场,分析总结写出报告。

主要仪器设备:DVCC-5286JH+教学实验系统一台和PC机一台。 六、实验中注意事项:

1.分组领出仪器设备,自行连接系统,编程上机实验; 2.注意安全,防止破坏系统;

3.实验完成后,收拾现场,交还仪器设备,登记销帐。

本实验指导书由曹建民等老师编写,由于时间仓促、水平有限,不尽之处,

敬请指正。

2

目 录

微机原理部分 .................................................... 6 实验1 DOS常用命令及8088/86指令使用 ..................... 6

1.1 实验目的 ................................................................................................................................. 6 1.2 实验类型 ................................................................................................................................. 6 1.3 内容及步骤 ............................................................................................................................. 6 1.3.1 DOS常用命令练习 ......................................................................................................... 6 1.3.2 DEBUG命令使用 ........................................................................................................... 7 1.3.3 8088常用指令练习 ........................................................................................................ 8 1.4 实验报告 ............................................................................................................................... 10 附1:动态调试器DEBUG使用 ................................................................................................. 10

实验2 内存操作数及寻址方法 ................................ 12

2.1 实验目的 ............................................................................................................................... 12 2.2 实验类型 ............................................................................................................................... 12 2.3 实验内容和步骤 ................................................................................................................... 12 2.3.1 内存操作数及各种寻址方式使用................................................................................ 12 2.3.2 求累加和程序 ............................................................................................................... 13 2.3.3 多字节加法程序 ........................................................................................................... 14 2.4 自编程序 ............................................................................................................................... 14 2.5 实验报告 ............................................................................................................................... 14

实验3 汇编语言程序上机过程 ................................ 15

3.1 实验目的 ............................................................................................................................... 15 3.2 实验类型 ............................................................................................................................... 15 3.3 实验内容 ............................................................................................................................... 15 3.4 实验步骤 ............................................................................................................................... 16 3.5 实验报告 ............................................................................................................................... 16

实验4 分支程序(选做) ..................................... 17

4.1 实验目的 ............................................................................................................................... 17 4.2 实验类型 ............................................................................................................................... 17 4.3 实验内容 ............................................................................................................................... 17 4.4 实验步骤 ............................................................................................................................... 18 4.5 实验报告 ............................................................................................................................... 18

实验5 多重循环程序 .......................................... 19

5.1 实验目的 ............................................................................................................................... 19 5.2 实验类型 ............................................................................................................................... 19 5.3 实验内容 ............................................................................................................................... 19

3

5.4 实验步骤 ............................................................................................................................... 20 5.5 实验报告 ............................................................................................................................... 20

实验6 子程序 ................................................. 21

6.1 实验目的 ............................................................................................................................... 21 6.2 实验类型 ............................................................................................................................... 21 6.3 实验内容及步骤 ................................................................................................................... 21 6.3.1 利用堆栈传递参数的子程序调用(求累加和) ............................................................. 21 6.4 实验报告 ............................................................................................................................... 23

接口实验部分 ...................................................... 24

实验1 系统认知及内存扩充实验 ............................. 24

1.1 实验目的 .............................................................................................................................. 24 1.2 实验类型 .............................................................................................................................. 24 1.3 实验设备 .............................................................................................................................. 24 1.4 实验内容及步骤 .................................................................................................................. 24 1.4.1 进入系统 ..................................................................................................................... 24 1.4.2 内存扩容验证内容 ......................................................................................................... 25 1.4.3 系统操作练习(1) ....................................................................................................... 25 1.4.4 系统操作练习(2) ....................................................................................................... 26 1.5 实验报告及思考题 ............................................................................................................... 27

实验2 中断特性及8259应用编程实验 ....................... 28

2.1 实验目的 ............................................................................................................................... 28 2.2 实验类型 ............................................................................................................................... 28 2.3 实验内容及步骤 ................................................................................................................... 28 2.3.1 预备知识 ....................................................................................................................... 28 2.3.2 8259应用实验 .............................................................................................................. 30 2.4 实验报告和思考题 ............................................................................................................... 35

实验3 8255A并行接口应用实验 .............................. 36

3.1 实验目的 ............................................................................................................................... 36 3.2 实验类型 ............................................................................................................................... 36 3.3 实验内容及步骤 ................................................................................................................... 36 3.3.1 预备知识 ....................................................................................................................... 36 3.3.2 实验内容 ....................................................................................................................... 38 3.4 实验报告和思考题 ............................................................................................................... 41

实验4 8253定时/计数器应用实验 ................................... 42

4.1 实验目的 ............................................................................................................................... 42 4.2 实验类型 ............................................................................................................................... 42 4.3 实验内容及实验步骤 ........................................................................................................... 42

4

4.3.1 预备知识 ....................................................................................................................... 42 4.3.2 8253计数器应用实验内容(1) ................................................................................. 44 4.4 实验报告和思考题 ............................................................................................................... 45

实验5 8251串行接口应用实验 ............................... 46

5.1 实验目的 ............................................................................................................................... 46 5.2 实验类型 ............................................................................................................................... 46 5.3 实验内容及步骤 ................................................................................................................... 46 5.3.1 预备知识 ....................................................................................................................... 46 5.3.2 8251串行接口应用实验 .............................................................................................. 47 5.4 实验报告和思考题 ............................................................................................................... 54

实验6 ADC0809的A/D转换实验 .............................. 55

6.1 实验目的 ............................................................................................................................... 55 6.2 实验类型 ............................................................................................................................... 55 6.3 实验内容及步骤 ................................................................................................................... 55 6.3.1 准备知识 ......................................................................................................................... 55 6.3.2 实验内容 ....................................................................................................................... 55 6.4 实验报告和思考题 ............................................................................................................... 58

附 录 ................................................. 59

附录1 汇编语言常用出错信息 ................................................................................................. 60 附录2 动态调试工具软件DEBUG命令表.............................................................................. 64 附录3 常用DOS功能调用(INT21H) ....................................................................................... 65 附录4 BIOS调用 ....................................................................................................................... 70

5

微机原理部分

实验1 DOS常用命令及8088/86指令使用

1.1 实验目的

通过实验掌握下列知识: ①DOS命令: ②8088指令:

CD,DIR,MD。

MOV,ADD,ADC,SUB,SBB,DAA,XCHG。

③DEBUG命令: A,D,E,F,H,R,T,U。

④BCD码,ASCII码及用十六进制数表示二进制码的方法。 ⑤8088寄存器:AX,BX,CX,DX,F,IP。 ⑥指令和数据的十六进制储存方式。

1.2 实验类型

验证型实验

1.3 内容及步骤

1.3.1 DOS常用命令练习

①开机后,用鼠标左键单击“开始→程序→附件→C:\\”切换到命令提示符窗口下,操作过程见图1-1。

图1-1 切换到命令提示符窗口的操作步骤

②出现提示符后(此时按下ALT+Enter将得到全屏显示界面)键入命令DIR,查看此目录下

6

所有文件,见图1-2。

③键入命令E:↙进入E盘,再键入DIR↙查看E盘的所有文件。

说明:公共计算机房为了防止学生误操作,一些C和D磁盘或子目录是设置为只读属性的,E盘目录下面及其下面的子目录是完全开放的。为了防止学生所作文件因不能存盘而丢失,建议一般操作练习在E盘目录下运行。

④键入MD MASM↙在E盘根目录下创建一个MASM的文件夹,键入CD MASM↙进入该文件夹,再健入DIR差看该目录里的文件(应该是空文件夹)。

⑤键入EXIT↙,退出DOS返回windows,利用资源管理器差看E盘目录下自己创建的MASM文件夹及其内容,和在DOS下差看的结果比较。

图1-2 切换到命令提示符窗口的界面

在操作时要注意提示信息,并按提示操作。 1.3.2 DEBUG命令使用

①在DOS环境,键入DEBUG进入DEBUG控制状态,显示提示符'-'。 ②用命令F1001 LF'A'将'A'的ASCII码填入内存。

③用命令D1001 LF观察内存中的十六进制码及屏幕右边的ASCII字符。 ④用命令F1101 LF 41重复上二项实验,观察结果并比较。

⑤用命令E100 30 31 32??3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码?

⑥用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH

⑦用R命令检查各寄存器内容,注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

7

⑧用R命令将AX,BX内容改写为1050H及23A8H。

DEBUG工具软件的执行界面示意见图1-3,其中标志寄存器的内容含义见表1-1。

执行debug命令的路径和格式 段寄存器和IP的内容 AX~DI各通用寄存器的标志寄存器FR的内容 汇编机器码 下一条要执行的指令 段:偏移 地址值 0~F地址单元的内容(16进制值) 0~F地址单元的内容(ASCII值)

图1-3 执行debug以及其“t”“r”“d”命令的界面

表1-1 标志寄存器显示内容一览表

标志位显示 CF ZF SF AF OF PF DF IF 1 CY() ZR() NG() AC() OV() PE() DN() EI() 0 NC() NZ() PL() NA() NV() PO() UP() DI() 1.3.3 8088常用指令练习 1. 传送指令

用A命令在内存100H处键入下列内容:

-A0100↙

****:0100 MOV ****:0103 MOV ****:0106 XCHG ****:0108 MOV ****:010A MOV

AX,1234↙ BX,5678↙ AX,BX↙ AH,35↙ AL,48↙

8

****:010D MOV ****:010F XCHG ****:0111↙ -

DX,75AB↙ AX,DX↙

注:****为段寄存器CS的值,是由计算机随机产生的;↙为回车操作。 用U命令检查键入的程序并记录,特别注意左边的机器码。 -U0100↙

用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。

-T=0100↙ -T↙ -T↙ ┇

2. 加减法指令

1)用A命令在内存100H处键入下列内容: MOV MOV ADD SUB MOV MOV ADD SUB SUB

AH,34 AL,22 AL,AH AL,78 CX,1284 DX,5678 CX,DX CX,AX CX,CX

2)用U命令检查键入的程序及对应的机器码。

3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。

思考:这次运行还是键入T,行不行?怎么办?用R命令检查一下IP的内容。注意T命令与IP的关系。

3. 带进位加减法

1)用A命令在内存200H处键入下列内容,并用U命令检查: MOV MOV MOV MOV

AH,12 AL,84 CH,56 CL,78

9

实验3 汇编语言程序上机过程

3.1 实验目的

①掌握常用工具软件EDIT,MASM和LINK的使用。

②伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。 ③利用INT 21H的1号功能实现键盘输入的方法。

④了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。

3.2 实验类型

验证型实验

3.3 实验内容

DATA

SEGMENT

'THIS IS A SAMPLE PROGRAM OF KEYBOARD AND DISPLAY' 0DH,0AH,'PLEASE STRIKE THE KEY!',0DH,0AH,'$'

STACK'STACK'

DB

DATA STACK STACK CODE

ENDS

SEGMENT PARA DB ENDS SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV

MOV MOV MOV INT

AGAIN: MOV

INT CMP JE CMP JC CMP JA AND

MESSAGE DB

50DUP(?) ;复制操作符 (重复的数据可以用)

AX,DATA DS,AX

DX,OFFSET MESSAGE AH,9 21H AH,1

21H AL,1BH EXIT AL,61H ND AL,7AH ND

AL,11011111B

15

ND: MOV MOV INT JMP

DL,AL AH,2 21H AGAIN AH,4CH 21H START

EXIT: MOV

INT

CODE

ENDS END

3.4 实验步骤

①用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为.ASM。 ②用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

③用TYPE命令显示产生的.LST文件。

④用LINK将.OBJ文件连接成可执行的.EXE文件。

⑤在DOS状态下运行LINK产生的.EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。

⑥调试通过后,修改并自编程序,使得输入“T”,在屏幕上显示“TEST”,不影响其它。 上机试验过程参见图3-1。

编辑程序 EDLINE WPS WORD EDIT 文件 EXMP.ASM 出错 汇编程序 ASM MASM TASM 文件 EXMP.OBJ (EXMP.LST) (EXMP.CRF) 出错 连接程序 LINK 文件 EXMP.EXE 出错 (EXMP.MAP) (EXMP.LIB) 出错 DEBUG

图3-1 汇编语言程序的建立及汇编过程

3.5 实验报告

⑴汇编,连接及调试时产生的错误,其原因及解决办法。 ⑵思考

①若在源程序中把INT 21H的'H'省去,会产生什么现象? ②把INT 21H 4CH号功能改为INT 20H,行不行? ⑶写出自编的程序,并注释。 ⑷实验体会和建议。

16

实验4 分支程序(选做)

4.1 实验目的

①掌握利用间接转移指令JMPBX实现多岔分支的方法。 ②宏替换指令MACRO及ENDM,符号扩展指令CBW。

4.2 实验类型

验证型实验

4.3 实验内容

DISP

MACRO MSG LEA DX,MSG MOV AH,9 INT 21H MOV AH,4CH INT 21H ENDM

SEGMENT STACK DB 256 DUP(0) ENDS SEGMENT DB 16 DUP(?) DW OFFSETBRA,OFFSETBRB,OFFSETBRC DW OFFSETBRD,OFFSETBRE,OFFSETBRF DB 'I LIKE MY IBM-PC!$' DB 'HOW ARE YOU!$' DB 'NIBAO COLLEGE $' DB 'THIS IS A SAMPLE$' DB 'WELLCOME USE MY COMPUTER!$' DB 'THE ASSEMBLER LANGUAGE OF 8088$' DB 'ERROR!!INVALID PARAMETER!!$' ENDS SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK MOV AX,DATA MOV ES,AX MOV SI,80H LEA DI,PARM

17

STACK STACK DATA PARM BRTABLE MSGA MSGB MSGC MSGD MSGE MSGF ERRMS DATA CODE START:

ERR: BRA: BRB: BRC: BRD: BRE: BRF: CODE

MOV CLD REP MOV CMP JC MOV SUB JC CMP JNC LEA CBW ADD ADD JMP DISP DISP DISP DISP DISP DISP DISP ENDS END

CX,16 MOVSB DS,AX PARM,2 ERR

AL,PARM+2 AL,30H ERR AL,6 ERR

BX,BRTABLE AX,AX BX,AX [BX] ERRMS MSGA MSGB MSGC MSGD MSGE MSGF START

4.4 实验步骤

①输入并汇编此程序。要求生成一个.LST文件。用TYPE命令检查.LST文件,观察宏替换命令产生的指令集。

②将OBJ文件连接成EXE文件(假设为AA.EXE)。

③用命令DEBUG AA.EXE XXX(XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观察DS:0080处的命令行,记录80H处的内容和字符个数的关系。

④退出DEBUG。直接带参数运行此程序:AAn(n=0~5) ⑤依次观察并记录n从0到5时的运行结果。

4.5 实验报告

①实验记录。

②说明80H处的内容和字符的关系。 ③实验体会和建议。

18

实验5 多重循环程序

5.1 实验目的

①掌握多重循环程序和排序程序设计方法。 ②掌握带符号数的比较转移指令:JL,JLE,JG,JGE ③伪指令EQU及操作符'$'的使用。 ④COM文件的要求和生成过程。

5.2 实验类型

验证型实验

5.3 实验内容

CODE

SEGMENT ORG

MAIN: ARRAY COUNT START:

JMP DW DW EQU MOV SHR DEC MOV

AGAIN:

MOV AND JE XOR XOR

AGAIN1: MOV

CMP JLE MOV MOV

NCHG:

100H START

1234H,5673H,7FFFH,8000H,0DFFH 0AB5H,0369H,005FH,5634H,9069H $-ARRAY CX,COUNT CX,1 CX BL,-1 DX,CX BL,BL EXIT BL,BL SI,SI AX,ARRAY[SI] AX,ARRAY[SI+2] NCHG

ARRAY[SI],AX BL,-1 SI

19

ASSUME CS:CODE,DS:CODE

XCHG ARRAY[SI+2],AX

INC

ASSUME CS:CODE

ORG 1180H START: JMP TCONT TCONTRO EQU 0043H TCON0 EQU 0040H

TCONT: MOV DX,TCONTRO ;写控制字,输出方波

MOV AL,36H OUT DX,AL

MOV DX,TCON0 ;计数初值送0通道寄存器 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL JMP $

CODE ENDS END START 4. 实验步骤

⑴、按图3-10连接好实验线路,理解实验原理,理解实验程序。 ⑵、运行实验程序

(1)联机时,实验程序文件名为﹨DVCC﹨H8EXE﹨H85S.EXE。 (2)单机时,实验程序起始地址为F000:9180。 在系统显示监控提示符“P.”时: 输入F000按F1键 输入9180按EXEC键

⑶、用示波器测量8253左侧OUTO插孔,应有方波输出。

⑷、修改电路,连接OUT0到SIN端插空;喇叭插头线连接到驱动J5插座。自编程序,并编译运行,使喇叭发出1234567的声音。音频对应如下:

1 523Hz, 2 588Hz, 3 660Hz, 4 698Hz, 5 784Hz, 6 880Hz, 7 988Hz

4.4 实验报告和思考题

①计算输出方波的频率? ②8253可替代哪些常用器件? ③写出自编程序,并注释程序 ④实验体会和建议。

45

实验5 8251串行接口应用实验

5.1 实验目的

①掌握8251的工作方式。

②掌握双机通信的原理和编程方法。

5.2 实验类型

验证型实验

5.3 实验内容及步骤

5.3.1 预备知识

8251A是一种可编程的同步/异步串行接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。

1、8251A内部结构框图如图3-13所示。

图中I/O缓冲器是双向三态,通过引脚D0~D7和系统数据总线直接接口,用于和CPU

传递命令、数据、状态信息。读写控制逻辑用来接收CPU的控制信号、控制数据传送方向。CPU对8251A的读写操作控制表如表3-4所示。

图中收发器功能是从引脚RXD(收)和TXD(发)收发串行数据。接收时按指定的方式装配成并行数据,发送时从CPU接收的并行数据,自动地加上适当的成帧信号转换成串行数据。8251A内部的调制解调器控制器,提供和外接的调制解调器的握手信号。

46

2、8251A的方式控制字和命令控制字

方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如下图3-14所示。命令控制字使8251A处于规定的状态以准备收发数据,格式如下图3-15所示。方式控制字、命令控制字无独立的端口地址,8251A根据写入的次序来区分。CPU对8251A初始化时先写方式控制字,然后写命令控制字。

状态寄存器用于寄存8251A的状态信息,供CPU查询,各位定义如下:

TXE)成立时才置位。

溢出错误:CPU没读走前一个字符,下一个字符又收到。 帧错误:在字符结尾没检测到停止位。

TXRDY:当数据缓冲器空时置位,而TXRDY引脚只有当条件(数据缓冲器空﹒/CTS﹒

5.3.2 8251串行接口应用实验 1. 实验内容

如图3-16所示,TXC和RXC分别为8251A的发送时针和接收时钟。它由片外8253A的

47

OUT出发。要完成本实验,需二台DVCC实验系统。其中一台为串行发送,一台为串行接收,在一号机上装串行发送程序,在2号机上装串行接收程序,则在一号机上键入底字符显示在二号机上的显示器上。

由于本系统监控中已对8253A、8251A进行初始化,因此本实验可以直接进入对串行口的查询。

2. 试验线路连接

(1)将1号机SIO区RXD1插孔和2号机的TXD1插孔相连。 (2)将1号机SIO区TXD1插孔和2号机的RXD1插孔相连。 (3)将1号机和2号机的地线GND相连。 3. 实验程序 CODE SEGMENT ASSUME CS:CODE

ORG 1300H START: JMP SERIAL SECOPORT EQU 0051H SEDAPORT EQU 0050H SERIAL: call for8251

MOV DS:[077AH],1701H MOV DS:[077CH],0501H MOV DS:[077EH],0802H

cmp byte ptr ds:[0752h],10h ;判断是功能、数字键

48

redikey:call dispkey ;调键扫子程序

jc wattxd

jmp funckey ;转功能键 IN AL,DX

TEST AL,01H ;忙时等待,闲时往下执行 JZ WATTXD

MOV AL,BYTE PTR DS:[0752H] ;取键值发送 MOV DX,SEDAPORT OUT DX,AL IN AL,DX TEST AL,02H JZ WATRXD

MOV DX,SEDAPORT ;接收串口数据 IN AL,DX

CMP BYTE PTR DS:[0752H],AL ;和刚发送值比较 JZ seri2

MOV DS:[077AH],1c1cH MOV DS:[077CH],101bH mov ds:[077eh],1010h JMP sererr

WATTXD: MOV DX,SECOPORT ;数字键处理

WATRXD: MOV DX,SECOPORT

sererr: CALL DISP seri2: mov cx,0018h ser3: call disp

loop ser3 jmp redikey JNZ REDIKEY

MOV DS:[077AH],191AH MOV DS:[077CH],1819H mov ds:[077eh],1010h JMP monit call key

mov ah,al ;newkey

49

funckey:CMP BYTE PTR DS:[0752H],1FH

monit: CALL DISP dispkey:call disp

屏幕上端为菜单栏,通过键盘各功能键选择使用编辑、选项、动态调试、试验指南等功能.

实验平台启动后,应在提示符“P.”状态。在键盘监控状态,段地址的缺省值为0000H。 1.4.2 内存扩容验证内容

对指定地址区间的RAM(2000H~23FFH)先进行写数据55AAH, 然后将其内容读出再写到

3000H~33FFH中。

1.4.3 系统操作练习(1) 联机运行

在实验台系统上按下PCDBG键,在PC机菜单上选择“联接DVCC系统”菜单项。联机正常,屏幕出现:反汇编窗口、数据窗口、寄存器标志位窗口。 实验程序文件名为\\DVCC\\H8EXE\\H812S.EXE。

实验程序如下: CODE SEGMENT ASSUME CS:CODE

ORG 1700h ;定义起始地址 START: MOV AX,0H ;定义数据段寄存器 MOV DS,AX

MOV BX,2000H ;定义数据地址 MOV AX,55AAH ;置常数为55AA MOV CX,03FFH ;置字节数CX

RAMW1: MOV DS:[BX],AX ADD BX,0002H

LOOP RAMW1 ;一直写到字节数为0 MOV AX,2000H

MOV SI,AX ;置源数据区地址 MOV AX,3000H

MOV DI,AX ;置目的数据区地址 MOV CX,03FFH

CLD ;确定地址变化方向 REP MOVSB ;写数据到目标数据区

JMP $ CODE ENDS END START

传送文件到指定的位置(不用输入,直接在\\DVCC\\H8EXE\\H812S.EXE)。在“动态调试”

25

菜单栏中,选择“传送EXE文件”,单击传送到指定地址。然后可以分别使用单步、断点等方法运行程序。

用存储器读写方法检查2000H~2300H中的内容应都是55AA。

1.4.4 系统操作练习(2) 单机运行

单机时,实验程序起始地址为F000:9700。 在系统显示监控提示符“P.”时:

输入F000 按F1键 输入9700 按EXEC键

稍后按RESET键退出,用存储器读写方法检查2000H~3000H中的内容应都是55AA。 1. 贮存单元的显示和修改

操作:XXXXMEM。即在提示符下,先输入4位储存单元的地址,在按MEM键,右边4位显示该单元的内容。此时 按NEXT键使地址加1显示; 按LAST键使地址减1显示;

键入16进制数据,则将改变现行单元的内容; 按MON键返回监控,系统提示“P.” 2. 寄存器内容显示修改

操作:XREG。即在系统提示符下,先输入寄存器的代号,在按REG键,显示器右边4位显示该寄存器的内容,左3、4位显示寄存器的名,此时: 按NEXT键,则依次循环显示下一个寄存器中的内容; 按LAST键,则依次显示上一个寄存器的内容; 键入16进制的数据,则修改该寄存器的内容; 按MON键,则返回系统。

寄存器代号和寄存器名的对应关系如下: 0 1 AX BX 3. 单步运行

2 CX 3 DX 4 SP 5 BP 6 SI 7 DI 8 CS 9 DS A SS B ES C IP D FL 操作:有三种状态都可以进入单步操作(段地址固定为0000H)

在监控系统提示符“P.”下,按STEP键,从默认的起始地址IP=1000H单元开始运行每一条语句;

在储存单元读写状态(右边2位显示内容的状态)下,从当前存储器地址开始单步运行;

先输入4位起始地址,在按STEP键,在从输入地址处开始运行。每运行一条语句,

26

显示器显示下一条指令语句的地址和内容。 4. 连续运行

操作:有三种状态都可以进入连续运行

在监控系统提示符“P.”下,按EXEC键,从默认的起始地址CS=0000H,IP=1000H单元开始运行程序;

在储存单元读写状态(右边2位显示内容的状态)下,再按EXEC键,从当前存储器地址开始运行;

先输入4位起始地址,在按EXEC键,在从输入地址处开始运行程序(默认CS); 先输入4位段地址,按F1键,再输入4位偏移地址,再按EXEC键,则从规定地址开始运行程序。

如果要返回监控,可以按8088上的STOP键或者系统复位RESET键。如果用STOP返回,则保护所有寄存器的内容。如果用RESET键则初始化。 5. 断点运行(默认CS=0000H)

操作:XXXX F2 XXXX EXEC。即先输入4位断点地址,按F2键,再输入4位起始地址,再按EXEC键,再程序执行到断点停下来,并显示断点地址和内容,同时保护寄存器的值。

分别使用上述方法运行运行程序H821S,和联机结果比较。

1.5 实验报告及思考题

①为什么运行程序时在“P.”提示符下键入XXXX F1 XXXX EXEC?若直接键入XXXX EXEC?行不行?

②如果不进行EXE文件传送,运行程序并查看2000H-2300H的数据是些什么? ③该实验系统内容容量为多少?使用的地址范围是多少?需要多少条地址线片内寻址? ④如果给1000H:1000H写入55AA,检查写到了那个单元去了? ⑤实验体会和建议。

27

实验2 中断特性及8259应用编程实验

2.1 实验目的

①掌握中断控制器8259A与微机接口的原理和方法。 ②掌握中断控制器8259A的应用编程。

③学习在接口实验单元上构造连接实验电路的方法。

2.2 实验类型

验证型实验

2.3 实验内容及步骤

2.3.1 预备知识 1、8259A的内部结构

8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源、提供中断向量的电路集于一体,只要软件对它进行编程,它就可以管理8级中断。

如图3—11所示,它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。

中断请求寄存器:中断所有要求服务的请求IR0~IR7。 中断服务寄存器:寄存正在被服务的中断请求。

中断评比寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位

为1,屏蔽该号中断,否则开放该号中断。

数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以

由CPU对8259A写入状态字和控制字。

读写控制电路:用来接受I/O命令,对初始化命令和操作命令寄存器进行写入,以确

定8259A的工作方式和控制方式。

28

级联缓冲器/比较器:用于多片8259A的选择,能构成多达64级的矢量中断系统。 2、8259A编程及初始化 (1)写初始化命令字

*写初始化命令字ICW(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,

中断优先级排队和确定系统用单片还是多片。

*写初始化命令字ICW2,以定义中断向量的高五位类型码。

*写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A

从片。

第i位=0,表明Iri引脚上无从片 第i位=1,表明IR引脚上有从片

*写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及

中断服务寄存器复位方式等。

29

(2)写控制命令字

*写操作命令字0CW1,用来设置或清除对中断源的屏蔽。

第i位=0,对应的中断请求IRi开放 第i位=1,对应的中断请求IRi屏蔽

*操作命令字OCW2,设置优先级是否进行循环、循环方式、及中断结束方式。

*操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前

状态。

(3)8259A查询字

有则转入相应的中断服务程序。

通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,

2.3.2 8259应用实验 1. 实验内容

本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端

30

IR0~IR7对应中断型号为8~F,其和中断矢量关系如下表3—3所示。

根据实验原理图3—12,8259A和8088系统总线直接相连,8259A上连有一系统地址线AO,故8259A有2个端口地址,本系统中为60H、61H。60H用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写命令操作字。OCW2、OCW3用口地址60H,OCW1用口地址61H。 图3—12中,使用了3号中断电源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。如果中断源电平信号不符规定要求则自动转到7号中断,显示“Err”。CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示“Good”。

2. 实验电路连接

(1)8259模块上的INT1连8088的INTR(字主板键盘矩阵下面) (2)8259模块上的INTA连8088的INTA(在主板键盘矩阵下面)

(3)MP区SP插孔和 8259的3号中断IR3插孔相连,SP端初始为低电平。 (4)8259模块上的D0~D7连到BUS2区的XD0~XD7。 (5)8259模块上的CS端接Y6。

31

(6)8259模块上的A0连到BUS区的XA0上。

(7)8259模块上的RD、WR信号线分别连到BUS3区的XRD、XWR上。 3. 实验程序 ODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0060H INTPORT2 EQU 0061H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7

ORG 11A0H

CALL WBUF1 ;调用9259-1显示子程序 CALL WRINTVER MOV AL,13H MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0F7H OUT DX,AL

MOV BYTE PTR DS:[0701H],01H ;TIME=1,置中断次数为1 STI

;DISP 8259-1

JMP WATING MOV ES,AX

MOV DI,002CH ;写3号中断矢量 LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH

32

START: CLD

;WRITE INTRRUPT

WATING: CALL DISP WRINTVER:MOV AX,0H

LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET

MOV AL,DS:[0701H] CALL CONVERS MOV BX,077BH MOV AL,10H MOV CX,05H INC BX LOOP INTRE0 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL

ADD BYTE PTR DS:[0701H],01H ;判中断次数满5次否 CMP BYTE PTR DS:[0701H],06H JNA INTRE2

MOV DS:[077AH],191AH ;显示good MOV DS:[077CH],1819H mov DS:[077Eh],1010H JMP INTRE1 MOV BX,077AH MOV DS:[BX],AL INC BX RET

MOV DX,INTPORT1 OUT DX,AL STI IRET

INTREEUP3:CLI ;3号中断服务程序

INTRE0: MOV BYTE PTR DS:[BX],AL

INTRE1: CALL DISP CONVERS: AND AL,0FH

INTRE2: MOV AL,20H ;开中断

INTREEUP7: CLI

33

MOV AL,20H MOV DX,INTPORT1 OUT DX,AL

MOV DS:[077AH],1C1CH MOV DS:[077CH],101BH mov DS:[077Eh],1010H JMP INTRE3 mov ah,20h mov bx,dx mov bl,ds:[bx] mov bh,0h push dx mov dx,0ff22h mov al,cs:[bx+127bh] OUT DX,AL mov dx,0ff21h mov al,ah OUT DX,AL pop dx dec dx shr ah,01h jnz disp0 mov dx,0ff22h mov al,0FFH OUT DX,AL ret

db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh db 0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh db 90h,0a3h,0a1h,86h,8fh MOV WORD PTR DS:[BX+077AH],1701H

34

INTRE3: CALL DISP

disp: mov dx,077Fh ;显示子程序 disp0: mov cx,00ffh

disp1: loop disp1

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

WBUF1: MOV BX,0

ADD BX,2

MOV WORD PTR DS:[BX+077AH],0509H ADD BX,2

MOV WORD PTR DS:[BX+077AH],0802H RET

CODE ENDS END START 4. 实验步骤

(1)、按图3—12连好实验线路,理解实验原理和实验程序。 (2)、运行实验程序

(a)联机时,实验程序文件名为/DVCC/H8EXE/H86S。EXE。 (b)单机时,实验程序起始地址为F000:91A0。

在系统显示监控提示符“P.”时: 输入F000按F1 键 输入91A0按EXEC键 在系统上显示“8259-1”。

(3)、按AN按钮,按满5次显示“Good”。

2.4 实验报告和思考题

①阅读程序, 画出程序框图

②如果改用2号中断,如何改写程序?

③程序中使用了哪些命令字?有没有OCW2命令字? ④写出实验记录和体会。

35

实验3 8255A并行接口应用实验

3.1 实验目的

①掌握8255A可编程并行口使用方法。 ②学习在系统接口实验单元上构造实验电路。 ③设计流水灯实验并实现。

3.2 实验类型

综合型实验

3.3 实验内容及步骤

3.3.1 预备知识 1.8255结构

8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图3—5是8255A的逻辑框图,内部有3个8位I/O端口:A口、B口、C口;也可以分为各有12位的两组:A组和B组,A组包含A口8位和C口的高四位,B组B口8为位和C口的低4位;A组控制和B组控制用与实验方式选择操作;读写控制逻辑用于控制芯片内寄存器的的数据和控制字经数据总线缓冲器进入各组接口寄存器。由于8255A数据总线缓冲器是双向三位8位驱动器,因此可以直接和8008系统数据总线相连。

2.8255A端口地址见表3-1

36

3.8255A工作方式

8255A芯片有三种工作方式:方式0、 方式1、方式2。它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。 方式0:基本输入/输出

如图3---6(a)所示。该方式下的A口8位和B口8位可以由输入的控制决定为输入或输

出,C口分成高4位(PC7---PC4)和低4位(PC3---PC0)两组,也有控制字决定其输入或输出。需注意的是:该方式下,只能将C口其中一组的四位全部置为输入或输出。

方式1:选通输入/输出

如图3—6(b)所示。该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和

控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

方式2:双向输入输出

37

如图3-6(D)所示。本方式只有A组为输入输出双向口,C口中的5位(PC~PC7) 作为A口的控制位。 4.8255A控制字

(1)方式选择控制字

(2)P按位置/复位控制字

3.3.2 实验内容 1. 实验原理

实验原理图如图3—7所示,PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,本实验为模拟交通灯实验。交通灯的亮灭规律如下:

设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后1、3路口的闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的灯亮,2、4路口方向通车;延时一时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后, 换到1、3路口方向,之后重复上述过程。

再切

38

8255A的PB4~PB7对应黄灯,PC0~PC7对应红灯。8255A工作于模式0,并设置为输出。

由于各发光二极管反向驱动,使其点亮应使8255A相应端口置1。

2. 实验线路连接

(1)L1—PCO L4—PC1 L7—PC2 L10—PC3

L2—PB4 L5—PB5 L8—PB6 L11—PB7

L3—PC4 L6—PC5 L9—PC6 L12—PC7 3. 实验程序如下: CODE SEGMENT ASSUME CS:CODE

IOCONPT EQU 0FF2BH ;定义各寄存器地址 IOAPT EQU 0FF28H IOBPT EQU 0FF29H IOCPT EQU 0FF2AH

ORG 10e0H

MOV AL,80H ;定义A口为输入,B口为输出 OUT DX,AL

MOV DX,IOBPT ;灭绿灯,灭黄灯 MOV AL,00H

MOV DX,IOCPT ;亮4个红灯 MOV AL,0FH

39

START: MOV DX,IOCONPT ;写控制字,三口均为输出输出

OUT DX,AL

OUT DX,AL

CALL DELAY1 调延时 IOLED0: MOV AL,01011010B ;13L 24H,1、3路口绿灯亮,同时2、4红灯灭

MOV DX,IOCPT OUT DX,AL CALL DELAY1 CALL DELAY1

MOV AL,00001010B ;13LN OUT DX,AL

MOV CX,8H IOLED1: MOV DX,IOBPT MOV AL,50H OUT DX,AL

CALL DELAY2 MOV AL,00H OUT DX,AL CALL DELAY2

LOOP IOLED1 MOV DX,IOCPT

MOV AL,10100101B OUT DX,AL CALL DELAY1

CALL DELAY1

MOV AL,00000101B OUT DX,AL MOV CX,8H

IOLED2: MOV DX,IOBPT MOV AL,0A0H OUT DX,AL

CALL DELAY2 MOV AL,00H OUT DX,AL CALL DELAY2

LOOP IOLED2 MOV DX,IOCPT

MOV AL,0FH

,灭1、3路口绿灯 ;置计数器为8 ;亮1、3路口黄灯 ;延时较短时间 ;灭1、3路口黄灯 ;黄灯闪烁8次 ;亮2、4路口绿灯,同时1、3路口红灯亮 ;灭2、4路口绿灯。 ;亮2、4了路口黄灯 ;黄灯闪烁8次 40

OUT DX,AL CALL DELAY2

JMP IOLED0 ;循环 PUSH CX MOV CX,0030H LOOP DELY2 POP CX POP AX RET

MOV CX,8000H POP CX RET

DELAY1: PUSH AX

DELY2: CALL DELAY2

DELAY2: PUSH CX DELA1: LOOP DELA1

CODE ENDS END START 3. 实验步骤

1、按图3-7连好实验线路,理解实验原理,理解实验程序。 2、运行实验程序

(1)联机时,实验程序文件名为\\DVCC\\H8EXE\\H84S.EXE。 (2)单机时,实验程序起始地址为F000:90E0。 在系统显示监控提示符“P.”时: 输入F000 按F1键 输入90E0 按EXEC键

在系统上显示执行符“『”,同时L1~L12发光二极管模拟交通灯显示。

3、自行修改电路连接,自编程序,实现8个灯依次点亮,间隔1S,实现流水灯。

3.4 实验报告和思考题

①在实验中,若设A口,B口、C口各工作在什么方式? ②计算延时时间,并试修改运行? ③写出自编流水灯程序,并注释。 ④实验体会和建议。

41

实验4 8253定时/计数器应用实验

4.1 实验目的

①学习8253A可编程定时/计数器与8088CPU的接口方法,掌握8253A在各种方式下的编程方法。

②熟悉自带示波器的使用方法.

⑤设计音乐发生电路,并自编程序发出1234567。

4.2 实验类型

综合型实验

4.3 实验内容及实验步骤

4.3.1 预备知识 1、8253A内部结构

8253A定时/计数器具有定时、计数双功能。它具有三个相同独立的16位减法计数器,分别称为计数器0、计数器1、计数器2。每个计数器计数频率为0~2MHZ,其内部结构如图3—8所示。由于其内部数据总线缓冲器为双向三态,故可直接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;图中的读写控制逻辑,当选中该芯片时,根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息:当写入控制字时,控制计数器的工作方式,当写入数据是则装入计数初值,控制寄存器为8位,只写不能读。

2、计数器内部结构

如图39所示,每个计数器有一个16位可预置的减1计数器组成,计数器可保存在16位锁存器中,该锁存器只写不能读.在计数器工作时,初值不受影响,以便进行重复计数.图中每个计数器由一个时钟输入端CLK作为计数脉冲源,计数方式可以是二进制,计数范围1~10000H,一可以是十进制,计数范围1~65536.门控制GATE用于控制计数开始和停止.输出OUT端当计数值减到零时,该端输出标志信号.

42

3、8253A端口地址选择见 表3-2

4、8253A功能

8253A既可作定时器又可作计数器:

(1)计数:计数器装入初值后,当GATE为高平电是时,可用外部事件作为CLK脉冲对计数值减1计数,没来一个脉冲3减1,当计数值减到0时,由OUT端输出一个标志信号.

(2)定时:计数器装入初值后,当GATE为高平时 ,由CLK脉冲触发开始计数,当计数到零时,发计数结实信号。

除上述典型应用外,8253A还可作频率发生器,分频器,实时钟,单脉冲发生器等。 5、8253A控制字

说明:

从OUT输出一个信号。

(2)8253A先编程时先写控制字,再写时间常数。 6、8253A工作方式

(1)方式0:计数结束产生中断方式

(1)8253A每个通道对输入CLK按二进制或十进制从预置值开始减1计数,减到0时

当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变为高电平。

(2)方式1:可编程单次脉冲方式

当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。 (3)方式2:频率发生器方式

43

当初值装入时,OUT变为高;计数结束,OUT变为低。该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变为高,当GATE再变高时,便启动一次新的计数周期。

(4)方式3:方波发生器

当装入初始后。在GATE上升启动计数,OUT输出高平电;当计数完成一半时,OUT输出低电平。

(5)方式4:软件出发选通

当写入控制字后,OUT输出为高;装入初值且GATE为高时开始计数,当计数结束后,OUT端输出一个宽度等于一个时钟周期的负脉冲。

(6)方式5:硬件触发选通

当GATE上沿启动计数器,OUT一直保持高电平;计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。

4.3.2 8253计数器应用实验内容(1) 1.实验内容

本实验原理如图3-10所示,8253A的A0、A1,故8253A有四个端口地址,端口地址如表3-2所示。8253A的片选地址为40H~4FH 。因此,本实验仪中的8253A四个端口地址为40H、41H、42H、43H,分别对应通道0,通道1,通道2和控制字。采用8253A通道0,工作方式3,输入时钟CLK0为250KHZ,输出OUTO要求为61HZ的方波,用示波器观察输出波形。

2.实验线路连接

(1)8253的GATE0接+5V 。

(2)8253的CLK0插孔接分频器74LS393(左上方)的T4插孔,分频器的频率源为4MHZ。 3. 实验程序 CODE SEGMENT

44

本文来源:https://www.bwwdw.com/article/b0lv.html

Top