单片机原理与应用实验讲义

单片机原理与应用实验讲义

第一部分 DVCC—52JH+单片机仿真系统

仿真器是一种计算机(单片机)应用系统的开发工具,也称为开发机,用户设计的系统(硬件和软件),在仿真器的控制下进行逐步调试以期达到设计要求。仿真系统提供编辑、汇编、反汇编、监控命令和高级语言编辑等工具帮助用户设计、调试和修改用户系统的硬件和软件。因此,熟悉仿真系统的使用与掌握微机或单片机原理具有同等重要性。

DVCC—52JH+单片机仿真系统主要用于MCS—51系列单片机的仿真开发。由于随机器附带的操作手册内容繁琐,特别是接口地址分配的不透明,给用户使用带来不便,为了使初学者能在较短时间内高效率地掌握开发系统主要功能及基本使用方法,第一部分有针对性地介绍DVC—52JH+的操作使用,这是完成第二部分实验必须先修的内容。

第一节键盘监控命令简介

一、键盘布局

每个键中央标注的文字是单片机仿真系统的控制命令表示,大部分键有两个功能或作用,如7

7R 键表示寄存器R7或数字7。整个键盘分为两大部分,左边的16个键是数字0~F 键或寄存器代码键;右边的16个键是功能键,功能键通常与数字键互相配合进行程序调试。

二、数据的显示

单片机仿真系统采用LED (发光二极管)七段显示器作数据显示,共有6个LED ,如图1所示,其中“·”用来显示小数点。左边的4个LED 一般用于显示程序存储器和数字存储器的地址,右边的2个LED 用来显示对应地址单位的内容。

%

图1:LED 显示器

1、程序存储器和片外数据存储器

用4位十六进数表示地址,占满了左边4个LED 。例如,输入102F ,左边4个LED 显示该数102F ,若再按MEM 键(表示程序存储器),右边2个LED 则显示程序存储器102FH 单元的内容;若输入102F 后再按ODRW (表示片外数据存储器),左边

2个LED 显示片外数存102FH 单元的内容。

2、片内数据存储器

有两种显示方式。

(1)R0~R7、

DPL 、DPH 、A 、B 、PSW 、PCH 、PCL 和SP 这16个寄存器键盘上已有,只需按该键一次,左边4个LED 显示一位对应的代码,右边2个LED 就能显示相应单元的内容。例如:按R7键,左边4个LED 的最高位显示7(表示R7),再按REG (表示片内数存),右边2个LED 显示R7单元的内容。

(2)片内其余的数据存储器用2个LED 显示地址。例如,输入24,再按REG 键,左

边4个LED只有2个LED亮,右边2个LED表示片内24H单元内容。

(3)、右边2个LED在显示时,总有一个LED是闪动的,它表示该数值是可以修改的。

三、单片机仿真系统的单板状态,仿真1态和仿真2态

单板状态、仿真1态和仿真2态——仿真系统虽然提供了64KB片外程序存储器和64KB 片外数据存储器,但并不是全部分配给用户(使用者)的。也就是说,用户能否使用这些存储器,取决于单片机的状态(对片内数据存储器,三种状态时用户都可用)。

~

如图2所示,框图给出了仿真系统在平板状态、仿真1态和仿真2态时用户可用已有存储器的分配情况。仿真系统通过指令发出控制命令,使FPGA器件输出a0、a1和a2控制信号。

a0有效则选择单板状态,用户可用系统已配置的片外数存和程存地址空间分别为0000H~FEFFH。

a1有效选择仿真1态,用户可用系统已配置的片外程存地址空间为0000H~FEFFH,但用户不能用系统已配置的片外数存,此时必须外接片外数存。

a2有效选择仿真2态,系统已配置的片外数存和程存用户均不能用,必须全部外接。

<

图2:三种状态的选择控制线

1、单板状态

上电或按RST键,仿真系统输出a0有效,单片机处于单板状态,LED显示P.。单板状态时,系统已配置了片外程存和数存,用户(使用者)可使用这些资源,它们的地址分配如下:

片外程序存储器:0000H~FEFFH范围用户可用。

片外数据存储器:0000H~FEFFH范围用户可用。

2、仿真1态

