伟福仿真器入门

更新时间:2024-05-10 15:15:01 阅读量: 综合文库 文档下载

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

伟福仿真器简介

一. 仿真头介绍

POD8X5XP 仿真头

POD8X5XP 仿真头为POD8X5X 改进型。可配E2000 系列,E6000 系列,K51 系列仿真器,用于仿真MCS51 系列及兼容单片机,可仿真CPU 种类为8031/32, 8051/52, 875X, 89C5X,89CX051, 华邦的78E5X, LG 的97C51/52/1051/2051。配有40脚DIP 封装的转接座,可选配44 脚PLCC封装的转接座.选配2051转接座可仿真20 脚DIP封装的

89CX051CPU。当用户板功耗不大时,可以短接5V 电源输出跳线,由仿真器供电给用户板,一般情况下请不要短接此跳线。如果短接复位信号输出跳线,当用软件复位程序时,仿真头的复位脚会输出一个复位信号,以复位用户板的其它器件。注意:如果用户板有复位电路,请不要短接此跳线。

PODH8X5X / PODH591 仿真头

PODH8X5X运用PHILIPS授权的HOOKS技术,用PHILIPS芯片作为仿真芯片,来仿真各类与MCS51 兼容的MCU,仿真头的原有的P87C52可仿真通用的8X5X系列芯片,可以将P87C52 换成PHILIPS的P89C51Rx+或P89C51Rx2来仿真相应的MCU,也可以换成PHILIPS

1

的P89C66x 用于仿真PHILIPS 的P89C66x 系列MCU。因为P89C51RD2 和P89C66X 内部带有扩展RAM,可以借用P89C51RD2 或P89C66x 来仿真带扩展RAM 的CPU,例如Winbond的78E58B、78E516 等。

PODH8X5X 可以从外部引入仿真电源,来仿真2.7V~5.5V用户电压,当用户需要仿真低电压时,将“电源选择跳线”接成“外部电源接入”方式即可。仿真头的低电压由用户板提供。注意:当用户想仿真低电压时,仿真头上的仿真CPU必须能工作于低电压状态。(详见PODH8X5X 使用说明)

仿真器与PODH8X5X 仿真头连接图

二. 仿真器介绍

说明:

1. 仿真器使用9 针串行口,与PC 机用两头为孔的串行电缆连接。对于一些只有USB 口

2

而没有串口的计算机,可以使用USB转串口电缆将USB 转成串行口。

外形示意图

串行电缆内部连接

2. 根据仿真器型号不同,逻辑测试钩插座可能只有一个。 3. 根据仿真器型号不同,可能会没有20 芯仿真电缆插座。 4. 电源为直流5V/1A(最小),电源插孔的极性为内“正”外“负”。

K51L/K51T/K51S 51 系列专用型仿真器

3

Philips H51L/H51T/H51S 系列专用型仿真器

三、WINDOWS软件安装

1.将光盘放入光驱,光盘会自动运行,出现安装提示。 2.选择“安装WINDOWS”软件

3.按照安装程序的提示,输入相应内容。 4.继续安装,直至结束.

若光驱自动运行被关闭,用户可以打开光盘的\\ICESSOFT\\E2000W\\目录(文件夹),执行SETUP.EXE,按照安装程序的提示,输入相应的内容,直至结束。在安装过程中,如果用户没有指定安装目录,安装完成后,会在C:盘建立一个C:\\WAVE6000 目录(文件夹),结构如下:

四、编译器安装

4

伟福仿真系统已内嵌汇编编译器(伟福汇编器),同时留有第三方的编译器的接口,方便用户使用高级语言调试程序.编译器请用户自备. 安装51 系列CPU 的编译器

1.进入C:\\盘根目录,建立C:\\COMP51 子目录(文件夹)

2.将第三方的51 编译器复制到C:\\COMP51 子目录(文件夹)下. 3.在[ 主菜单| 仿真器| 仿真器设置| 语言] 对话框的 [编译器路径] 指定为C:\\COMP51 (参见仿真器设置)

??如果用户将第三方编译器安装在硬盘的其它位置,请在[编译器路径]指明其位置.例如:“C:\\KEIL\\C51\\”

五、开发环境

?

文件(F)

文件| 打开文件

打开用户程序,进行编辑。如果文件已经在项目中,可以在项目窗口中双击相应文件名打开文件.

文件| 保存文件

5

保存用户程序。用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘.

文件| 新建文件

建立一个新的用户程序, 在存盘的时候,系统会要求用户输入文件名. 文件| 另存为

将用户程序存成另外一个文件, 原来的文件内容不会改变 文件| 重新打开

在重新打开的下拉菜单中有最近打开过的文件及项目,选择相应的文件名或项目名就可以重新打开文件或项目。

仿真器设置包括仿真器类型,仿真头(POD)类型,CPU 类型,显示格式和产生的目标文件类型可以用以下几种方法设置仿真器.

o 在项目窗口中双击第一行,将打开仿真器设置窗口,对仿真器进行设置. o 按鼠标右键,在弹出菜单中选择[仿真器设置]. o 主菜单仿真器|仿真器设置.加入模块文件

o 按鼠标右键,在弹出菜单中选择[加入模块文件] o 主菜单项目|加入模块文件加入包含文件

o 按鼠标右键,在弹出菜单中选择[加入包含文件] o 主菜单项目|加入包含文件

用户可以将以前单文件方式仿真转为WINDOWS 下的项目方式进行仿真 1.主菜单文件|新建项目,在新建项目时,前一个项目自动关闭. 2.加入模块文件时,选择要调试的程序文件名,将文件加入项目. 3.将项目存盘.

4.编译,运行,调试项目 .

文件| 保存项目

将用户项目存盘。用户在编译项目时,自动存盘。注意:

当用项目仿真时,系统要求项目文件,模块文件,包含文件在同一个目录(文件夹)下. 文件| 新建项目

当用户开始新的任务时,应新建一个项目,在项目中,设置所用仿真器类型,POD类型,加入用户程序(模块)。 文件| 关闭项目

关闭当前项目,如果用户不想用项目方式调试单个程序,就要先关闭当前项目。 文件| 项目另存为

