SXL100B+实验指导.docx

上传人:b****4 文档编号:11726148 上传时间:2023-03-31 格式:DOCX 页数:186 大小:371.01KB
下载 相关 举报
SXL100B+实验指导.docx_第1页
第1页 / 共186页
SXL100B+实验指导.docx_第2页
第2页 / 共186页
SXL100B+实验指导.docx_第3页
第3页 / 共186页
SXL100B+实验指导.docx_第4页
第4页 / 共186页
SXL100B+实验指导.docx_第5页
第5页 / 共186页
点击查看更多>>
下载资源
资源描述

SXL100B+实验指导.docx

《SXL100B+实验指导.docx》由会员分享,可在线阅读,更多相关《SXL100B+实验指导.docx(186页珍藏版)》请在冰豆网上搜索。

SXL100B+实验指导.docx

SXL100B+实验指导

目录

第一章SXL-100B+型实验仪的组成及安装2

第二章总体结构及其使用3

第三章实验编程环境与有关操作19

第四章DOS平台实验27

实验一熟悉汇编和编译环境的实验—冒泡法27

实验二即插即用配置资源的获取实验35

实验三简单I/O端口实验44

实验四8255可编程并行接口实验

(一)-扫描式键盘54

实验五8255可编程并行接口实验

(二)—数码LED显示63

实验六8253定时器/计数器实验72

实验七D/A转换实验80

实验八A/D转换实验——查询方式87

实验九A/D转换实验——中断实验93

实验十16C550串行接口实验107

实验十一8255工作方式1实验117

实验十二温度测量实验122

实验十三步进电机实验131

实验十四直流电机实验138

实验十五可编程中断控制器8259实验150

实验十六主控DMA8237实验161

附录PCIBIOS函数说明173

附录PCI9052开发板使用说明175

附录引脚图176

第一章SXL-100B+型实验仪的组成及安装

SXL-100B+型32位微机原理及接口实验仪由实验扩展箱,连接电缆和PCI总线板卡组成。

安装步骤:

1.关闭PC微机电源。

2.打开PC微机机箱,将PCI总线板卡插入主机板上任一PCI总线扩展插槽中(白色),并将连接电缆接入扩展卡上的插座中锁定(注意缺口方向)。

3.开启PC机电源,在PC机刚完成BIOS要进入Windows时即PC机显示CPU类型、CPU时钟、内存大小、软驱类型时,应该可以看到在PCIdevicelisting......下,有如下显示有VendorID为10EB,DeviceID为8376的PCI板卡存在,若无则表明PCI板卡未插好,需要重新插入。

4.在第3步完成后,Windows9x完全启动并会出现一发现新设备,需要驱动程序的对话框。

5.选择搜索设备最新驱动程序,点下一步。

6.指定位置,并点击浏览按钮。

7.在此对话框中选择到光盘的如下目录:

\驱动程序\VXD\ISAVXD并选择文件mce(注另一目录MasterDMA是仅供给主控DMA使用)。

8.按向导指示直至安装完毕。

9.将40+26芯扁平电缆另一端接到实验箱的40+26芯座上。

(注意缺口方向)

10.将随机所带电源线插入实验箱的电源插头上。

11.安装完毕可以做实验了。

注意2~9的步骤仅是SXL-100B+第一次安装时要做,以后就不必处理。

第二章总体结构及其使用

一、PCI总线扩展卡

PCI板卡完成PCI至ISA接口即利用9052的ISA方式来模拟产生ISA信号。

二、连接电缆

普通的40+26芯扁平电缆,该电缆连接PCI总线扩展卡和扩展板,其两端插头可互相调换。

三、实验扩展板

SXL—100B+实验扩展板布局图如图所示

 

J32位输入输出

4片8255控制1个16×16的点阵

 

K数码显示电路及4×4键盘电路

 

地址分配电路图

H区H区

y0

00-0f

10-1f

20-2f

30-3f

80-8f

90-9f

a0-af

b0-bF

y7

四、板图分区说明

APCI板卡输出接口

BUSB&单片机扩展区6116读写电路

CDAC0832数模转换电路

C1ADC0809模数转换电路

D步进电机8MHZ信号发生器与分频器

D1直流电机

D2温度模块

E发光管控制译码电路8255电路

