《周立功Quick51实验指导书》

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
第1章Quick51硬件结构 (1)
1.1 SmartSOPC与Quick51 (1)
1.2 Quick51特性 (1)
1.3 Quick51电路结构 (2)
第2章Keil C51和Quick51入门 (4)
2.1 Keil C51简介 (4)
2.2 Keil C51的安装 (4)
2.3 建立第1个Keil C51程序 (4)
2.4 安装Flash Magic软件 (9)
2.5 以ISP下载方式运行程序 (9)
2.6 以硬件在线仿真的方式调试程序 (10)
2.7 Keil C51仿真调试的若干基本操作 (12)
2.7.1 源程序窗口 (12)
2.7.2 寄存器窗口 (12)
2.7.3 汇编窗口 (12)
2.7.4 存储器窗口 (12)
2.7.5 程序的运行控制 (13)
2.7.6 变量观察和堆栈窗口 (13)
2.7.7 外围设备访问 (14)
2.8 Quick51在线仿真芯片占用的系统资源 (14)
第1章 Quick51硬件结构
1.1 SmartSOPC与Quick51
SmartSOPC教学实验开发平台集众多功能于一体,是SOPC、DSP、EDA、ARM、ARM7 SOC以及8051教学实验、科研开发的最佳选择。

开发平台采用“主板+核心板”的模式,更换不同的核心板即可实验不同平台的功能。

Quick51正是跟SmartSOPC相配套的8051单片机核心板,实物照片见图 1.1。

Quick51是一款自由的、开放全部系统资源的单片机实验板。

单片机芯片采用Philips最新推出的拥有64KB Flash的增强型8052内核单片机P89LV51RD2,工作电压3.3V(3V逻辑是大趋势)。

Quick51与SmartSOPC配合,可以做各种单片机教学实验,如LED点阵扫描显示、键盘检测、动态数码管、液晶屏、电机驱动、I2C总线、红外收发、蜂鸣器、数字温度计、电子钟,等等。

图 1.1 Quick51照片
1.2 Quick51特性
采用Philips半导体新型单片机P89LV51RD2,增强型Intel 8052 CPU内核。

具有许多增强功能,如内置64KB用户程序Flash,8KB引导Flash(用来支持ISP和IAP
功能),1KB片内静态RAM,双倍速模式,双DPTR,4个中断优先级,进入掉电
模式后外部中断可唤醒(8052只有复位,不方便),硬件SPI,增强型UART,等等。

配备的P89LV51RD2单片机支持ISP(在系统可编程)方式下载用户程序。

Quick51只需要一根普通电脑RS-232通信电缆(该电缆已经随SmartSOPC实验箱标配)就
能实现ISP下载,不需要制作专门的下载线。

配备1片专门的仿真芯片。

在目前最流行的8051内核单片机Windows环境软件开发工具Keil C51的支持下,能够方便地进行硬件在线仿真,而且并不需要安装特别的驱动程序。

该仿真芯片能够全面支持单步、全速、断点、跳出、变量观察、外围
设备访问等仿真功能。

晶振(默认11.0592MHz)采用插座式安装,为用户替换成其它频点的晶振来做实验提供了方便。

复位方式可选:RC复位、按键复位、看门狗复位。

此外,看门狗芯片还内置有256B 的EEPROM。

单片机的4组I/O端口全部用双排插针引出,方便用户做实验。

扩展32KB静态RAM。

扩展512KB大容量Flash存储器,可以用作程序Flash或者大容量数据存储。

扩展1个8位并行高阻输入端口、1个8位并行推挽输出端口。

采用PLD器件作为译码器。

提供8组输出,地址范围已经印在PCB上,一目了然。

在产品光盘里提供译码器内部结构的等效电路原理图。

Quick51与SmartSOPC配合,可以做各种单片机教学实验,如LED点阵扫描显示、键盘检测、动态数码管、液晶屏、电机驱动、I2C总线、红外收发、蜂鸣器、数字温
度计、电子钟,等等。

提供丰富的实验例程。

为了照顾不同客户的需求,每个实验例程都提供汇编和C两种版本,书写规范,有比较详细的注释,以供学习参考。

1.3 Quick51电路结构
Quick51的电路原理图在光盘中。

Quick51的PCB元件布局如图 1.2所示。