将项目换名存盘,此方法只是将项目用另一个名字,而不会将项目中的模块和包含文件换成另一个名字存盘.如果想将整个项目及模块存到另一个地方,请用复制项目方法. 文件| 复制项目

6

复制项目,用户可以将项目中的所有模块(用户程序)备份到另一个地方。在多模块项目中,用复制项目功能,可以避免用户因为少复制某些模块,而造成项目编译不能通过.方便用户对程序进行管理.

文件| 调入目标文件

装入用户已编译好目标文件。系统支持两种目标文件格式:BIN,HEX 格式

地址选择一般为缺省地址(由编译器定).如果想在当前项目已编译好的二进制代码中

插入一段其它代码,可以去掉”缺省地址”前的选择.然后填入开始插入的地址和结束地址。用调入目标文件的方法,可以调试已有的二进制代码程序.而不需要源程序. 直接调入目标文件进行仿真的方法是: 1.关闭项目。

2.在新建的项目中,设置仿真器类型,仿真头类型,CPU 类型. 3.调入目标文件.(不要用加入模块方式,而是直接调入文件)

4.打开CPU 窗口,在CPU 窗口中就可以看见目标文件反汇编生成的程序. 5.程序停在与CPU 相关的地址上(51 系列停在0000H处,96系列停在2080H) 6.这样就可以单步或全速调试程序了.

目标文件可以存成两种格式:

[二进制格式(BIN)]:由编译器生成的二进制文件,也就是程序的机器码

[英特尔格式(HEX)]:由英特尔定义的一种格式,用ASCII 码来存储编译器生成的二进制代码,这种格式包括地址,数据和校验

[地址选择]一般为[缺省地址(由编译器定)].如果想要存盘的目标文件是由“调入目标文件”方式装入,而不是由系统编译产生的代码,并已经修改,最好指定它的开

始地址和结束地址,因为代码不是编译系统产生的.系统不知道文件有多长,无 法指定开始和结束地址。自己指定地址的方法是: 去掉[缺省地址]前的选择勾. 然后填入开始插入的地址和结束地址。 文件| 反汇编

将可执行的代码反汇编成汇编语言程序。(详见伟福反汇编功能的使用方法) 文件| 打印

打印用户程序。 文件| 退出

退出系统,如果在退出以前有修改过的文件没有存盘,系统将会提示是否把文件存盘.

(2)编辑(E)

编辑| 撤消键入 取消上一次操作

7

编辑| 重复键入 恢复被取消的操作 编辑| 剪切

删除选定的正文,删除的内容被送到剪贴板上 编辑| 复制

将选定的内容,复制到剪贴板上 编辑| 粘帖

将剪贴板的内容插入光标位置 编辑| 全选

选定当前窗口所有内容。 ?(3)搜索(S)

搜索| 查找

在当前窗口中查找符号,字串。可以指定区分大小写方式,全字匹配方式,可以向上/向下查找。

搜索| 在文件中查找

可以在指定的一批文件中查找某个关键字。 搜索| 替换

在当前窗口查找相应文字,并替换成指定的文字,可以指定区分大小写方式和全字匹配方式查找,可以在指定处替换,也可以全部替换。 搜索| 查找下一个

查找文字符号下一次出现的地方 搜索| 项目中查找

在项目所有模块(文件)中查找符号,字串。在项目所包含的文比较多时,用此方法可以很方便地查到字串在什么地方出现。 搜索| 转到指定行

将光标转到程序的某一行。 搜索| 转到指定地址/标号

将光标转到指定地址或标号所在的位置。 搜索| 转到当前PC 所在行

将光标转到PC 所在的程序位置。 ?项目(P) 项目| 编译

编译当前窗口的程序。如有错误,系统将会指出错误所在的位置。 项目| 全部编译

全部编译项目中所有的模块(程序文件),包含文件。如有错误 系统会指出错误所在位置。 项目| 装入OMF 文件

8

建好项目后,无须编译,直接装入在其它环境中编译好的调试信息, 在伟福环境中调试。 项目| 加入模块文件

在当前项目中添加一个模块。 项目| 加入包含文件

在当前项目中添加一个包含文件 ?(4)执行(R)

执行| 全速执行 运行程序 执行| 跟踪

跟踪程序执行的每步,观察程序运行状态。 执行| 单步

单步执行程序,与跟踪不同的是,跟踪可以跟踪到函数或过程的内 部,而单步执行则不跟踪到程序内部。 执行| 执行到光标处

程序从当前PC 位置,全速执行到光标所在的行。如果光标所在行没 有可执行代码。则提示“这行没有代码” 执行| 暂停

暂停正在全速执行的程序。 执行| 复位

终止调试过程,程序将被复位。如果程序正在全速执行,则应先停止。 执行| 设置PC

将程序指针PC,设置到光标所在行。程序将从光标所在行开始执行。 执行| 自动单步跟踪/单步

模仿用户连续按F7 或F8 单步执行程序。 执行| 编辑观察项

观察变量或表达式的值,可以将需要检查和修改的值或表达式放到观察 窗口里以便检查和修改。(图:观察项对话框)

察内容,也就是按地址顺序显示变量值,与变量类型无关 [求值]: 对表达式求值,并按显示格式显示在窗口内. [加入观察]:将表达式加入观察窗口中,以便随时察看.

[编辑观察]:当修改过窗口内容后,按此键后,替代观察窗口中的原观察项,如果选择 [加入观察],则会在观察窗口中另加一个变量的观察项,以两种格式观察 一个变量.

[取消]: 关闭编辑观察项窗口

9

执行| 设置/取消断点

将光标所在行设为断点,如果该行原来已为断点,则取消该断点。所有断点通过断点窗口进行管理。

四种方法可以在光标处设置断点

1.将光标移到编辑窗口内,行左边的空白处,光标变成“手指圆”箭头,单击鼠标左键, 可以设置/取消断点.

2.使用Ctrl-F8 快捷键,可以在光标所在行设置/取消断点 3.右击鼠标, 弹出菜单,选择设置/取消断点,

4.主菜单执行/设置取消断点,也可以用Alt-R / B 菜单快捷设置取消断点

执行| 清除全部断点

清除程序中所有的断点。让程序全速执行 ?(5)窗口(W)