F八位逻辑电平输入

G138译码电路信号发生器与分频器

H8253计数器8259

IPC16C550串行通信实验

J32位输入输出,4片8255控制1个16×16的点阵,单脉冲发生电路

K8255数码显示电路及4×4键盘电路

五、接线柱说明

区号

圆柱编号

功能

 

K

 

K

J14-A

数码管的A段

J14-B

数码管的B段

J14-C

数码管的C段

J14-D

数码管的D段

J14-E

数码管的E段

J14-F

数码管的F段

J14-G

数码管的G段

J14-DP

数码管的DP段(小数点)

J37-LD8

数码管LD8的控制端

J37-LD7

数码管LD7的控制端

J37-LD6

数码管LD6的控制端

J37-LD5

数码管LD5的控制端

B

J20-A0

地址线ADD0

J20-A1

地址线ADD1

J20-A2

地址线ADD2

J20-A3

地址线ADD3

J20-A4

地址线ADD4

J20-A5

地址线ADD5

J20-A6

地址线ADD6

J20-A7

地址线ADD7

J22-D7

资料线D7

J22-D6

资料线D6

J22-D5

资料线D5

J23-D4

资料线D4

J23-D3

资料线D3

J23-D2

资料线D2

J23-D1

资料线D1

J23-D0

资料线D0

J21-A8

地址线ADD8

J21-A9

地址线ADD9

J21-A10

地址线ADD10

J21-A11

地址线ADD11

J21-A12

地址线ADD12

J21-A13

地址线ADD13

J21-A14

地址线ADD14

J21-A15

地址线ADD15

J19-IRQ

中断埠

A

J19-IOW

I/O写端

J19-IOR

I/O读端

J19-MEMW

内存写端

J19-MEMR

内存读端

J83

J82

电源+5V

J13

电源+12V

J12

电源-12V

J11

电源-5V

J7-4MHz

4MHz信号输出

G

J7-2MHz

2MHz信号输出

J7-1MHz

1MHz信号输出

J7-500KHz

500KHz信号输出

J7-250KHz

250KHz信号输出

J7-125KHz

125KHz信号输出

J7-62.5KHz

62.5KHz信号输出

J7-31.25KHz

31.25KHz信号输出

JP8

为ADC0809提供时钟信号的短路块

J2-Y0

地址0H

 

G

 

J2-Y1

地址10H

J2-Y2

地址20H

J2-Y3

地址30H

J2-Y4

地址80H

J2-Y5

地址90H

J2-Y6

地址0A0H

J2-Y7

地址0B0H

J15-IN_1

与K1个开关(从左边开始)相连

F

J15-IN_2

与K2开关相连

J15-IN_3

与K3开关相连

J15-IN_4

与K4开关相连

J15-IN_5

与K5开关相连

J15-IN_6

与K6开关相连

J15-IN_7

与K7开关相连

J15-IN_8

与K8开关相连

J48-PB0

8255的B口0

K

J48-PB1

8255的B口1

J48-PB2

8255的B口2

J48-PB3

8255的B口3

J48-PB4

8255的B口4

J48-PB5

8255的B口5

J48-PB6

8255的B口6

J48-PB7

8255的B口7

J50PA0

8255的A口0

J50PA1

8255的A口1

J50PA2

8255的A口2

J50PA3

8255的A口3

J50PA4

8255的A口4

J50PA5

8255的A口5

J50PA6

8255的A口6

J50PA7

8255的A口7

J49PC0

8255的C口0

J49PC1

8255的C口1

J49PC2

8255的C口2

J49PC3

8255的C口3

J49PC4

8255的C口4

J49PC5

8255的C口5

J49PC6

8255的C口6

J49PC7

8255的C口7

J478255CS

8255的片选端

J65IN0

模拟量输入,第0信道

C1

J65IN1

模拟量输入,第1信道

J65IN2

模拟量输入,第2信道

J65IN3

模拟量输入,第3信道

J65IN4

模拟量输入,第4信道

J65IN5

模拟量输入,第5信道

J65IN6

模拟量输入,第6信道

J65IN7

模拟量输入,第7信道

J70EOC

ADC0809的EOC端(EOC为转换完成)

J69SIGNAL_IN

模拟量输入

J670809CS