表 1.1 Quick51跳线设置表
跳线编号跳线名称跳线接法功能描述
VCC与/EA短接(默认)执行存储于片内Flash的程序JP1 /EA跳线
/EA与GND短接执行存储于片外Flash的程序
/PSEN与GND断开(默认)正常模式JP2 /PSEN跳线
/PSEN与GND短接用于某些型号单片机的ISP下载
WDT与RST短接看门狗复位JP3 复位跳线
RST与RC短接(默认)阻容复位
A16~A18全接GND(默认)不使用扩展地址(64KB以内)JP4~JP6 Flash扩展地址跳线
A16~A18分别接P10~P12 使用扩展地址(可达512KB)
RXD短接、TXD短接(默认)RXD、TXD用于串行口通信JP7 串行口跳线
RXD断开、TXD断开 RXD、TXD可作为I/O使用
Quick51的跳线设置非常重要,在做Quick51大部分实验时,跳线的接法都和表 1.1中“默认”的接法一致。

图 1.2 Quick51 PCB元件分布图
第2章 Keil C51和Quick51入门
Quick51实验板中的例程全部使用Keil C51软件来调试。

如果您对Keil C51还不熟悉,请先仔细阅读本章相关内容。

2.1 Keil C51简介
Keil C51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微控制器软件开发平台,是目前开发8051内核单片机的主流编译工具。

在光盘中有Keil C51 V7.09的评估版本。

2.2 Keil C51的安装
安装Keil C51非常简单,步骤如下:
运行光盘中Keil C51 V7.09评估版SETUP目录下的“Setup.exe”。

当出现如图 2.1的对话框时,请选择“Eval Version”安装。

图 2.1 Keil C51评估版安装选择
在接下来的几个对话框中选择“Next”或“Yes”,提示填入用户名和公司名时,照实际情况填写。

安装完毕后按“Finish”结束。

2.3 建立第1个Keil C51程序
Keil C51是一个功能很强大的软件,但是使用起来并不复杂。

现在就通过建立一个简单的LED流水灯实例来初步掌握Keil C51的基本用法。

运行Keil C51软件。

您可以通过双击电脑桌面上的“Keil uVision2”快捷方式图标来启动。

新建工程。

选择Keil C51软件的菜单“Project | New Project…”,弹出一个名为“Create New Project”的对话框,参考图 2.2。

为工程取名为“First”。

然后准备选择一个合适的文件夹来存放,比如“E:\Quick51”。

在此文件夹下再新建一个文件夹,可以取名为“First”。

最后,进入文件夹“E:\Quick51\First”,按“保存”按钮。

紧接着,Keil C51提示您选择CPU器件。

8051内核单片机最早是由鼎鼎大名的Intel 公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。

因此,在这里您可以选择Intel公司的第1个器件“80/87C52”,参见图 2.3。

图 2.2 保存Keil C51新建的工程
图 2.3 选择CPU
图 2.4 选择是否要添加启动代码
接下来弹出一个如图 2.4所示的对话框。

该对话框提示您是否要把标准8051的启动代码添加到工程中去。

Keil C51既支持C语言编程也支持汇编语言编程。

如果打算用汇编语言写程序,则应当选择“否(N)”;如果打算用C语言写程序,一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。

在这里,我们的第1个实验程序是要用汇编来写的,要选择“否(N)”。

今后,如果没有特别说明,都要选择“否(N)”,即不添加启动代码。

至此,一个空的Keil C51工程建立完毕。

图 2.5 保存新建的汇编源程序文件
图 2.6 准备添加源程序文件到工程中
选择Keil C51软件的菜单“File | New…”,出现一个名为“Text n”(其中n表示序号)的文档。

选择菜单“File | Save”,弹出一个名为“Save As”的对话框。

建议将文件名改为“main.asm”,然后保存,参见图 2.5。

文件名也可以取“first.asm”,或其它名字,但扩展名必须为“.a*”的形式。

现在,一个空的源程序文件已经建立,但是这个文
件与刚才新建的工程本身并没有什么联系。

我们需要把源程序文件“main.asm”添
加到工程中去。

单击Keil C51软件左边“Project Workspace”项目工作窗口的“+”,然后右击“Source Group 1”文件夹,会弹出如图 2.6所示的选择菜单。

单击其中的“Add Files to Group 'Source Group 1'”项,将弹出如图 2.7所示的对话框。

先选择文件类型为“Asm Source file”,这时,对话框内将出现刚才保存的“main.asm”。

单击文件“main.asm”,再按一次“Add”按钮(请不要多次点击“Add”
按钮),最后按“Close”按钮。