窗口| 刷新

刷新打开的所有窗口,及窗口里的数据。窗口| 项目窗口打开项目窗口,以便在项目中加入模块或包含文件。(图:项目窗口) 窗口| 信息窗口

显示系统编译输出的信息。如果程序有错,会以图标形式指出, 窗口| 观察窗口

项目编译正确后,可以在观察窗口中看到当前项目中的所有模块,及各模块中的所在过程和函数,及各个过程函数中的各个变量,结构。如果能充分利用观察窗口的强大功能,可以加快你开发速度。

窗口| CPU 窗口

反汇编窗口的弹出菜单

执行到光标处:使程序从当前PC 值,全速执行到光标所在行,用这种方法可以在调试程序时,跳过一些不必要的指令.将程序停到所要求的位置上.

转到指定地址/标号:将光标跳到某个地址或标号所在位置,以便察看相应的程序,或使用“执行到光标处”功能,也可以设置断点, ,将程序全速执行到相应位置.

转到当前PC所在行:将光标跳到PC所在行,由于在检查程序时,可能会将PC所在行移出当前窗口,用这种方法可找回PC 所在行.

取消/设置断点:在光标所在行,设置断点,使程序全速执行到此处.若此行已是断点,再次点击将取消该断点.

寄存器窗口的弹出菜单

10

加入观察: 将当前寄存器放入观察窗口,以方便随时察看.

修 改: 修改当前寄存器值.在程序执行时,可以用这种方法,把寄存器值改为你所指定的值,从而观察程序在此值时运行的结果.

窗口| 数据窗口

数据窗口根据选择的CPU 类型不同,名称有所不同。 51 系列有以下四种数据窗口

DATA 内部数据窗口 CODE 程序数据窗口

XDATA 外部数据窗口 PDATA 外部数据窗口(页方式) BIT 窗口

以51系列为例说明数据窗口的操作方法,其它CPU 类型的数据窗口基本相同

内部数据窗口

在内部数据窗口中可以看到CPU 内部的数据值,红色的为上一步执行过程中,改变过的值,窗口状态栏中为选中数据的地址,可以在选中的数据上直接修改数据的十六进制值,也可以用弹出菜单的修改功能,修改选中的数据值。 弹出菜单:

修改:修改选中数据的值,可以输入十进制,十六进制,二进制的值,与直接修改不同的是,用这种方法可以输入多种格式数据,而直接修改只能输入十六进制数据。46(十进制),2EH(十六进制),00101110B(二进制)都是有效的数据格式,

转到指定地址/标号:将数据地址直接转到指定的地址和标号所在的位置。

生成数据源码:将窗口中某段数据转换成源程序方式的数据,可以贴到你的源程中。 块操作:对窗口中的数据块进行填充、移动、写文件、读入等操作。

显示为:选择不同的数据类型显示数据内容,可以是字节方式(BYTE),也可以是字方式(WORD,两字节),可以是长整型(LONGINT,四字节),也可以是实数型(REAL,四字节)。这里是选择整个窗口的显示方式,如果想指定个别数据的显示方式,可以用主菜单[执行|编辑观察项]功能,选择所要选择的显示类型。(参见编辑观察项窗口) 显示列数:将窗口中数据以4 列、8 列、16 列方式显示。适应不同需要。

程序数据窗口显示的是编译后程序码,状态栏显示的是选中数据的地址,可以对在选中数据上直接修改程序数据的十六进制值,也可以对程序数据进行‘块填充’,‘块移动’操作,也可以读入一段二进制代码插入程序数据中,也可以将程序数据中的某段代码写文件中.

11

弹出菜单

修改:修改选中数据的值,可以输入十进制,十六进制,二进制的值,与直接修改不同的是,用这种方法可以输入多种格式数据,而直接修改只能输入十六进制数据。46(十进制),2EH(十六进制),00101110B(二进制)都是有效的数据格式.

生成数据源码:将窗口中某段数据转换成源程序方式的数据,可以贴到你的源程序中。 块操作: 对程序数据以块的方式进行操作.在窗口中按往左键拖动,可以选择块。 块填充:将选中的块内数据值,填充为指定值. 块移动:将选中的块移动到指定地址.

读文件:读入二进制代码文件,插入的指定的地址内.(参见‘调入目标文件’功能) 写文件:将程序数据指定地址的一段代码写入文件.(参见‘保存目标文件’功能) 显示为:选择不同的数据类型显示数据内容,可以是字节方式(BYTE),也可以是字方式(WORD,两字节),可以是长整型(LONGINT,四字节),也可以是实数型(REAL,四字节)。这里是选择整个窗口的显示方式.

窗口| 断点窗口

通过断点窗口可以管理项目内的断点。可以在断点窗口中直观地看到断点的行号,内容,可以通过断点迅速定位程序所在的位置。

窗口| 书签窗口

通过书签窗口可以管理项目内的书签,在项目中迅速定位程序位置。

窗口| 跟踪窗口

显示跟踪器捕捉到的程序执行的轨迹,其中可以看到帧号,时标,反汇编程序,对应的源程序和程序所在的文件名。

12

通过它,可以清楚地看到程序执行时,各端口输出的波形,迅速地帮助你找出硬件和软件中设计错误。

窗口| 工具条

通过工具条,可以打开/关闭菜单上的各功能的快捷按钮。

窗口| 排列窗口

对打开的程序窗口进行管理。可叠排、坚排、横排、最小化源程序窗口。

(6)外设(L)

外设| 端口

设置或观察当前端口的状态。 外设| 定时器/计数器0

定义或观察定时器/计数器0,通过定义定时器/计数器的工作方式,自动生成 相应的汇编/C 语言。可以“复制/粘贴”到你的程序中。

外设| 定时器/计数器1

定义或观察定时器/计数器1,通过定义定时器/计数器的工作方式,自动生成相应的汇编/C 语言。可以“复制/粘贴”到你的程序中。

13

外设| 定时器/计数器2

定义或观察定时器/计数器2,通过定义定时器/计数器的工作方式,自动生成相应的汇编/C语言。可以“复制/粘贴”到你的程序中。 外设| 串行口