ADC0809的片选端

J770832CS

DAC0832的片选

C

J76Xfer

控制DAC0832的Xfer端

J72OUT

DAC0832的输出

J78WW

停止DAC0832工作的控制端(为Windows9x下特有)

J53-OUT0

第1个计数器输出

H

J53-GATE0

第1个计数器控制端

J53-OCLK0

第1个计数器输入

J53-OUT1

第2个计数器输出

J53-GATE1

第2个计数器控制端

J53-CLK1

第2个计数器输入端

J53-OUT2

第3个计数器输出

J53-GATE2

第3个计数器控制端

J53-CLK2

第3个计数器输入端

H

J238253CS

8253的CS端

JP17

8253的地址连接短路块

J29-L1

键盘第1行

K

J29-L2

键盘第2行

J29-L3

键盘第3行

J29-L4

键盘第4行

J29-R1

键盘第1列

J29-R2

键盘第2列

J29-R3

键盘第3列

J29-R4

键盘第4列

JPC0-JPC7

8255与键盘的缺省连接

JPM0

RAM6116的第8脚地址线ADD0

B

JPM1

RAM6116的第7脚地址线ADD1

JPM2

RAM6116的第6脚地址线ADD2

JPM3

RAM6116的第5脚地址线ADD3

JPM4

RAM6116的第4脚地址线ADD4

JPM5

RAM6116的第3脚地址线ADD5

JPM6

RAM6116的第2脚地址线ADD6

JPM7

RAM6116的第1脚地址线ADD7

JPM8

RAM6116的第28脚地址线ADD8

JPM9

RAM6116的第22脚地址线ADD9

JPM10

RAM6116的第19脚地址线ADD10

JP64

74LS688的14脚Q0端

JP63

74LS688的15脚Q1端

JP62

74LS688的12脚Q2端

JP61

74LS688的11脚Q3端

JP60

地址信号ADD15

J34-Q

74S74的5脚Q

B

J34-/Q

74S74的6脚/Q

J1016C550_INT

J10与16C550的30脚INTR端相连

I

J4216C550CS

与16C550的14脚CS2相连

SoftICE的使用及基本I/O程序的调试

(一)SoftICE简介

由于VxD是典型的系统程序,工作在ring0层,不能用MicrosoftVisualC++或BorlandC++/C++Builder的调试器来调试,因为它们是用于调试ring3层应用程序的。

目前,针对ring0层程序的系统级调试工具主要有两种,一种是Microsoft公司的WDEB386,另一种是NuMega公司的SoftICE。

WDEB386必须同时使用两台PC机才能工作,其中一台用于运行被调试程序,另一台用于观察WDEB386的输出,而且WDEB386仅能观察汇编代码,无法同时观察源程序。

SoftICE则没有这些限制,因此目前被广泛使用。

SoftICE运行于Windows和硬件之间,不依赖Windows中任何东西,所以它可以用于调试运行于ring0层的VxD甚至Windows操作系统本身。

因此,SoftICE是研究和调试虚拟驱动程序的有力工具。

当然,SoftICE同样也可用于调试各种ring3层应用程序。

SoftICE与普通调试器不同,你不必在Windows内装入SoftICE(当然您系统中必须安装了SoftICE),你也不必非用它调试一段程序不可。

SoftICE装在Windows底层下,并且总是存在的。

除非你用它的热键(Ctrl-D)引出它的工作界面,否则Soft_ICE会静静地藏在Windows底层下面。

(二)SoftICE的安装

一般SoftICE要先于VTOOLSD安装,并且应在VTOOLSD安装完后将VTOOLD光盘中的library目录中所有数据手工拷贝在一目录中,以便供SoftICE使用。

在安装SoftICE过程中,一定要对显卡的参数(即显卡厂商及型号)进行正确的设置,否则SoftICE的界面可能无法正确显示。

设置完成后,一定要使用显卡选择对话框上的Test按钮测试SoftICE能否在该设置下正确工作,如图4-1所示。

若在显卡选择对话框中没有所使用的显卡的型号,则可以选择标准VGA显卡(StandardVGA)。

在SoftICE4.0以后的版本提供了一种新的显示驱动程序,即UniversalVideoDriver。