这时,源程序文件“main.asm”出现在项目工作窗
口的“Source Group 1”文件夹内,可以单击左边的“+”展开后查看。

图 2.7 弹出的添加源程序文件的对话框
现在开始输入源程序。

请按程序清单 2.1在“main.asm”中输入程序代码。

如果您以前学习过8051的汇编语言,则该程序是很容易理解的。

程序清单 2.1 LED流水灯实验源程序main.asm
;LED流水灯实验程序
ORG0000H
LJMP Main
ORG0080H
;延时子程序,延时大约(10000*R7)个机器周期
Delay:
PUSH 02H
PUSH 03H
Delay_00:
MOV R2, #100
Delay_10:
MOV R3, #50
Delay_20:
DJNZ R3, Delay_20
DJNZ R2, Delay_10
DJNZ R7, Delay_00
POP03H
POP 02H
RET
;主程序
Main:
#0FEH
MOV P1,
Loop:
MOV R7, #10
LCALL Delay
MOV A, P1
RL A
A
MOV P1,
SJMP Loop
;程序结束
END
图 2.8 编译器输出格式设置
单击Keil C51工具栏的“”图标,弹出名为“Options for Target ‘Target 1’”的对话框。

单击“Output”标签页,选中“Create HEX File”项,然后“确定”。

参见图 2.8。

单击工具栏的按钮“”编译当前源程序。

编译结果会显示在输出窗口内。

如果是“0 Error(s), 0 Warning(s).”就表示程序没有问题了。

如果存在错误或警告,请仔细
检查您的程序是否与程序清单 2.1一致。

修改后,再编译,直到通过为止。

在生成HEX文件后,您可以暂时关闭Keil C51软件了。

先选择菜单“Project | Close Project”关闭当前工程,再退出Keil C51。

2.4 安装Flash Magic软件
在Keil C51软件编译源程序后,就可以用Quick51调试这个程序了。

Quick51提供了两种程序运行模式:ISP下载HEX文件后全速运行,或者用仿真芯片硬件在线仿真调试。

在用ISP方式前,需要先安装一个支持P89LV51RD2单片机ISP下载功能的驱动程序。

这个驱动程序就是光盘中的“Flash Magic”软件。

Flash Magic软件的安装方法十分简单,步骤如下:
运行光盘中“FlashMagic.exe”。

单击“Next>”按钮,进入下一步。

选中“I accept the agreement”,单击“Next>”,进入下一步。

在接下来的几个步骤中,一路单击“Next>”。

最后一步,单击“Install”按钮,开始安装。

安装完成后,按“Finish”结束。

2.5 以ISP下载方式运行程序
在Quick51实验板上以ISP下载方式运行程序非常简单,具体步骤如下:
打开SmartSOPC实验箱,将Quick51实验板插在B2区的插针上。

注意检查Quick51上的跳线设置是否和表 1.1中默认的接法一致。

Quick51实验板带有两块单片机板,请将标有“ISP”字样的单片机板插在Quick51的DIP-40锁紧座内,并锁紧。

用8针排线连接Quick51的P10~P17到SmartSOPC实验箱JP6当中的LED0~LED7。

用SmartSOPC自带的串行口通信电缆连接C1区的串口母座CZ1到电脑的RS-232串行通信接口。

接通SmartSOPC的电源。

运行Flash Magic软件。

第“1”步:选择实际使用的COM端口,Baud Rate选择9600或19200,Device选择89V51RD2(请不要选择89LV51RD2)。

第“2”步:勾中“Erase Blocks used by Hex File”。

第“3”步:按“Browse”,然后打开文件“E:\Quick51\First\First.hex”。

第“4”步:勾中“Verify after programming”,其它选项请不要选择。

前4步的操作结果请如图 2.9所示。

第“5”步:按“Start”按钮,会弹出一个对话框提示您复位单片机以进入ISP模式,参见图 2.10。

这时按一次Quick51实验板上的RST按键,ISP下载过程开始。

下载成功后,关闭Flash Magic软件。

如果下载失败,请仔细检查操作步骤,再试一次。

再按一次Quick51实验板上的RST按键,程序开始运行。

我们会看到SmartSOPC 上A8区的8只LED在依次点亮,循环滚动。

程序调试完毕后,关闭SmartSOPC实验箱的电源。