定义或观察串行口的工作方式,可以观察串行口的工作方式是否正确,也可以定义串口的工作方式,自动生成串口初始化程序。(串口的波特率的时钟为仿

真器设置中“使用伟福软件模拟器”的晶体频率,见“仿真头设置”) 外设| 中断

管理或观察中断源,也可以辅助生成中断初始化程序。

(7)仿真器(O)

仿真器| 仿真器设置 语言设置

设置项目编译语言的路径,命令行选项。

[编译器路径]:指明本系统汇编器,编译器所在位置,系统缺省51 系列编译器在

C:\\COMP51\\文件夹下,缺省96系列编译器在C:\\COMP96\\文件夹下.本系统使用的编 译器为第三方软件,你应从其它途径获得.

[ASM 命令行]:若使用英特尔汇编器,则需要加上所需的命令行参数。若使用伟福汇编器,则需

14

要选择是否使用伟福预定义的符号.在伟福汇编器中已经把51/96 使用的一些常用符号,寄存器名定义为相应的值.如果你使用伟福汇编器,就可以直接使用这些符号.如果你自己已经定义了这些符号,又想使用伟福汇编器,就将“使用伟福预定 义符号”前面的选择去掉.

[C 命令行]: 项目中若有C 语言程序,系统进行编译时,使用此行参数对C程序进行编译. [PL/M 命令行]:项目中若有PL/M 语言程序,系统编译时,就使用此行参数对程序进行编译. [LINK 命令行]:系统对目标文件链接时,使用此参数链接.

注: 除非你对命令行参数非常了解,并且确实需要修改这些参数,一般情况下,不需 要修改系统给出的缺省参数.以免系统不能正常编译.

[编译器选择]: 选择使用伟福汇编器,还是英特尔汇编器,系统对C 语言程序和PL/M 语言编译是采用第三方编译器. 一般情况下,如果用户项目中都是汇编语言程序,没有C 语言和PL/M 语言,选择伟福汇编器. 如果用户项目中含有C 语言,PL/M 语言,或者汇编语言是用英特尔格式编写的,就选择英特尔汇编器. [缺省显示格式]:

指定观察变量显示的方式,一般为混合十/十六进制.

命令行的缺省如右图。右是HT-PICC 语言,C命令行的缺省如下图。 目标文件设置

[选择仿真头]: 框内为相应仿真器能支持的仿真头类型,选择所使用的仿真头. [选择CPU]: 框内为选择的仿真器和仿真头能等进行仿真支持的CPU.

[使用伟福软件模拟器]:使用伟福软件模拟器,可以在完全脱离硬件仿真器情况下,对软件进行模拟执行. 如果使用硬件仿真器,请不要选择使用伟福软件.

[晶体频率]: 在使用伟福软件模拟功能时, 用来计算在软件模拟环境下程序执行时间。在外设中串行口的波特率也是依据此频率计算出的。

[仿真头设置]: 可以设置该仿真头的特殊功能。包括仿真空间,看门狗,加密位等等. 仿真头(POD)类型不同,设置内容有所不同. (见仿真头设置)

如果按照以上方式,定义好后,系统已经将控制字写入2018H 及201AH(MC/MD)单元,即使用户在程序中自己定义控制字,系统并不采用,而是用此对话框设置为准,所以用户在仿真时和生成目标代码时,请用此对话框设置196系列的控制字. ?帮助(H) 帮助| 关于 帮助| CHINESE

选择中文或英文显示方式,适应不同操作系统的需要。 帮助| 安装MPASM

辅助用户安装Microchip 的汇编器。将伟福BIN文件夹下的MPASM复制到指定的文件夹里。

六、快速入门

15

1.建立你的新程序

选择菜单[文件| 新建文件]功能 出现一个文件名为NONAME1 的源程序窗口,在此窗口中输入以下程序

ORG 0

MOV A,#0 MOV P1,#0 Loop:INC P1 CALL Delay SJMP LOOP

Delay:MOV R2,#3 MOV R1,#0 MOV R2,#0

DLP:DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END

输出程序后的窗口如图,现在要做的是将此文件存盘。 2.保存你的程序

选择菜单[文件| 保存文件]或[文件| 另存为]功能 给出文件所要保存的位置,例如:C:\\WAVE6000\\SAMPLES 文件夹,再给出文件名MY1.ASM。保存文件。

3.建立新的项目

新建项目会自动分三步走。

A) 加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。

B) 加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没

16

有包含文件,按取消键。

C) 保存项目。在保存项目对话框中输入项目名称。MY1 无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。 4.设置项目