当使用这种显示模式时,SoftICE的输出不再是以全屏方式显示,而是在Windows桌面上开出一个窗口显示。

对于某些显卡(如RivaTNT/TNT2系列),必须使用UniversalVideoDriver才能正常工作。

图4-1显卡选择对话框

(三)SoftICE的用户界面

由于SoftICE运行于硬件和Windows之间,SoftICE的用户界面与Windows操作系统相互独立。

当按下其激活热键Ctrl-D后,Windows桌面隐藏,SoftICE弹出.如果使用的是UniversalVideoDriver,则SoftICE以窗口的形式弹出,不会完全遮住Windows桌面。

SoftICE的用户界面由若干窗口组成,每个窗口可根据需要显示或隐藏。

下表是各窗口的用途:

窗口

用途

命令窗口

输入命令,显示信息

代码窗口

显示汇编代码或源程序

局部窗口

显示当前的StackFrame

监视窗口

可用WATCH向该窗口中加入需要监视的变量

寄存器窗口

显示各寄存器的当前值

数据窗口

显示存储器的当前值

调用栈窗口

显示调用栈

PIII寄存器窗口

显示PentiumIII寄存器的值

FPU堆栈窗口

显示FPU(FloatingPointUnit)的堆栈状态

(四)SoftICE常用命令

1.激活SoftICE:

热键Ctrl-D

2.使用联机帮助:

HELP或?

3.基本调试命令

命令

用途

格式

A

使用SoftICE内建的汇编程序直接输入标准的Intel80x86汇编指令

A[起始地址]

U

从指定地址开始反汇编

U[起始地址[L长度]]

U[(过程或函数)符号名]

G

执行

G[=起始地址][终止地址]

T

单步执行

T[=起始地址][步数]

4.窗口管理

SoftICE提供了以下命令用于显示或隐藏特定的窗口

命令

用途

格式

WC

显示/隐藏代码窗口

WC

WD

显示/隐藏数据窗口

WD

WF

显示/隐藏FPU堆栈窗口

WF

WR

显示/隐藏寄存器窗

WR

WW

显示/隐藏监视窗口

WW

WS

显示/隐藏调用栈窗口

WS

WX

显示/隐藏PentiumIII寄存器窗口

WX

5.断点管理

调试程序的基本手段之一是在程序中设置若干断点,当程序执行发生某些事件时便会触发这些断点,程序暂停执行.此时程序员可根据需要察看有关信息,如变量的值、通用寄存器及状态寄存器的值,并据此判断程序是否正确运行或推测错误发生的原因。

断点设置得当,将使程序调试工作事半功倍。

为此,SoftICE提供了强大的断点管理功能,如设置断点、清除断点、使断点暂时失效及重新激活断点等等。

在SoftICE中,断点被分为五类,对应程序执行中可能发生的各种事件:

●执行断点:

当程序执行到某一地址(指令)时触发;

●内存访问断点:

当程序访问某一内存区域时触发;

●中断断点:

当发生某一中断时触发;

●I/O断点:

当发生对某一I/O端口的读写操作时触发;

●窗口消息断点:

当窗口收到某些消息时触发;

以下是SoftICE中常用的断点命令:

命令

用途

格式

BC

清除断点

BC断点列表|*

BD

使断点暂时失效

BD断点列表|*

BE

使断点有效(激活断点)

BE断点列表|*

BL

列出所有断点

BL

BH

恢复上次使用SoftICE时设置的断点

BH

BPX

设置断点,通过程序执行触发

BPX[地址]:

当执行到指定地址时暂停;

BPX[IF布尔表达式]:

当布尔表达式为TRUE时暂停

BPR

设置断点,当对指定范围的内存执行特定操作时触发

BPR起始地址结束地址[动作][c=次数]

动作:

R(读),W(写),RW(读写)

BPRW

设置断点,当对指定模块的内存区域执行特定操作时触发

BPRW模块名|段选择器[动作]

动作:

R(读),W(写),RW(读写)

BPIO

设置断点,当在指定I/O端口执行特定操作时触发

BPIO端口[动作]

动作:

R(读),W(写),RW(读写)

BPINT

设置断点,当发生指定的中断时触发

BPINT中断号

BMSG

设置断点,当指定窗口收到特定消息时触发

BMSGhWnd[起始消息[结束消息]]