图 2.9 Flash Magic软件的操作
图 2.10 Flash Magic软件提示复位单片机的对话框
2.6 以硬件在线仿真的方式调试程序
Quick51实验板自带的标有“仿真”字样的单片机板,在Keil C51软件支持下,能够进行硬件在线仿真。

该仿真模式具有操作方便、占用资源少等优点。

我们还是以刚才的LED流水灯实验为例,来讲解在Keil C51的支持下如何使用Quick51的仿真功能。

具体操作步骤如下:
注意,如果此时SmartSOPC实验箱的电源指示灯还亮着,就请先切断其电源。

从Quick51上取出标有“ISP”的单片机板,再将标有“仿真”字样的单片机板插在DIP-40锁紧座内,并锁紧。

跳线设置、8针排线、串行口电缆的接法都与ISP下载方式相同。

运行Keil C51软件,选择菜单“Project | Open Project”,找到文件夹“E:\Quick51\First”
下的工程文件“First.Uv2”,打开。

单击Keil C51工具栏的“”图标,弹出“Option for Target ‘Target 1’”对话框。

单击“Debug”标签页,默认的调试器是“Use Simulator”。

现在选中“Use: Keil Monitor-51 Driver”调试器,然后勾中下面的“Go till main”项。

参见图 2.11。

单击右上角的“Settings”按钮。

请选择正确的串行通信端口(通常为COM1)和波特率(9600或19200),然后确定。

单击“Options for Target ‘Target 1’”对话框的“确定”按钮,完成设置。

接通SmartSOPC实验箱的电源。

单击Keil C51工具栏的“”图标。

这时,会弹出一个警告对话框,提示当前的Keil C51软件是“EV ALUATION VERSION”(评估版)。

单击“确定”按钮,进入仿真调试状态。

参见图 2.12。

如果未能进入调试状态,请仔细检查硬件电路的连接,然后按照正确的操作步骤再试一次。

单击Keil C51工具栏的“”图标,可以单步运行程序。

单击“”图标可以全速运行。

我们看到在仿真调试下全速运行的效果跟ISP方式是相同的。

退出全速运行状态的方法是,按Quick51实验板上的RST按键。

再次单击“”
图标,退出仿真调试。

图 2.11 Keil C51的调试选项
图 2.12 进入Keil C51的调试功能
2.7 Keil C51仿真调试的若干基本操作
Keil C51的调试功能非常强大,我们先做一个初步了解,等以后再慢慢体会。

现在仍然进入LED流水灯实验程序的仿真调试状态,来具体了解各部分的功能和基本操作。

2.7.1 源程序窗口
Keil C51调试界面的中间是源程序窗口。

黄色箭头“”所指为当前即将执行的指令。

以深灰色标记的程序行是可以执行的指令(当然,在调试过程中未必一定要去执行)。

以浅灰色标记的程序行不可作为指令来执行,它们是注释、空行、标号、伪指令或ROM数据表。

2.7.2 寄存器窗口
Keil C51调试界面的左边是寄存器窗口。