选择菜单[设置| 仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对话框

在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C 语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C (V4或更低)”还是“Keil C (V5或更高)”。按“好”键确定。当仿真器设置好后,可再次保存项目。 5.编译你的程序

选择菜单[项目| 编译]功能或按编译快捷图标或F9 键,编译你的项目。

在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了,首先我们来单步跟踪调试程序。 6.单步调试程序

选择[执行| 跟踪]功能或按跟踪快捷图标或按F7 键进行单步跟踪调试程序 7.连接硬件仿真

按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线否有误,确信没有接错后,接上电源,打开仿真器的电源开关。

17

参见第4 步,设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号

如果用户已经有写好的程序,可以从第3步“新建项目”开始,将你的程序加入项目,就能以项目方式仿真了。如果用户不想以项目方式仿真,则要先关闭项目,再打开你的程序,并且要正确设置仿真器、仿真头,然后再编译、调试程序。到此为止,你已经学会使用伟福的仿真环境了。在使用过程中,你会逐步提高自己的技能。伟福仿真器的更多功能可参考本说明书的其它部分。

LAB2000单片机实验系统

实验指导书

18

广东交通职业技术学院

电子信息工程系 王贵恩 赵薇编

目 录

第一章 LAB2000单片机仿真系统的使用 ………………………………………………1 1.1 单片机仿真系统介绍 …………………………………………………………………1 1.2 WAVE的开发环境 …………………………………………………………………2 实验一 单片机仿真实验系统的应用与演示 ……………………………………………6

第二章 LAB2000实验系统组成和结构的使用 ……………………………………………7 2.1 伟福实验系统的硬件组成 ……………………………………………………………7 2.2 WAVE仿真板 ……………………………………………………………………13

第三章 MCS-51单片机应用实验 …………………………………………………………14 实验二 信号灯控制实验 ………………………………………………………………14 实验三 继电器控制实验 ………………………………………………………………16 实验四 计数器实验 ……………………………………………………………………18 实验五 定时器实验 ……………………………………………………………………20

19

实验六 外部中断实验 ……………………………………………………………………22 实验七 用74LS273和74LS373输出数据 ………………………………………………24 实验八 8255输入、输出实验 …………………………………………………………26 实验九 八段数码管(LED)显示 ……………………………………………………28 实验十 D/A转换和直流电机控制实验 ………………………………………………30 实验十一 A/D转换实验 ………………………………………………………………32 实验十二 单片机串行口通信实验 ……………………………………………………34

第四章 单片机综合应用实验 ………………………………………………………………36 实验十三 电子时钟设计 ………………………………………………………………36 实验十四 键盘扫描显示实验 …………………………………………………………38 实验十五 可调电子时钟设计 …………………………………………………………40 实验十六 交通信号灯模型 ………………………………………………………………42 实验十七 步进电机控制实验 …………………………………………………………44 实验十八 液晶显示的控制 ………………………………………………………………46 实验十九 空调温度控制 ………………………………………………………………49 实验二十 汽车倒车测距仪 ………………………………………………………………52 实验二十一 单片机应用系统综合设计 ………………………………………………55

20

在每次实验完成后,请填写相应的实验报告,实验报告格式如下: 实验名称 (实验前完成) 1. 实验目的 2. 实验说明 3. 程序框图

4. 实验结果,如本程序的关键、达到的效果、参数分析等(实验过程记录、实验后整理) 5. 实验体会,如编程和调试过程中遇到的问题和解决方法,对于该问题和解决方案的感想

等。(实验后整理)

6. 建议(通过实验,对该实验有何改进或建议)

注意:实验报告在下一次实验时由负责老师检查。实验成绩作为平时成绩评分的参考。

第一章 LAB2000单片机仿真系统的使用

1.1 单片机仿真系统的介绍

1.1.1 概述

本仿真实验系统可实现MCS51/MCS196单片机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。该实验系统对基本实验仅需少量连线就可进行,以减轻学生的工作量,同时也提供了一些需较多连线的扩展性实验以进一步锻炼学员的动手能力(详见第2部分)。此外,它还为学生们提供了强大的软硬件调试手段。本仿真实验系统由板上仿真器、实验仪、伟福仿真软件、开关电源构成。

1.仿真器系统构成

本仿真实验系统具有三种使用方法:

(1)无系统机,仅用实验仪的板上仿真器进行仿真和实验。

(2)有系统机,用系统机上的WINDOWS/DOS软件驱动板上仿真器进行仿真和实验。 (3)有系统机、用外接仿真器进行仿真和实验。

(4)无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。

 2. 实验系统自带键盘和显示器,自带系统监控程序。如果没有系统机也照样进行各种学习和实验。

3.配备有DOS,Windows两套PC机系统软件,在有系统机的情况下,通过外接仿真器实现64K全空间的硬件断点和仿真。

4.PC机和系统机软件具有全集成化仿真环境,中、英文两种界面,软件仿真与硬件仿真两种模式,软件仿真可以在无仿真仪的情况下进行。

5.其中实验实例及实验程序,可采用机器码、汇编、C等三种语言编写,以适应不同层次的学生的需求。

本实验仪可以方便灵活地构成各种实验方案,在有无系统机和实验仪的情况下,都能进行相应的编程实验,从而具有极为广泛的应用范围,板上提供了基本的实验电路,减少繁琐的连接线过程,板上也提供了DIP40/28/24/20/16/14插孔和CPU的地址数据总线引出插孔,供学生自己扩展其它实验,培养实际动手能力,加强对实验电路的理解。实验程序采用多种语言适应不同层次的学生的需要。高级语言编写应用程序,是一种时代的需要,通过应用高级语言的编程和实验,可使学生掌握高级语言的编程方法,为今后进入社会实践打下坚实的基础。而汇编语言又能让学生了解机器深层的原理。

1.1.2 伟福实验系统的支持软件

1.板上单片机仿真部分(使用WAVE集成调试软件)

21

(1)支持DOS、Windows'95/98双平台

(2)具有编辑、汇编、编译、调试和软件模拟等功能,所有操作均可通过窗口和菜单的选择来完成。方便用户编写和调试软件、直观反映程序运行情况,提高软件开发效率。 (3)支持汇编语言、C、PLM高级语言源程序调试。 (4)可观察数组,记录等各种复杂变量。

(5)脱开实验系统单独进行软件模拟,这种方式尤其适用于软件实验 注意: (1)无论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。

(2)实验线路连接完成后,应仔细检查无误后再接通电源。

1.2 WAVE的开发环境

WAVE仿真器有两种版本:DOS版本和Windows版本。中文界面,英文界面可任选,并支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。有丰富的窗口显示方式,能多方位,动态地显示仿真的各种过程。可采用双工作模式: 软件模拟仿真(不要仿真器也能模拟仿真)和硬件仿真。

由于编辑、编译、下载、调试全部集中在一个环境下,为使用者提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口,为用户提供了方便。

WAVE仿真器具有强大的逻辑分析仪综合调试功能,通过交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,并能实时在线调试分析。本节主要介绍Windows版本的使用。

1.2.1 WINDOWS版本软件安装

1.安装WAVE仿真器

将安装盘(光盘或软盘)上的文件全部复制到硬盘的一个目录(或文件夹)中,执行相应目录(或文件夹)下的SETUP进行安装即可。

注意:在安装新版本软件时,如果硬盘上已有老版本的软件,请卸载旧版本软件后,再安装新软件。在安装过程中,如果用户没有指定安装目录,安装完成后,会在C:盘建立一个C:\\WAVE目录(文件夹),结构如下:

目录 内容 C:\\WAVE ├ BIN 可执行程序 ├ HELP 帮助文件和使用说明 └ SAMPLES 样例和演示程序 2.编译器的安装 伟福仿真系统已内嵌汇编编译器(伟福汇编器),同时留有第三方的编译器的接口,方便用户使用高级语言调试程序。在伟福信真系统的光盘中,通常提供有伟福编译器CMP51。如果使用高级语言(汇编语言或C语言)编译器由用户自备。

安装51系列CPU的编译器

1. 进入C:\\盘根目录,建立C:\\COMP51文件夹

2. 将第三方的51编译器复制到C:\\COMP51文件夹下。

3. 在 [ 主菜单 | 仿真器 | 仿真器设置 | 语言 ] 对话框的[编译器路径] 指定为C:\\COMP51 (参见图1-1仿真器设置)

说明: 如果用户将第三方编译器安装在硬盘的其它位置,请在[编译器路径]指明其位

22

置。

图1-1 仿真器的设置

3.系统安装及使用要求 (1)实验要求,进行51系列单片机仿真实验时,应插上POD51/96仿真板,并插上8051或8052CPU(如果68脚的插座上装有80C196芯片应将其拨下)。

(2)将配套的串行通讯电缆的一端与实验箱的RS232 9芯D形插座相连,另一端与PC相的串行口相连。

(3)将实验箱的电源线与220V电源相连。(实验结束后应拔下)

(4)打开实验台电源开关,红色电源指示灯亮。仿真开发器初始化成功后,RS232插口旁的绿色指示灯亮。指示灯闪烁表示仿真系统正与PC机通讯或正在执行用户程序。

(5)打开计算机电源,执行WAVE集成调试软件。

1.2.2 WAVE仿真器的界面

WAVW仿真器的开发环境界面如图1-2所示 WAVE的窗口可根据选择主要功能如下: 1. 项目窗口 可对项目进行管理。

2. 信息窗口 显示系统编译输出的信息。如果程序有错,会以图标形式指出, 表示

错误, 表示警告, 表示通过在编译信息行会有相关的生成文件,双击鼠标左键,或单击右键在弹出菜单中选择“打开”功能,可以打开相关文件。如果有编译错误,双击左键,可以在源程序中指出错误所在行。

3. CPU窗口 CPU窗口,可给出机器码及反汇编程序,可以让你更清楚地了解程序执

行过程。

菜单栏

工具栏

CPU

项目窗口

窗口

程序代

信息窗口

23

码窗口

图1-2 WAVE仿真器开发环境界面

4. 数据窗口 51系列有以下四种数据窗口:

1) DATA 内部数据窗口。在内部数据窗口中可以看到CPU内部的数据值,红色的为上一步执行过程中,改变过的值,窗口状态栏中为选中数据的地址,可以在选中的数据上直接修改数据的十六进制值,也可以用弹出菜单的修改功能,修改选中的数据值。数据窗口通过项目窗口下方的DATA选项激活。