6.输入/输出

在SoftICE中可直接通过命令对I/O端口进行读写,并且可指定数据的宽度(字节/字/双字):

命令

用途

格式

I

从port所指定的端口输入数据

IBport(字节)

IWport(字)

IDport(双字)

O

向port所指定的端口输出数据value

OBportvalue(字节)

OWportvalue(字)

ODportvalue(双字)

7.显示/修改信息

SoftICE提供了多种命令,用于显示/修改/复制内存中的数据,以及显示Windows中各种系统信息,如所有窗口、模块、进程、线程、VxD及其它对象的信息。

这些信息对了解系统运行情况及程序的调试有着非常重要的作用。

以下是常用的命令:

D

显示内存数据

DB[起始地址[L长度]]

DW[起始地址[L长度]]

DD[起始地址[L长度]]

E

修改内存数据

EB[起始地址[数据列表]]

EW[起始地址[数据列表]]

ED[起始地址[数据列表]]

M

内存数据块传送

M源地址L长度(字节)目的地址

S

在内存中查找二进制数据或字符串

S[-cu][源地址L长度待查找数据(串)],c区分大小写,u表示查找Unicode串

R

修改寄存器的值

R[-d|寄存器|寄存器[=]值]

PCI

显示PCI设备的配置信息

PCI

VxD

显示指定VxD的信息

VxD[VxD名字|通配符]

TIMER

显示Timer信息

TIMER[Timer地址]

MOD

显示指定模块的信息

MOD[-u|-s]|[模块名称|通配符]

HWND

显示指定窗口的信息

HWND[窗口句柄|[[层数l][进程名]]

8.表达式的使用

在SoftICE的命令窗口中,可以随时根据需要计算各种表达式的值。

表达式的语法与C语言表达式类似,此处不再赘述。

(五)SoftICE符号装入器

用户用SoftICE调试软件前,必须先用SoftICE的符号生成程序NMSYM产生VxD的符号文件(.NMS)供SoftICE使用。

符号文件建立了VxD源程序中各种符号(变量名、函数名等)和VxD的二进制机器(汇编)指令间的关系。

这样在SoftICE中不仅可看到编译后的VxD机器(汇编)代码,还可看到每段机器(汇编)代码对应的源程序,如此非常有利于程序的调试工作。

当编译好VxD后,先使用SoftICE的SymbolLoader程序生成VxD的符号文件,然后再用SymbolLoader程序将该符号文件调入。

以下是使用SymbolLoader的具体步骤:

(1)

运行SoftICE的symbolLoader程序。

如下图所示:

(2)单击File菜单中OpenModule菜单项,选取要调试的VxD文件;

(3)单击Module菜单下的Settings菜单项,弹出Settings对话框,如下图所示:

在General页中输入源文件路径,在Debugging页中选择“Loadsymbolinformationonly”选项,在Translation页中选择“Symbolsandsourcecode”选项并复选“Packagesourcewithsymboltable”,然后单击“OK”退出Settings对话框;

(4)单击Module菜单中的Translate菜单项,开始产生符号文件;

(5)单击Module菜单中的Load菜单项,加载符号文件;

(6)若希望每次SoftICE启动时都调入该符号文件,可点击Edit菜单中的SoftICEInitializationSetting菜单项,打开SoftICE的初始化设置对话框,如下图所示:

 

然后在初始化设置对话框中的Symbols页中加入该符号文件的路径名即可。

(六)使用SoftICE调试VxD

使用SoftICE调试VxD之前,首先用SymbolLoader装入相应的符号文件。

若符号文件未生成,可用NMSYM程序或SymbolLoader从VxD生成。

然后,通过设置断点、单步执行以及设置监视变量等手段,便可对VxD进行调试了。

从Windoww9x进入SoftICE/W的工作环境。

如下所示:

窗口一

0028:

C0002841XCHGAX,[EBP+24]

0028:

C0002845ROREAX,10

0028:

C0002848XCHGAX,[EBP+28]

0028:

C000284CRORGAX,10窗口二

0030:

000000009E00560065047000-1600C40965047000

0030:

000000106504700054132000-90FFA00112345601

0030:

000000202032453478003344-80EED01113145689

0030:

000000301314517499244300-20BBC0223

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1