8051的工作寄存器(R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。

Value栏显示的是寄存器的当前数值。

如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。

单击psw寄存器左边的“+”,展开后还可以看到其每一位的情况。

2.7.3 汇编窗口
单击工具栏的“”图标,源程序窗口会自动切换成汇编窗口。

在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。

不过,当前的源程序已经是汇编语言了,因此汇编窗口在这里用处不大。

但是在调试C语言程序时,就用得上了。

再次单击“”,回到源程序窗口。

2.7.4 存储器窗口
单击工具栏的“”图标,将显示出存储器窗口。

8051单片机的存储器分为多个不同
的存储空间,如果要观察代码存储器,就在地址栏“Address:”内输入“C:地址”,例如:C:0080H;如果要观察外部数据存储器,就输入“X:地址”;如果要观察内部数据存储器,则可以输入“I:地址”。

拖动存储器窗口右边的滚动条还可以观察输入地址附近的存储单元。

存储器窗口有“Memory #1~Memory #4”共4个观察子窗,您可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。

2.7.5 程序的运行控制
Keil C51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:
复位按钮“”:单击此图标,能够使程序复位,程序将从地址C:0000H处执行。

全速运行“”:单击此图标,能够使程序全速运行,效果跟程序烧写到芯片后全速执行是相同的。

在调试Quick51程序时,一旦进入全速运行状态,结束的正确方
法是按Quick51实验板上的RST按键。

停止运行“”:该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。

在调试Quick51时,一般不要按此图标,否则会弹出警告,而应当按实验板上
的RST按键来停止运行。

如果做纯软件仿真或者使用专业仿真器(如TKS-52B),则可以按此图标。

单步进入“”:按此图标可以实现程序的单步执行。

在汇编程序里,每次遇到“LCALL”或“ACALL”指令时,便进入相应的子程序接着执行。

在调试C程序
时,则进入相应的函数。

单步跳过“”:也是单步执行,但是遇到子程序或函数时,视作“1条指令”来执行,不会进入其中。

单步跳出“”:在调试C语言程序时,如果希望从某个函数中提前返回,则可以按此图标。

在调试汇编程序时,我们发现该图标是灰色的,表明单步跳出功能无效!
无效的原因在于,对汇编器来说,根本不存在“子程序”的概念,子程序只是程序
员头脑中的逻辑,由于子程序名和标号的语法形式完全相同,所以汇编器无法区分,自然无法跳出所谓的“子程序”。

执行到光标“”:用鼠标单击某条可执行的指令(深灰色标记的程序行)。

然后按
此条标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。

如果单击
不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,“”
图标也会立即变成灰色,不让你操作。

设置/清除断点“”:Keil C51支持断点设置功能。

单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小方块标记。

当程序全速运行时遇到断点,便会自动停下来。

Keil C51允许在同一个程序里设置多个断点。

清除某个断点的方
法是,将光标停在该行上,再按一次“”图标。

另外一种设置/清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,您不妨试一试。

清除所有断点“”:如果设置了多个断点,想一并清除,则可以按此图标。

2.7.6 变量观察和堆栈窗口
单击工具栏的“”图标,将显示变量观察和堆栈窗口(Watch & Call Stack Window)。

在Locals标签页,会自动显示局部变量的名称和数值。

在汇编语言里,一般所有变量都是全局性质的,所以看不到。

在C语言程序的函数中,每一对花括号“{}”内定义变量都是局部变量,能够自动显示。

在两个“Watch”标签页内,先按功能键“F2”,再输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。

同样,在汇编语言里该功能作用不大。

在“Call Stack”标签页内,可以实时地观察到堆栈的使用情况。

2.7.7 外围设备访问
单击菜单“Peripherals”,会弹出外围设备菜单,如图 2.13所示。

Keil C51的一大特色是在仿真调试时支持对外围设备的访问。

在Peripherals菜单里列出了标准8051的外围设备(相对于CPU内核而言):中断、I/O端口、串行口和定时器。

现在选择菜单“Peripherals | I/O-Ports | Port 1”,弹出如图 2.14所示的P1端口显示界面。

在位0~7中,用√表示高电平,无√表示低电平。

图 2.13 外围设备菜单
图 2.14 外围设备中的P1端口
2.8 Quick51在线仿真芯片占用的系统资源
通过上面的仿真操作,我们已经看到,Quick51的在线仿真芯片真的是功能强大,而且操作非常简单。

但是,任何仿真方式(包括专业仿真器)都不能做到100%的“真实”,总是与实际芯片有些差距。

Quick51的仿真芯片也不例外,要占用一小部分系统资源。

希望读者能够了解一下这些限制,在以后调试程序的时候不致茫然。

如果在您的程序里确实需要用到被占用的资源,则可以考虑改用ISP下载方式调试程序。

Quick51仿真芯片所占用的系统资源为:
动态地占用2个字节的程序堆栈。

因此,在调试程序的时候,有时会出现堆栈指针SP的数值比预期值大的情况。

占用单片机的串行口资源。

因为Quick51仿真芯片是通过串行口与Keil C51软件通信的,因此,单片机的串行口资源被占用。

这些资源包括:P3端口的RXD/P3.0和TXD/P3.1管脚、串行口中断向量、串行口控制寄存器SCON和SBUF。

通常串行口的波特率发生器是用定时器T1来做的,但是Quick51仿真芯片并不占用T1,您在程序里可以放心地使用这个定时器(当然,您不能拿它再来做波特率发生器)。

T2定时器被占用。

在Intel公司最早推出的8051单片机中不存在T2定时器,在紧接着推出的8052中新增了T2。

以后其它厂商凡采用8052内核的兼容单片机都带有T2定时器。

T2定时器也可以作为串行口通信的波特率发生器,Quick51仿真芯片正是这样用的。

与T2相关的资源自然都被占用,如T2的中断向量、T2的控制寄存器T2CON、TH2、TL2、RCAP2H、RCAP2L等。

相关文档
最新文档