LED显示P.后再按F2键仿真系统输出a1有效,单片机处于仿真1态,LED显示P.……。仿真1态时,用户只能使用系统已配置的片外程序存储器,地址范围0000H~FEFFH;已配置的片外数据存储品用户不能用,因此,在仿真1态,用户要用片外数据存储器必须另外外接,外接的数据存储器和其它接口可用3—8译码器y0~y7的8个译码输出作片送信号,它们对应的地址为:

/

Y0=8000H~8FFFH,Y1=9000H~9FFFH,Y2=A000H~AFFFH

Y3=B000H~BFFFH,Y4=C000H~CFFFH,Y5=D000H~DFFFH

Y6=E000H~EFFFH,Y7=F000H~FFFFH。

3、仿真2态

LED显示P.后再按F1键,仿真系统输出a2有效,单片机处于仿真2态,LED显示H.……,仿真2态时,系统配置的片外数据存储器和程序存储器,用户均不能用。因此,仿真2态需用的程存和数据,全部由用户外接(0000H~FEFFH)。仿真2态主要用于用户设计的硬件仿真,第二部分的实验不用仿真2态。

4、单板状态和仿真1态的主要作用

单板状态系统已配置的片外程存和数存(包括8155、8255)已占用了全部64KB地址空间,已无地址分配给外部接口芯片。因此,需要分配地址的外部接口电路不能在单板状态下应用。

仿真1态用户只能用系统已配置的0000H~FEFFH片外程序存储器,不能用已配置的片外数据存储器。如果用户需要用片外数据存储器就必须外接。仿真1态时,系统已提供了部分接口芯片或插座,并通过3—8译码器给出了Y0~Y7共8个片送选信号,用户使用这些接口芯片时,用线连接相应的引脚即可。例如,用户要扩展片外数据存储器,先在V28插座上6264芯片(见图3),细线表示系统已连接了,粗线表示需要用户连接的线,A0~A12和D0~D7用2块排线连接,XRD、XWR、+5V和Y0用单根线连接。由于Y0=8000H~8FFFH,只能提供4KB地址空间,所以只能得到8000H~8FFFH的4KB片外数存(尽管6264有8KB,但也只能用4KB)。

<

图3

5、8155键盘显示接口的使用

仿真系统的三种状态所用程序存储器地址范围都只能是0000H~FEFFH,FF00H~FFFFH 单元是系统自用的。所用片外数据存储器地址也只能是0000H~FEFFH单元,FF00H~FFFFH单元供8155键盘显示和8255接口用,它们的接口地址分配如下:

[

8155键盘显示接口地址——8155控制口=FF20H,8155A口字位=FF21H,8155B口(字形)=FF22H,8155C口(键盘扫描)=FF23H。

8255并行接口地址——8255控制口=FF2BH,8255A口=FF28H,8255B口=FF29H,8255C 口=FF2AH。

8155是键盘扫描和显示(LED)的接口芯片,它与键盘及LED显示器的连接如图4所示。使用8155时(本系统只用8155作键盘扫描和LED显示),第一条指令为SETB 0D4H,即设置RS1RS0=10,选用第2组工作寄存器R0~R7。

}

图4

8155使用方法:

\

(1)SETB 0D4H后,向控制口(即命令状态寄存器)FF20H写入控制字MOV A,#00000011B;A、B口为输出,C口为输入方式。

(2)由图4可知,A口既作为LED字位的输出控制,又作为键盘扫描的输出控制。

A口作字位输出控制时,PA5=1控制最左边位LED,PA0=1控制最右边位LED。

A口作键扫输出时,PA7~PA0每次有一位输出0,其余7位输1,PC0~PC5作输出,当有键按下时(如B键按下),则PA0=0时,PC0=0,从而确定为B键按下。

(3)B口作LED字形输出控制,B口的PB7~PB0与LED引脚的对应关系如表1所示,图5是LED管脚示意图,由图5和表1可知,B口(PB7~PB0)输出数据与LED显示字符的对应关系如表2所示。

表1

PB口PB7PB6PB5-PB3PB2PB1PB0PB12

-

图5. LED 管脚

(5)C 口作键扫输入,只用PC0~PC5。

四、各键功能与用法

