单片机原理与应用实验指导书
图1.18 EX51B仿真板
单片机常用信号接线座 启动方式按键 当仿真EX51B仿真板独立运行时,请短接这组五个跳线。 实验仪工作于仿真方式时,请短接此跳线。 实验仪工作于仿真方式时,接8051仿真线 1.2.2 伟福实验系统的调试方法
1、使用WAVE集成调试软件进行联机仿真。
2、不使用WAVE集成调试环境,利用系统机自带键盘和LED监视器进行仿真实验。
§1.3 板上仿真器使用方法
在无系统机的情况下,可以用实验仪上的键盘和LED显示器作为监控来进行仿真。插上相应的仿真板,开启电源,在 LED上出现 CPU的型号 ,如 8051、8096或8088 。表示系统已经可以开始工作了。 采用这种工作方式时,仿真仪上的键盘和LED显示器既可作为监控系统用,也可以作为用户资源.当仿真仪未运行用户时,键盘和LED 属于系统监控,用户用以输入程序,单步等,一旦运行时,显示器都作为用户资源。无系统机时,应先用汇编语言写好程序,用人工方法或者利用PC机把汇编语言翻成机器码,再用实验仪上的键盘将机器码输入,然后用Trace键,Here键,Step键进行调试,用Exec键使程序运行。
1.3.1 键盘使用说明
图1.19 EX51B仿真板键盘示意图
9
单片机原理与应用实验指导书
本实验仪共有 6 位LED发光数码管, 左边4位为地址位,右边2位为数据位。当地址位4位数均有数值时,表示地址是程序存储器的地址或数据存储器的地址。当地址数码管只有2位时(右边2位发光,左边2位暗),表示内部寄存器地址。当地址数码管只有3位时(最左面1位暗,第2位显示“0”,第3和4位是数字),表示是内部特殊寄存器(SFR)的地址。最右边的两位是数据位,它表示的是左边显示的地址单元中的数据。
面板上共有24个小键盘,为了介绍和使用时查找方便,约定用方括号表示按键,例如,[RST]表示面板上的“RST”键。
(1) [ RST ]键 [整机复位键]
整机复位键,复位后数码管的地址位显示“8051”字样(对于 MCS196 系列, 显示‘8096’,如果是8088仿真板则显示‘8088’),表示复位操作完成。复位后程序存储器和外部数据存储器中的内容不变,程序指针回到 0000处(8096系列为2080H、对于8088仿真板,初始地址为1000H)。CPU内部寄存器复位后为单片机复位操作规定的值,即有的寄存器的数据不变, 有的寄存器中的数据被复位。
(2) [ 0..F ]键 [数字输入键]
数字键,用于输入16进制数。仿真器中的数据和地址均是用16进制表示。 (3) [ MON ]键 [监控键]
表示某些操作已结束,某些操作的所有步骤完成后,按MON键表示操作结束。
(4) [ Trace ]键 [跟踪执行键]
在调试程序时先按[ MON ]键,最左侧一只LED数码管出现“P”字符,这时[ Trace ]档起作用,每按一次[ Trace ]便执行一条用户编写的单片机指令,如果遇到“CALL”这类调用命令时,跟踪到调用内部。执行一条指令,可逐条检查用户程序的执行情况。
(5) [ Step ]键 [单步执行键]
用户调试程序时每按一次[ Step ]键,执行一条命令。但是,当执行到调用语句时,按一次[ Step ]键将执行调用所含的所有语句,[ Step ]与[ Trace ]不同的是,[ Trace ]遇到调用语句将进入调用语句内部仍然一步一步地执行。
(6) [ Last ]键 [ 地址减1键] 它有2个作用:
1)触发显示寄存器和存储器中的数据
触发显示寄存器和存储器中的数据。刚在地址位上输入了寄存器或和存储器中的地址时,数据显示数码管是暗的未发光,此时,第一次按[ Last ]键,数据显示数码管开始显示数据。
2)地址减1操作
当在仿真器上输入地址后,在第二次以及之后的各次按键时,每按一次[ Last]键,地址值自动减1,地址值所对应的数据同时更换。
(7) [ Next ]键 [ 地址加1键] 它有2个作用:
1)触发显示寄存器和存储器中的数据
触发显示寄存器和存储器中的数据。刚在地址位上输入了寄存器或和存储器中的地址时,数据显示数码管是暗的未发光,此时,第一次按[ Next ]键后,数据显示数码管开始显示数据。
2)地址加1操作
当在仿真器上输入地址后,在第二次以及之后的各次按键时,每按一次[ Next ]键,地址值自动加1,地址值所对应的数据同时更换。
(8) [ Here ]键 [断点运行键] 设置中断程序运行的地址,使程序执行到中断地址处停止执行,在中断地址处等待新的操作命令(如RUN、STEP、TRACE等)。设置中断点时有两种情况:
10
单片机原理与应用实验指导书
1)程序从0000地址(80C196起始地址为2080H,8088/86的起始为1000H)执行到中断点 ①.按[ RST ]复位,再[ MON ]键,数码管显示“P”。 ②.输入4位地址。 ③.按[Here]
按Here后,程序自动执行到中断点,此时显示中断点的地址和A寄存器中的内容。按Here键一是确定中断地址,同时启动了程序,并使程序执行到中断点停下来等待用户的命令。
2)先使程序执行到某处,再设置中断点
①.先用单步(Step)、跟踪(Trace)、中断等运行方式使程序执行的某处停止。 ②.按“MON”键,使仿真器地址数码管显示“P”。 ③.输入中断的地址值 ④.按“Here”键
⑤.程序自动从设置前的停止处执行到所设的中断地址处。
(9) [Exec]键 [全速执行键]
用仿真器调试程序时,设置好执行的初始地址后,按[Exec]可自动执行程序。
1.3.2 脱机仿真
下面根据仿真时的各类需要,逐一介绍有关的操作方法。 1. 将汇编源程序转换为机器码
在仿真工作之前,应把汇编源程序转换为机器码。可用人工查手册的方法逐条翻译成机器码,在翻译成机器码的同时还要为各条机器码安排地址。也可用计算机自动汇编并生成列表文件,列表文件是指同时含有源程序、机器码和机器码地址的文件。用计算机生成机器码可避免人工翻译造成的人为错误,汇编的效率也远高于人工翻译。
2. 输入程序的机器码 3. 由计算机输入程序机器码
为了节省输入机器码的时间,可先由计算机向仿真器输入机器码,然后再脱离计算机独自仿真。用计算机输入程序时先启动仿真软件,调入用户的汇编源文件,选择仿真模式,执行汇编命令,汇编结束后机器码自动装入仿真器中。然后,关断计算机和仿真器的电源,拔出RS232接口插头。
4. 人工输入程序机器码
如果没有计算机时,则用人工方法输入。人工输入的方法是: ⑴.按[RST]键,整机复位。
⑵.按[MON]键,使地址数码管出现“P”字符。
⑶.输入4位地址码,此时地址位上显示的是输入的地址数,数据位上的数码管不亮。 ⑷. 先按[Next]或[Last]键,数据位上的数码管闪烁,此时,再输入2位数据。
⑸.程序输入完毕,可依次按[RST]、[MON]、4位地址数、[Next]键,检查输入的机器码,不断地按[Next]或[Last]键,可依次逐个检查各个地址中的数据,数据形式是16进制。
5. 执行程序 (1) 跟踪执行程序
当需要由用户通过键盘控制,逐条执行程序,以便检查单片机内部和外部电路时,可采用跟踪执行的方式。跟踪执行时如果遇到调用指令,仿真器将使程序的指针进入被调用的程序段内部。跟踪执行键 [Trace ],以跟踪方式执行程序的操作方法是:
⑴.按[RST]键整机复位。
⑵.按[MON]键使地址数码管出现字符“P”。
⑶.输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。 ⑷.按[Trace ]键,数据数码管亮,此后每按一次[Trace ]键,执行一条指令。
11
单片机原理与应用实验指导书
(2) 单步执行程序
单步执行程序的作用与跟踪执行相仿,区别是单步执行遇到调用时,将自动连续地执行调用内部的所有指令,然后停在调用执行后的第一条指令上,可继续单步执行。单步执行键[Step]的详细说明见第5.1.5条,以单步方式执行程序的操作方法是:
⑴.按[RST]键整机复位。
⑵.按[MON]键使地址数码管出现字符“P”。
⑶.输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。 ⑷.按[Step]键,数据数码管亮,此后每按一次[Step]键,执行一条指令。 (3) 全速执行程序
当需从用户指定的程序地址处开始全速运行整个程序,或全速运行到断点处时,可采用全速执行方式。
全速执行的操作方法是: ⑴.按[RST]键,整机复位。
⑵.按[MON]键使地址数码管出现字符“P”。
⑶.输入程序执行的起始地址,此时,4位地址数码管显示地址值,数据数码管暗。 ⑷.如果需要设置断点,可按上面介绍的[Here]命令。
⑸. 按[Exec]键,全速执行。程序运行时地址数码管数据数码管均暗。 (6).按[RST] 中断运行。 (4) 检查执行结果
当运用上述的各种执行方式运行程序时,需要及时地了解程序执行的结果,而运行结果很大程度上是由单片机内部各个部分的当前值来反映的。仿真器提供了查看单片机(由仿真器模仿)内部各个部分情况的功能,检查执行结果的主要任务就是查看单片机内部的情况。
检查单片机内部各个寄存器、累加器、接口电路的方法在下面讲述。 检查和修改单片机内部寄存器数据
在调试过程中,如果需要查看当前状态下内部寄存器的情况,可按下列步骤进行: ⑴.查出单片机内部寄存器地址码。如 R1 地址为 01H。
⑵.根据内部寄存器地址码输入2位地址码,此时地址数码管的右2位显示地址数,左2位暗。 ⑶.按[Next]或[Last]键,使数码位出现内部寄存器中的数值。
⑷.如果要查看相邻地址的寄存器的内容,可继续按[Next]或[Last]键。 ⑸.如果要修改内部寄存器中的内容,可按数字键[0]?[F]。 A 检查和修改8051单片机内部专用寄存器(SFR)数据
在调试过程中,如果需要查看当前状态下单片机内部专用寄存器(SFR)的情况,可按下列步骤进行:
⑴.查出单片机内部专用寄存器(SFR)地址码。如 ACC 地址为 E0H。
⑵.仿真器规定专用寄存器地址要用3位数表示,专用寄存器的地址是2位,需先输入一个先导“0”,再输入2位专用寄存器地址码。地址输入后,此时地址数码管的右3位显示地址数,最左1位暗。
⑶.按[Next]或[Last]键,使数码位出现专用寄存器中的数值。
⑷.如果要查看相邻地址的专用寄存器的内容,可继续按[Next]或[Last]键。 ⑸.如果要修改专用寄存器中的内容,可按数字键[0]?[F]。
注意:在查看专用寄存器时,不可按[RST]键,因为按此键后各个专用寄存器中的内容将被复位。 检查和修改单片机程序存储器和外部数据存储器 ⑴.按[MON]键,地址数码管出现“P”字样。
⑵.输入4位地址,此时4位地址数码管亮,2位数据数码管暗。
12
单片机原理与应用实验指导书
⑶.按[Next]或[Last]键,2位数据数码管亮,显示的即为4位地址单元中的机器码值, 如要修改则可按[0]?[F]键。
⑷.再按[Next]或[Last]键可查看相邻的地址中的机器码值。 寄存器序号表:(十六位寄存器分成两个八位显示) 寄存器 AL CL SPL SIL IPL CSL SSL
例如想观察堆栈指针SP的值,可以按以下步骤做: (1)按[MON]键,LED 显示“P”字样。
(2)按[0]..[F]键,输入两位SP低字节序号“08”。
(3)按[Next]键,LED地址区显示“SPL”,数据区显示的就是SP低八位值。 (4)按[Next]键,LED地址区显示“SPH”,数据区显示的为SP高八位值。
序号 寄存器 00H 04H 08H 0CH 10H 14H 18H AH CH SPH SIH IPH CSH SSH 序号 01H 05H 09H 0DH 11H 15H 19H 寄存器 BL DL BPL DIL FL DSL ESL 序号 02H 06H 0AH 0EH 12H 16H 1AH 寄存器 BH DH BPH DIH FH DSH ESH 序号 03H 07H 0BH 0FH 13H 17H 1BH
13