2) CODE 程序数据窗口;程序数据窗口显示的是编译后程序码,状态栏显示的是选中数据的地址,可以对在选中数据上直接修改程序数据的十六进制值,也可以对程序数据进行“块填充”,“块移动”操作,也可以读入一段二进制代码插入程序数据中,也可以将程序数据中的某段代码写文件中。

3) XDATA 外部数据窗口。通过数据窗口可观察程序运行过程中数据单元中的内容。 4) PDATA 外部数据窗口(页方式)。

WAVE的窗口较多,可根据不同的需要进行选择。

1.2.3 伟福系统的使用

1.文本编辑器的使用

在伟福编辑器中,可以编辑C语言、汇编语言、PLM语言程序,方法如下:

(1)调整主窗口中各窗口的边缘线,可以将编辑窗口调整至最大;如图1-3所示。 (2)在编辑框中可像一般的文本编辑软件一样编辑程序。并能通过复制、剪贴、粘贴等功能对程序进行修改。

图1-3 程序编辑窗口

注意:源程序除可以在WAVE6000的编译环境下编辑、录入,还可以在WORD、记事本或写字

板环境下录入、编辑和修改,并拷贝到伟福编辑器中进行编译,但在编译前须将文件存为“**.asm”的格式。 2.程序的编译

在程序运行之前,应先对程序进行编译,方法为:

(1) 进入【项目】菜单,选择【编译】项,对程序进行编译。 (2) 按F9键,对程序进行编译。 (3) 在工具条中选择【编译(F9)】按钮,对程序进行编译。 3.程序的运行

(1) 在【执行】菜单中选择【全速执行】,可执行整个程序。

24

(2) 按Ctrl+F9,也可全速执行程序。

(3) 选择工具栏中的全速执行(Ctrl+F9)按钮,也可执行程序。 (4) 也可按说明书中选择断点执行方式和单步执行方式。

注意:上机过程中应体会单步、跟踪、设置断点、程序运行至光标处(按F4)、全速运行等软件调试方法的功能和特点。

4.计算机与单片机实验仪的连接运行

将计算机与单片机实验仪连接,可直接将已编辑好的程序编译成机器码,通过串行口传输给单片机实验仪,并可运行程序。

(1) 用9芯串行线连接计算机的串行口(COM1或COM2)和单片机实验箱的仿真器串口连接;

(2) 连接实验仪的电源,打开实验仪的电源; (3) 连接计算机的电源,打开计算机电源;

(4) 设置仿真器的各设置项,连接成功后在窗口的左上角的【仿真器设置】按钮上将出现一个绿色的“√” 。

(5) 编写程序或调入事先编辑好的程序文件,按F9键进行编译程序。按Ctrl+F9执行程序。

实验一 单片机仿真实验系统的应用与演示

一、实验要求:熟悉LAB2000P单片机实验系统编译和调试环境,

二、实验目的:掌握仿真器设置、程序编译和调试的方法,了解各仿真窗口的含义和用途,

为后续单片机实验打下应用基础。

三、实验说明:通过本实验,学生应比较了解单片机仿真实验系统程序编辑、编译、调试、

运行的流程和方法。

四、实验步骤:(如单片机软件调试有几种方法,仿真系统有几种数据窗口及各窗口的功能、仿真器设置应注意的事项等)

25

五、实验体会:

六、建议:

第二章 LAB2000实验系统组成和结构

2.1 伟福实验系统的硬件组成