下面以单板状态为例说明各键功能与用法。如果是仿真1态,按RST 键后再按F2,LED 显示P ……后各键操作即与单板状态相同。

1、复位键—RST :黄色小键(不在键盘区)。任何情况下按RST 键,单片机均处于单板状态,单板状态的标志是LED 显示P 0字符。

2、返回待命状态键—MON :大部分情况下,按MON 键将返回待命状态(等待按键执行命令的状态),LED 显示P 。如果按MON 键LED 不显示P ,则需按RST 键。

3、程序存储器读写命令——MEM 键:MEM 键作用是显示和修改指定程序存储器单元的内容。

用法举例:将下面程序的操作码装入起始地址为1000H 单地的程序存储器。

PB4

LED 引脚 5 10 9 * 1

2 4 6 7 LED ( 表2

B 口输出 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H ? 80H 90H LED 显示 0 1 2 3 4 5

\

6 7 8 9 B 口输出 88H 83H 0C6H 0A1H 。 86H 8EH 0FFH 0CH 89H 0DEH 7FH LED 显示 A b

·

c d E F 全熄 P · H Γ ·

程存地址操作码程序

.

ORG 1000H

1000H:7401 MOV A,#01H

1002H:2403 MOV A,#03H

操作方法:先按RST键(显示P.;如果已显示P.,则不必按RST键)→连续按4位数字键1000(左边4个LED显示1000)→按MEM键(后边2个LED有一位会闪动,按任意数字键会将该数字填入闪动的这一位)→按数字74→按NEXT键(左边4个LED显示下一个单元地址1001)→按数字键01→按NEXT键→按数字键24→按NEXT→按数字键03。

注:每按一次NEXT键,存储器地址自动加1;每按一次LAST键,存储器地址减1。输入完后按RST键结束本次操作。

4、片内数据存储器读写——REG键:显示和修改片内数存指定单元的内容。

操作方法:按RST键(显示P0后)→连续按2位数字键(片内数存只有2位十六进制编址)→(与MEM类同)。

片内特殊功能寄存器对应地址如下表:

如果特殊功能寄存器在键盘上已存在,则只需按该键即可代表它的地址。如R7,按R7→再按REG就能显示R7的内容。

5、片外数据存储器读写命令——ODRW键:显示和修改指令片外数存单元的内容。

使用方法与MEM键相同。

6、断点运行键——FVBP键

断点运行:程序运行到设置断点的这条指令时自动停止。

设置断点操作:按RST键→输入某条指令所在地址→按F1键。

设置断点后,再输入程序首地址——按FVBP则执行断点运行。断点运行给调试某一段程序提供了方便。

7、连续运行——EXEC键

操作方法:按RST→输入程序首地址→按EXEC键,程序连续运行直至结束。

8、单步运行——STEP键

单步运行:按RST键,输入程序首地址,每按一次STEP键,程序就执行一条指令(语句)。如果是调用子程序语句,则按一次STEP键将子程序全部执行完。

如果按STEP键达1秒钟以上,则以每分钟500条指令的速度执行程序,左边4个LED 显示执行地址,右边2个LED显示A的内容,松开STEP则停止执行程序。

/

9、偏移量计算键——OFST键

用法举例:计算下面程序偏移量rel。

程存地址操作码程序

1051H:7401 ST:A,#01H

1053H:80rel SJMP ST

偏移量rel存在程序存储器1054H单元中,求rel操作方法:

RST→1054→MEM→输入ST低8位即51→按OFST(右边2个LED显示的数就是rel 值)。

10、删除键DEL和插入键INS。

DEL操作方法:按RST→输入要删除指令所在地址→按MEM键→按DEL,该字节被删除,若连续删除下一个字节,再按DEL键即可。

INS键操作方法:按RST→输入要插入指令所在地址→按MEN键→按INS,该字节被插入。若连续插入下一个字节,再按INS键即可。

%

11、联机键——PCDBG键:将单片机与PC机联机调试程序时,先将联机线接好,再按PCDBG 键,单片机准备与PC机建立联机关系。

12、程序块移动比较等操作方法如下表。

第二节联机软件使用简介

单片机仿真系统提供的联软件是在WINDOWS9X/NT界面上运行的综合调试软件,主要功能是将汇编程序翻译成操作码并装入单片机的程序存储器,运行程序可以单机运行,也可以联机运行。

单机运行:PC机将翻译完的操作码装入单片机指定程序存储器单元后,按RST键断开联机,再按照第一节方法运行程序。

&

联机运行:PC机装入操作码到单片机后,由PC机监控程序的运行。

一、联机软件菜单及功能

注释:宏单步(TaceOut)——单步执行一条语句,遇子程序调用到跳过子程序。

单步(TaceIn)——单步执行一条语句,遇子程调用则步入子程序。

二、主要菜单功能简介

1、单片机与PC机联机

DVCC系统的菜单功能一部分需将单片机与PC机联机后才能实现。

联机操作:先按单片机上“PCDBG键”,PC机上则点击“动态调试”菜单,再点击“联接DVCC系统”。

2、文件菜单

实现汇编程序的编辑和修改,存盘后文件扩展名.asm。

3、编译菜单

将汇编程序翻译为操作码,编译菜单有3种选择:

①编译:只生成扩展名为.OBJ的中间文件,不能装载到单片机程序存储器。程序编译后同时生成.LST列表文件(操作码与程序指令同时列出)。

②编译连接:编译并连接当前文件,生成.ABS文件和.HEX文件,可装入单片机。

③编译连接传送:生成.ABS文件或.HEX文件并装载到单片机程序存储器。

4、动态调试菜单

运行“编译连接传送”后的程序。

5、窗口菜单

窗口菜单的反汇编命令能将操作码翻译为汇编程序。

第二部分单片机实验

·

实验一单机程序调试

一、实验目的

熟悉和掌握DVCC—52JH/JH+单片机仿真系统的使用及程序调试方法。

二、实验仪器

DVCC—52JH/JH+实验箱

三、实验原理

单机情况下,单片机仿真系统的监控管理程序监控各键的动作,因此,通过各功能键能实现程序操作码装入程序存储器(MEM键),显示和修改片内数据存储器(REG键),显示和修改片外数据存储器(ORW键),单步和连续运行及调试程序等。

四、实验内容

以下实验仿真系统处于单板状态。

"

(一)、将下面程序装入程序存储器。

程存地址操作码序号程序

1000H 1 ORG 1000H

2SETB RS1

3SETB RS0

4 MOV A,#05H

5 ADD A,#04H

6MOV 50H,A

7MOV R0,A

8 ADD A,#01H

-

9 MOV R7,A

10 RL A

11 MOV DPTR,#1000H

12MOVX @DPTR,A

13CLR RS1

14CLR RS0

15 RET

1、查表给出每条指令的操作码和对应的存储器单元地址;

2、装入操作码,给出主要操作步骤:

3、单步运行程序,写出操作步骤:

4、连续运行程序,写出操作步骤:

5、检查运行结果

A=< >,操作步骤:

(1000H)=< >,操作步骤:

R7=< >,操作步骤:

(50H)=< >,操作步骤:

R0=< >,操作步骤:

C=< >,操作步骤:

6、在第6条语句处设置断点,然后运行程序操作步骤:

7、删除第8条语句,操作步骤:

`

8、插入第8条语句,操作步骤:

(二)、将下面程序操作码装入程序存储器

程存地址操作码序号程序

1 ORG 1050H

1050H 2 MOV R4,#04H

3 MOV A,#03H

4 LOOP:RL A

5 DEC R4

6 CJNE R4,#OOH,LOOP

7 RET

·

装入操作码,写出求偏移量rel步骤,rel=< >。

五、思考题

什么是单步运行有什么作用

实验二联机程序调试

一、实验目的

掌握联机软件使用,进一步熟悉仿真系统程序调试方法。

二、实验仪器

DVCC—52JH+仿真实验箱,PC机和DVCC软件。

三、实验原理

利用DVCC软件功能实现汇编程序的编辑,编译连接传送和运行调试。

四、实验内容

下面程序中,源RAM区首址在(R2、R3)中,目的RAM首址在(R4、R5)中,字节个数存在(R6、R7)中,将源RAM区数据送到目的RAM区。

1 ORG 0090H

2MOV R2,#10H

3MOV R3,#00H

4MOV R4,#40H

5MOV R5,#00H

6MOV R6,#10H

7<

8MOV R7,#00H

8 DMVE:MOV SP,#70H ;设栈指针

9 MOV DPL,R3

11 MOV DPH,R2

12 MOVX A,@DPTR ;取源操作数

14 MOV DPH,R4

15 MOVX @DPTR,A ;存入目的地址中

16 CJNE R3,#0FFH,DMVE1

17 INC R2

18 DMVE1:INC R3 ;源地址加1

19 CJNE R5,#OFFH,DMVE2

20 INC R4

21 DMVE2:INC R5 ;目的地址加1

22 CJNE R7,#00H,DMVE5

23 CJNE R6,#00H,DMVE6 ;未传送完成字节数减1

24 MOV R0,7EH

25 MOV A,#0FFH ;关显示器的1-5位

26 MOV R4,#06H

27 DMVE3:MOV @R0,A

)

28 DEC R0

29 DJNZ R4,DMVE3

30 MOV 7EH,#8CH ;最后一位显示P

31 DMVE4:LCALL DISPD

32 SJMP DMVE4 ;循环调显示子程序

33 DMVE5:DEC R7

34 SJMP DMVE

35 DMVE6:DEC R7

36 DEC R6

37 SJMP DMVE ;未完继续

(

38 DISPD:SETB 0D4H ;显示子程序

39 MOV R1,#7EH

41 MOV R3,#00H

42 DISPD1:MOV DPTR,#0FF21H ;从右至左第一位点亮

43 MOV A,R2

44 MOVX @DPTR,A ;显示位码送字位口

45 MOV A,@R1

46 MOV DPTR,#0FF22H

47 MOVX @DPTR,A ;显示段码送字形口&

48 MOV R0,#99H

49 DISPD2:DJNZ R3,DISPD2 ;延时

50DEC R0

51CJNE R0,#00H,DISPD2

52MOV A,#0FFH

53MOVX @DPTR,A

54 CLR C

55 MOV A,R2 ;未到最后一位继续

56 RRC A

57 MOV R2,A

:

58 DJNZ DISPD1

59 MOV A,#0FFH ;关显示

60 MOV DPTR,#0FF22H

61 MOVX @DPTR,A

62 CLR 0D4H ;返回

63 RET

64 END

五、实验步骤

1、调试运行该程序

2、运行该程序时显示器(LED)显示的内容是什么

3、修改程序,使其显示循环右移的8字符。

六、思考题

单步和宏单步有何不同

实验三I/O接口实验

P1口应用实验

一、实验目的

掌握P1口接口方法,进一步熟悉程序调试方法。

二、实验仪器

·

DVCC—52JH+仿真实验箱,PC机。

三、实验原理

1、实验接线图

2、实验原理

以为输入信号端,当K1每拨动一次(输入脉冲),L1~L8发光二极管按二进制方式点亮。74LS240是反相驱动器,JR1是电阻网络,+VCC已接+5V电源。

四、实验内容

调试运行如下程序,并通过灯的亮灭规律检测程序调试的正确性。

1 ORG 0540H

2 HAIS:MOV A,#00H

3 HAIS1:JB ,HAIS1 ;判为低电平否

4 MOV R2,#10H

5 LCALL DELAY ;调延时子程序

6 JB ,HAIS1 ;再判为低电平否

7 HAIS2:JNB ,HAIS2

8 MOV R2,#10H

9 LCALL DELAY

10 JNB ,HAIS2 ;判为高电平否

11 INC A ;加1

12 PUSH ACC

13CPL A ;取反后送P1显示

14 MOV P1,A

15 POP ACC

16 AJMP HAIS1 ;循环

17 DELAY:PUSH 02H ;延时子程序

18 DELAY1:PUSH 02H

19 DELAY2:PUSH 02H

20 DELAY3:DJNZ R2,DELAY3

21 POP 02H

22 DJNZ R2,DEL AY2

23 POP 02H

24 DJNZ R2,DEL AY1

-

25 POP 02H

26 DJNZ R2,DEL AY

27 RET

28 END

五、实验步骤

1、将接线图中粗线标注段用导线连接;

相关主题
相关文档
最新文档