本实验仪上有丰富的实验电路和灵活的组成方法。这些电路既可以和8031系列,也可以和80196系列CPU及8088/8086CPU组合完成各种实验。本实验仪将高档仿真器所具有的逻辑分析仪、波形发生器和程序跟踪器等强大的分析功能移植过来,在做实验时不仅能知道软件的执行过程,也能直观地看到程序运行时,电路上的信号状态和工作时序,可以详细地了解电路的工作情况。

2.1.1 LED6位数字显示器及4×6键盘电路

本实验仪已经将LED显示电路和键盘电路集成到一个集成电路中。LED显示和键盘的等效电路如图2-1。显示控制的位码由74HC374输出,经MC1413反向驱动后,做LED的位选通信号。位选通信号也可作为键盘列扫描码,键盘扫描的行数据从74HC245读回,74HC374输出的列扫描码经74HC245读入后,用来判断是否有键被按下,以及按下的是什么键。如果没有键按下,由于上拉电阻的作用,经74HC245读回的值为高电平,如果有键按下,74HC374输出的低电平经过按键被接到74HC245的端口上,这样从74HC245读回的数据就会有低位,根据74HC374输出的列信号和74HC245读回的行信号,就可以判断哪个键被按下。LED显示的段码由另一个74HC374输出。

键盘和LED显示的地址译码见图2-1,做键盘和LED实验时,需将KEY/LED_CS接到相应的地址译码上。位码输出的地址为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED_CS决定,参见地址译码。例如将KEY/LED_CS接到地址译码的CS0上,那么位码输出的地址就为08002H,段码输出的地址就是08004H,键盘行码读回的地址为08001H。

2.1.2 LED电平显示电路

实验仪上装有8只发光二极管及相应驱动电路,参见图2-2,L0~L7为相应发光二极管驱动信号输入端,该输入端为高电平“1”时发光二极管点亮。我们可以通过P1口对其直接进行控制,点亮或者熄灭发光二极管。

2.1.3 逻辑电平开关电路

实验仪上有8只开关K0~K7,并有与之相对应的K0~K7引线孔为逻辑电平输出端。开关向上拨,相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”,参见图2-3。

26

2.1.4 单脉冲电路

单脉冲电路由按键(PULSE)和去抖动电路组成,每按下一次(PULSE)键产生一个单脉冲。板上有单脉冲的输出信号插孔(参见图2-4),图中“”和“”,分别表示正脉冲和负脉冲。

图2-1 键盘及LED显示电路

27

图2-2 LED电平显示电路 图2-3 逻辑电平开关电路 图2-4 单脉冲发生电路 2.1.5 脉冲发生电路和分频电路

图2-5是4MHz脉冲信号输出电路。如想得到其他频率的脉冲信号,可将4MHz脉冲信号接到分频电路上,经过分频后,能得到2MHz、1 MHz、500KHz、250KHz、125KHz、62.5KHz多种频率的脉冲信号。脉冲分频电路如图2-6所示。

28

2.1.6 继电器输出电路

当控制端电平置高,公共触点与常开触点吸合。我们可以将常开端接入一发光二极管,公共端接+5V电平,通过对控制端进行控制,观察发光二极管的状态。继电器控制电路见图2-7。

2.1.7 A/D转换电路

实验仪上有一个0~5V的可调电位器,将可变电压输出端接入A/D转换电路的输入端,通过CPU软件处理,读进A/D转换值,再将转换值送数码管显示。我们可以调节电位器,使之输出不同电压值,通过数码管的显示,检验A/D转换正确与否。A/D转换电路参见图2-8。

2.1.8 D/A转换电路

实验仪上提供了D/A转换电路如图2-9所示。我们可以通过软件编程控制D/A转换芯片DAC0832,输出相应电流值,经过采样电路取出模拟量电压值,用电压表测量电压输出端子,读出电压值。

2.1.9 PWM转换电路

通过编程输出脉冲,以产生PWM(脉冲宽度调制)电压。电路参见图2-10。

2.1.10 音频放大电路

在实验仪相应输入端口接入高电平可使蜂鸣器发声,输入不同频率的脉冲信号,可产生不同频率的声音(如电子琴)。音频放大电路参见图2-11。

2.1.11 可调模拟量输入电路

电位器电路用于产生可变的模拟量(见图2-12)。

2.1.12 存储器电路

本实验仪上有一片32K存储器61256。提供给学生做存储器实验,由于地址译码为4K一段,所以只能提供4K容量使用,地址从0000H~0FFFH。用RAM_CS来选择不同的地址段,以适应不同的应用电路。

2.1.13 逻辑门电路

本实验仪提高系列门电路:非门、或门、与门和D触发器。逻辑门电路由74LS00和74LS04组合实现,参见图2-13。

图2-5 脉冲产生电路

29

图2-6 分频电路 图2-7 继电器控制电路 图2-8 A/D转换电路 图2-9 D/A转换电路 30

图2-10 PWM转换电路 图2-11 音频放大滤波电路 图2-12 电位器 图2-13 逻辑门电路 2.1.14 实验电路插座

本实验仪具有1个40芯通用电路插座,每个插座的全部引脚都被引出到相应的插孔,40芯通用插座可兼容28芯、24芯、16芯和14芯插座。利用这个插座,可对双列直插式的各种微机芯片进行实验。

2.1.15 总线插孔

本实验仪上有三排总线插座,用于引出各种总线信号,其中AD0~AD7为8根数据总线,A0~A15为16根地址总线,另外ALE、RD、WR为控制总线。与CPU相关的一些控制信号和I/O信号,例如P1口、RXD、TXD等信号在相应的仿真板上。

2.1.16 地址译码插孔(见下表)

译码插孔 CS0 CS1 CS2 CS3 CS4 CS5 CS6 CS7

地址范围 08000H~08FFFH 09000H~09FFFH 0A000H~0AFFFH 0B000H~0BFFFH 0C000H~0CFFFH 0D000H~0DFFFH 0E000H~0EFFFH 0F000H~0FFFFH

2.1.17 串口通信程序实验插孔

在做串行通信实验时,如果不需要将TTL电平转到RS232电平,可直接将POD51/96仿真板或POD8086仿真板上的TXD、RXD、地与通信对方交叉对接即可。

如果想要与标准的设备通信,就要做电平转换,将TTL电平转到RS232电平或将RS232电平转成TTL电平。本实验仪提供用户串行通信接口,可以用这两个插孔进行RS232通信

31

程序实验,经电平转换后,再通过实验仪的“用户串口”接到PC机或其它RS232设备,实现数据互传。

2.2 WAVE仿真板

若要做80C51或80C196的实验,将POD51/96仿真板插在实验仪上,POD51/96仿真板如图2-14所示。 在POD51/96仿真板上有两个跳线器,其中跳线器S1用

于CPU种类(80C51

图2-14 POD51/96仿真板示意图 或80C196)的选择,

另一个跳线器接80C51的EA脚,用于选择80C51的程序在内部还是外部,一般情况下接地,程序在CPU外部。

第三章 MCS-51单片机应用实验

本实验指导书可作为单片机课程实验、课程设计和实习实训的指导书,任课教师和实验指导教师可根据教学、实验和学院现有设备的实际情况,自行选择题目。也可依据本实验指导书编写设计任务书,作为课程设计施行。书中未列出具体源程序,可由学员依据流程图编写和调试完成。

实验二 信号灯控制实验

一、实验要求:

1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 2. P1.0、P1.1做输入口接两个拨动开关,P1.2、P1.3做输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0和P1.1作为输入口时应先置1,才能正确读入值。

二、实验目的:初步学习单片机汇编语言源程序的编制方法和调试方法,学习P1口的使

用方法以及沿时子程序的编写和使用。

三、实验电路及连线 实验1 P1口循环点亮

实验2 P1口输入输出

32

连线 1 2 3 4 5 6 7 8 连接孔1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 连接孔2 L0 L1 L2 L3 L4 L5 L6 L7

连线 1 2 3 4 连接孔1 S0 S1 P1.2 P1.3 连接孔2 P1.0 P1.1 L2 L3

四、实验说明:

1. P1口是准双向口。它作为输出口时与一般的双向口使用方法相同,即当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据可能是不正确的。 2. 延时子程序的延时计算问题。对于程序 DELAY: MOV R6,#200 DEL1: MOV R7,#125 DEL2: DJNZ R7,DEL2 DJNZ R6,DEL1 RET 由指令表可知MOV、DJNZ指令均需用两个机器周期,在采用6MHz晶振时,一个机器周期时间长度为2?s,所以该段程序执行时间约为:2?2?s?200?125?100ms

3. 有余力的同学可进一步考虑信号灯控制能否达到如霓虹灯的效果,并通过编程实现。

五、实验步骤:(如程序流程图或源程序等)

六、实验结果和体会:

33

七、建议:

实验三 继电器控制实验

一、实验要求: 用单片机的端口,输出电平控制继电器的吸合和断开,实现对外部装置

的控制(见图2-7)。其中三极管起电流放大的作用,该电路原理是弱电控制强电的常用方法。

二、实验目的:学习I/O端口的使用方法;掌握继电器控制的基本方法;了解用弱电控制

强电的工作原理。

三、实验电路及连线

连线 1 2 3

连接孔1 P1.0 5V L0

连接孔2 继电器输入 继电器常闭输入 继电器中间输入

四、实验说明:

现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。本实验采用的继电器其控制电压是5V。本电路的控制端为高电平时,继电器工作常开触点吸合,连接触点的LED灯被点亮。当控制端为低电平时,继电器不工作。执行时,对应的LED将随继电器的开关而亮灭。

五、实验框图

六、实验步骤:(如程序流程图或源程序等)

34

七、实验结果和体会:

八、建议:

实验四 计数器实验

35

一、实验要求: 8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)

引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。

二、实验目的:学习8051内部定时/计数器的使用和编程方法。

三、实验电路及连线

连线 1 2 3 4 5

连接孔1 P1.0 P1.1 P1.2 P1.3 单脉冲输出

连接孔2 LED0 LED1 LED2 LED3 T0

四、实验说明

本实验中内部计数器起计数器的作用。外部事件脉冲由P3.4引入定时/计数器T0,即T0用来检测外部脉冲数。

五、实验程序框图

六、实验步骤:(如源程序、流程图或调试中遇到的问题和解决方法等)

36

七、实验结果和体会:

八、建议:

实验五 定时器实验

一、实验要求: 用CPU内部定时器中断方式计时,实现每5秒钟输出状态发生一次反转。

二、实验目的:学习8051内部定时器的使用和编程方法;掌握中断处理程序的编程方法。

三、实验电路及连线

四、实验说明:

1. 关于内部定时/计数器的编程主要是定时常数的设置和有关控制寄存器的设置。 2. 定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 3. 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡周

37

期。本实验系统的晶振是6MHz,即一个机器周期是2?s。设本程序工作于方式1,按照定时常数的计算公式,当定时时间为100ms(即每100ms中断一次),其定时初值为3CB0H,然后对100ms中断次数计数10次,就是1秒钟。 4. 在一般的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后或返回主程序之前再打开相应的中断。

五、实验程序流程图

38

主程序流程图 外部中断子程序流程图 六、实验步骤:(如源程序或调试中遇到的问题和解决方法等)

七、实验结果和体会:

八、建议:

实验六 外部中断实验

一、实验要求: 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。

二、实验目的:学习外部中断技术的基本使用方法;学习中断处理程序的编程方法。

三、实验电路及连线

连线 1 2 2

连接孔1 P1.0 单脉冲输出 单脉冲输出

连接孔2 LED0 INT0(8051) EINT(80196)

四、实验说明 中断服务程序的关键是:

1. 保护进入中断时的状态,并在退出中断之前恢复进入时的状态。 2. 必须在中断程序中设定是否允许中断重入,即对EX0进行设置。 3. 对于80C196,要选择相应的中断源,并设置中断屏蔽寄存器的相应位。 本例中使用了INT0中断(80C196为EXTINT中断),一般中断程序进入时应保护PSW、ACC等寄存器,并且在退出前恢复被保护的寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入,可以在中断返回前再打开相应的中断,本例中没有涉及这种情况。

五、实验程序流程图

39

六、实验步骤:(如源程序或调试中遇到的问题和解决方法等)

七、实验结果和体会:

40

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

Top