当前位置:文档之家› 《DP-51MCore实验指导书》

《DP-51MCore实验指导书》

《DP-51MCore实验指导书》
《DP-51MCore实验指导书》

DP—51MCore实验指导书

第1章KEIL C51操作入门 (1)

1.1K EIL C51简介 (1)

1.2K EIL C51的安装 (1)

1.3建立第1个K EIL C51程序 (1)

1.4新建A51汇编工程 (6)

第2章在KEIL C51下调试程序 (7)

2.1进入仿真状态 (7)

2.2认识各个仿真窗口 (7)

2.3程序的运行控制 (10)

2.4外围设备访问 (11)

第3章DP-51MCORE基本操作 (12)

3.1DP-51MC ORE简介 (12)

3.2以ISP下载方式运行程序 (12)

3.2.1 ISP电路说明 (12)

3.2.2 ISP驱动程序Flash Magic简介 (13)

3.2.3 ISP操作步骤 (13)

3.3以硬件在线仿真的方式调试程序 (15)

3.4内嵌在线仿真占用的系统资源 (16)

第4章PROTEUS 6 PROFESSIONAL简介 (17)

4.1P ROTEUS功能简介: (17)

4.2单片机的仿真实例 (19)

第5章DP-51MCORE实验 (24)

5.1实验1:应用软件的熟悉与使用 (24)

5.2实验2:流水灯LED及动态数码管扫描 (24)

5.3实验3:按键扫描 (27)

5.3.1 独立式按键 (27)

5.3.2 行列式按键: (29)

5.4实验4:定时器实验 (30)

5.4.1 LED闪烁发光 (30)

5.4.2 555脉冲测量 (31)

5.5实验5:用8255扩展并行IO (32)

5.6实验6:UART基本收发 (33)

5.7实验7:并行DAC和ADC (37)

5.7.1 DAC0832(8位并行DAC) (37)

5.7.2 ADC0804(8位并行ADC) (37)

5.8实验8:串行ADC和DAC (38)

5.8.1 TLC5615(10位串行DAC) (38)

5.8.2 TLC1549(10位串行ADC) (40)

5.9实验9:I2C总线的应用 (41)

5.9.1 PCF8563时钟 (41)

5.9.2 EEPROM读写 (42)

5.9.3 LM75数字温度传感器 (43)

5.10实验10:交流蜂鸣器发声 (44)

5.11实验11:交流蜂鸣器演奏简单乐曲 (46)

5.12实验12:系统扩展 (47)

5.12.1 扩展片外RAM (47)

5.12.2 在RAM中执行程序代码 (49)

5.13实验13:128×64液晶屏 (51)

5.13.1 显示ASCII码 (51)

5.13.2 显示汉字 (52)

5.14实验14:PC键盘 (52)

5.15实验15:综合实验 (53)

5.15.1 红外收发 (53)

5.15.2 UART双机通信 (54)

5.15.3 RS-485双机通信 (55)

第1章Keil C51操作入门

1.1 Keil C51简介

Keil C51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微控制器软件开发平台,是目前开发8051内核单片机的主流工具。在广州周立功单片机发展有限公司网站(https://www.doczj.com/doc/8e6980339.html,)可以免费下载到Keil C51 V7.09的评估版本。

1.2 Keil C51的安装

安装Keil C51非常简单,步骤如下:

●运行Keil C51 V7.09评估版SETUP目录下的“Setup.exe”。

●当出现如图0.1所示的对话框时,请选择“Eval Version”版本安装。

图0.1 Keil C51评估版安装选择

●在接下来的几个对话框中选择“Next”或“Yes”,提示填入用户名和公司名时,照

实际情况填写。

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

1.3 建立第1个Keil C51程序

Keil C51是一个功能很强大的软件,但是使用起来并不复杂。现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。硬件电路参见图0.2,单片机I/O输出低电平可点亮LED。

图0.2 LED闪烁发光电路

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

来启动。

●新建工程。执行Keil C51软件的菜单“Project | New Project…”,弹出一个名为“Create

New Project”的对话框。先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。我们建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。最后,为工程取名为“LedFlash”,并保存。参见图0.3。

图0.3 新建Keil C51工程

●选择CPU。紧接着,Keil C51提示您选择CPU器件。8051内核单片机最早是由鼎

鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。在这里可以选择Philips的第1个器件“80/87C51”,该器件与Intel的8051完全兼容。参见图0.4。

图0.4 选择CPU

●接下来弹出一个如图0.5所示的对话框。该对话框提示您是否要把标准8051的启

动代码添加到工程中去。Keil C51既支持C语言编程也支持汇编语言编程。如果打算用汇编语言写程序,则应当选择“否(N)”。如果打算用C语言写程序,一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。在这里,我们选择“否(N)”,即不添加启动代码。

图0.5 选择是否要添加启动代码

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

●执行菜单“File | New…”,出现一个名为“Text n”(其中n表示序号)的文档。

●接着执行菜单“File | Save”,弹出一个名为“Save As”的对话框。将文件名改为

“main.c”,然后保存,参见图0.6。注意:扩展名“.c”不可省略。

图0.6 保存新建的源程序文件

●添加源程序文件到工程中。现在,一个空的源程序文件“main.c”已经建立,但是

这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。单击Keil C51软件左边项目工作窗口“Target 1”上的“+”,将其展开。然后右击“Source Group 1”文件夹,会弹出如图0.7所示的选择菜单。单击其中的“Add Files to Group 'Source Group 1'”项,将弹出如图0.8所示的对话框。

●先选择文件类型为“C Source file (*.c)”,这时,对话框内将出现刚才保存过的

“main.c”。单击文件“main.c”,再按一次“Add”按钮(请不要多次点击“Add”

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

图0.7 准备添加源程序文件到工程中

图0.8 向工程中添加源程序文件

现在开始输入源程序。先最大化“main.c”源程序窗口,然后请按程序清单1.1输入程序代码。

程序清单 1.1 LED闪烁发光程序main.c

/******************************************************************************* 程序名称:LED闪烁发光

硬件接法:P1.1控制LED,低电平点亮

运行效果:LED亮200ms,灭800ms,反复循环

*******************************************************************************/ #include //包含8051的SFR寄存器定义头文件

sbit LED = P1^1; //定义I/O接口

/******************************************************************************* 函数:Delay()

功能:延时0.01s~2.56s

参数:t>0时,延时(t*0.01)s

t=0时,延时2.56s

说明:定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率

*******************************************************************************/ void Delay(unsigned char t)

{

do

{

TH0 = 0xDC; //设置定时器初值(定时10ms)

TL0 = 0x00;

TR0 = 1; //启动定时器

while ( !TF0 ); //等待定时器溢出

TR0 = 0; //停止定时器

TF0 = 0; //清除溢出标志

} while ( --t != 0 ); //循环t次

}

//主函数

void main()

{

TMOD &= 0xF0; //T0设置在方式1,即16位定时器(不影响T1的模式)

TMOD |= 0x01;

for (;;)

{

LED = 0; //点亮LED

Delay(20); //延时200ms

LED = 1; //熄灭LED

Delay(80); //延时800ms

}

}

●单击Keil C51工具栏的“”图标,弹出名为“Options for Target …Target 1?”的对

话框。单击“Output”标签页,选中“Create HEX File”项,然后“确定”。参见图0.9。

图0.9 编译环境设置

●单击工具栏的按钮“”编译当前源程序。编译结果会显示在输出窗口内。如果是

“0 Error(s), 0 Warning(s).”就表示程序没有问题了(至少是在语法上不存在问题了)。

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

编译,直到通过为止。

●编译后的结果会生成Intel HEX格式的程序文件“LedFlash.hex”。该文件可以被一

类叫做“ISP”(In System Programming)的下载方法烧录到芯片内,下载后就可以

运行了。ISP采用的是串行在线方式下载,因此芯片不必从电路板上取下。

DP-51MCore多核单片机实验仪上的四台P89V51RB2芯片都能很好的支持ISP下载

操作。

1.4 新建A51汇编工程

Keil C51软件也支持A51汇编编程。建立A51工程的操作步骤与建立C51工程基本相同,但有几个要点请注意:

●新建的源程序文件名要以“.A51”或“.ASM”作为后缀。

●A51源程序添加到工程中时,文件类型要选择“Asm Source file(*.s*; *.src; *.a*)”。其它操作步骤都跟建立C51工程相同。

第2章在Keil C51下调试程序

Keil C51的调试功能非常强大,本章我们先做一个初步了解,等以后再慢慢体会。现在仍然以LED闪烁发光程序为例,来具体了解如何进行仿真操作。

2.1 进入仿真状态

如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下,仍然按“”图标进入编译环境设置,找到“Xtal (MHz)”项,填入11.0592。最后点击“确定”。

进入仿真状态很简单,直接点击工具栏红色的“”图标。

2.2 认识各个仿真窗口

图0.1 Keil C51源程序窗口

1.源程序窗口

Keil C51调试界面的中间是源程序窗口,参见图0.1。黄色箭头“”所指为当前即将执行但还没有执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或ROM数据表。以绿色标记的程序行表示曾经执行过的代码。

2.寄存器窗口

图0.2 Keil C51寄存器窗口

Keil C51调试界面的左边是寄存器窗口,参见图0.2。8051的工作寄存器(R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。Value栏显示的是寄存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击psw寄存器左边的“+”,展开后还可以看到其每一位的情况。

3.汇编窗口

单击工具栏的“”图标,源程序窗口会自动切换成汇编窗口,参见图0.3。在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击“”,回到源程序窗口。

4.存储器窗口

单击工具栏的“”图标,将显示出存储器窗口,参见图0.4。8051单片机的存储器分为多个不同的逻辑空间。如果要观察代码存储器的内容,就在地址栏“Address:”内输入“C:地址”,例如:C:0080H。同理,观察内部数据存储器输入“I:地址”,观察外部数据存储器输入“X:地址”。拖动存储器窗口右边的滚动条可观察其它存储单元。存储器窗口有“Memory #1~Memory #4”共4个观察子窗,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择“Modify Memory at …”项,弹出修改对话框,可以随意修改存储单元的内容。

图0.3 Keil C51汇编窗口

图0.4 Keil C51存储器窗口

图0.5 Keil C51变量观察和堆栈窗口

5.变量观察和堆栈窗口

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

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

在“Watch”标签页内,先用鼠标点击一次“type F2 to edit”,再按功能键“F2”,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。

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

2.3 程序的运行控制

Keil C51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:

●复位按钮“”:单击此图标,能够使程序复位,程序将从地址C:0000H处执行。

●全速运行“”:单击此图标,能够使程序全速运行。

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

色。如果要停下来,则可以按此图标。

●单步进入“”:按此图标可以实现程序的单步执行。在遇到函数调用时,会跟踪

进入函数体。

●单步跳过“”:单步执行,遇到函数时视作“1条指令”来执行,不会跟踪进入。

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

按此图标。

●执行到光标“”:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然后按

此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。如果单击

不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,“”

图标也会立即变成灰色,不让您操作。

●设置/清除断点“”:Keil C51支持断点设置功能。单击需要设置断点的行,再单

击此图标,我们会看到该行被一个红色的小方块标记。当程序全速运行时遇到断点,便会自动停下来。Keil C51允许在同一个程序里设置多个断点。清除某个断点的方

法是,将光标停在该行上,再按一次“”图标。另外一种设置/清除断点的快捷方

法是,用鼠标在目标程序行的空白处双击,您不妨试一试。

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

图0.6 外围设备中的P1和T0对话框

2.4 外围设备访问

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

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

现在执行菜单“Peripherals | I/O-Ports | Port 1”,弹出P1端口的界面。在位0~7中,用√表示高电平,无√表示低电平。执行菜单“Peripherals | Timer | Timer 0”,弹出定时器T0的界面。参见图0.6。

弹出的外围设备菜单是可以操作的,不妨试试。

第3章DP-51MCore基本操作

3.1 DP-51MCore简介

DP-51MCore是广州致远电子有限公司最新设计的“多CPU核单片机综合仿真实验仪”。该实验仪内置4片NXP半导体(原Philips半导体)高性能MCU,兼容标准8051架构,16KB 片内Flash ROM,支持ISP下载,能够反复烧录程序代码,内嵌有硬件仿真器。

DP-51MCore多核单片机实验仪是各大专院校建立单片机公共实验室的上佳选择。

主要特点:

●有电源总开关及四个分开关,分开关可以分别控制四台MCU的电源。

●四台MCU主机各自负责一部分外围电路,相互独立运行。

●外围电路尽可能用I/O端口直接控制,避免复杂转换,方便学生理解、编程和

做实验。

●I/O接口尽量不复用,因此做实验时不需要任何连线(通信类实验例外),直

接下载程序代码即可运行。

●进行ISP下载时,通过两只开关就能够切换串行通信口,也无需连线。

●四台MCU主机虽然互相独立,但也可以通过串行接口、红外线、RS-485接

口通信,支持双机通信和群组通信。

●每台MCU主机都内嵌有一个实时在线仿真器。可结合Keil C51(目前主流的

8051系列软件开发平台)仿真,操作方法与纯软件仿真一致。

3.2 以ISP下载方式运行程序

3.2.1 ISP电路说明

图0.1是简化了的P89V51系列单片机的ISP电路图,如果去掉串行接口部分(J1和

U1),就成了传统8051单片机的最小系统电路。部分信号的名称前缀有小写字母n,这表示低电平有效。在电路中,要注意几个要点:

●V CC是电源,必须保证稳定可靠;

●nEA管脚不可悬空,必须连到V CC,或者通过上拉电阻接到V CC;

●复位电路建议采用传统的RC复位,最好多带一个复位按键,以方便操作;

●不可外接看门狗复位电路,否则在ISP期间会引起复位,导致下载失败;

●晶振的频点不是任意的,推荐用11.0592MHz或22.1184MHz;

●注意:nPSEN管脚请悬空处理,不要接GND,这和P89C51系列的情况不同。

图0.1 简化后的P89V51单片机ISP电路

3.2.2 ISP驱动程序Flash Magic简介

Flash Magic是支持众多NXP半导体(原Philips半导体)芯片ISP下载的驱动程序,其中就包括对P89(L)V51RB2、RC2、RD2的支持。该软件可以在下列网站免费下载:

Flash Magic软件的安装方法非常简单,略。

3.2.3 ISP操作步骤

1.连接串行口电缆

注意,电脑DB9连接器的2脚是电脑的接收Rx,3脚是电脑的发送Tx,5脚是GND。通常串行口电缆分“交叉”与“不交叉”两种,要注意区分,不可接反。推荐用带有真正串行口的电脑操作,如果是USB虚拟的串口,则可能会出现下载失败的情况。

2.设置ISP选择开关状态

DP-51MCore实验仪有四台单片机,但是与电脑连接的RS-232接口(在箱体侧面)只

有1个,因此必须进行切换。DP-51MCore采取巧妙的设计,用两只ISP开关来切换,避免了繁琐的接线过程,其实现原理详见光盘里的实验电路图。

具体操作时,如果要把HEX程序文件下载到MCU BANK1,则位于DP-51MCore实验仪中央的ISP选择开关需要扳到“00”状态,旁边的“#1”指示灯同时点亮。如果要下载到MCU BANK3,则ISP选择开关可以扳到“10”状态,指示灯“#3”点亮。

3.运行Flash Magic软件

图0.2 Flash Magic软件操作界面

运行Flash Magic软件,参见图0.2。各步骤操作如下:

Step 1:

COM Port:选择实际使用的串行口,通常为COM1;

Baud Rate:波特率不可设置得过高,推荐用9600;

Device:请选择正确的型号89V51RB2;

Interface:选择None(ISP)。

Step 2:请勾中“Erase blocks used by Hex File”。

Step 3:装入你的程序文件,注意必须为HEX格式。

Step 4:

请勾中“Verify after programming”(编程后校验);

对其它几项如果不了解,请不要勾中。

Step 5:

请先给电路板上电,同时按住复位键不松手,然后点击Flash Magic软件的“Start”按

钮。当出现提示您复位的对话框时再松开复位键,ISP下载过程开始。如果您的电路板没有设置复位键,可以先点击“Start”,然后给电路板上电。

4.运行程序

ISP下载结束后,按一次复位键或者重新上电程序即开始运行。

3.3 以硬件在线仿真的方式调试程序

DP-51MCore实验仪内嵌有仿真功能,在Keil C51软件支持下,能够进行硬件在线仿真。该仿真模式具有操作方便、占用资源少等优点。

我们还是以LED闪烁发光的程序为例,来讲解在Keil C51的支持下如何使用DP-51MCore的仿真功能。具体操作步骤如下:

●使芯片进入仿真状态。对四台P89V51RB2单片机来说,操作方法是相同的。如果

电路还没有上电,请按住K4键不松手,再上电,最后松开K4,即进入仿真状态。

如果电路已经上电,则先按住K4键不松手,再按一次RST键,最后松开K4键,也能进入仿真状态。

●运行Keil C51软件,执行菜单“Project | Open Project”,打开工程“LedFlash.Uv2”。

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

●单击“Debug”标签页,默认的调试器是“Use Simulator”。现在选中“Use: Keil

Monitor-51 Driver”调试器,然后勾中下面的“Go till main”项。参见图0.3。

图0.3 Keil C51的调试选项

●单击右上角的“Settings”按钮。请选择正确的串行通信端口(通常为COM1)和波

特率(推荐9600),然后确定。

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

●单击Keil C51工具栏的“”图标。这时,会弹出一个警告对话框,提示当前的

Keil C51软件是“EV ALUATION VERSION”(评估版)。单击“确定”按钮,数秒

钟后进入仿真调试状态。如果未能进入,请仔细检查操作步骤是否有误,然后再试

一次。

●仿真调试方法与0讲解的内容几乎完全相同。

●一旦进入全速运行,请不要点击“”停止运行,这一点与纯软件仿真不同。正确

的方法是,按住K4键不松手,按一次RST键,最后松开K4,程序即停止运行。再次单击“”图标,可退出Keil C51的仿真状态。

●芯片退出仿真状态。退出的方法非常简单,先按住RST不松手,再利用Flash Magic

软件进行一次ISP下载就能退出仿真状态。换句话说,可以直接进行ISP操作,仿真状态自然会退出。

3.4 内嵌在线仿真占用的系统资源

通过前面的仿真操作,我们已经看到,在内嵌仿真器真的是功能强大,而且操作非常简单。但是,任何仿真方式(包括专业仿真器)都不能做到100%的“真实”,总是与实际芯片有些差别。内嵌的仿真器也不例外,要占用一小部分系统资源。希望读者能够了解一下这些限制,在以后调试程序的时候不致茫然。如果在您的程序里确实需要用到被占用的资源,则可以考虑改用ISP下载方式调试程序。

内嵌仿真器所占用的系统资源为:

●动态地占用2个字节的程序堆栈。因此,在调试程序的时候,有时会出现堆栈指针

SP的数值比预期值大的情况。

●占用单片机的串行口资源。因为内嵌仿真器是通过串行口与Keil C51软件通信的,

因此,单片机的串行口资源被占用。这些资源包括:P3端口的RXD/P3.0和TXD/P3.1管脚、串行口中断向量、串行口控制寄存器SCON和SBUF。通常串行口的波特率发生器是用定时器T1来做的,但是内嵌仿真器并不占用T1,您在程序里可以放心地使用这个定时器(当然,您不能拿它再来做波特率发生器)。

●T2定时器被占用。在Intel公司最早推出的8051单片机中不存在T2定时器,在紧

接着推出的8052中新增了T2。以后其它厂商凡采用8052内核的兼容单片机都带有T2定时器。T2定时器也可以作为串行口通信的波特率发生器,内嵌仿真器正是这样用的。与T2相关的资源自然都被占用,如T2的中断向量、T2的控制寄存器T2CON、TH2、TL2、RCAP2H、RCAP2L等。

第4章Proteus 6 Professional简介

4.1 Proteus功能简介:

Proteus 6 Professional的窗口界面:

先简单介绍各部分的作用:

1.原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理图的。

注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。同时,

它的操作是不同于常用的WINDOWS应用程序的,正确的操作是:中键放缩原理图;

左键放置元件;右键选择元件;双击右键删除元件;先右键后左键编辑元件属性;

先右键后左键拖动元件;连线用左键,删除用右键。

2.预览窗口(The Overview Window):它可显示两个内容,一个是:当你在元件

列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落

在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击

鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框

里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来

改变绿色的方框的位置,从而改变原理图的可视范围。

3.模型选择工具栏(Mode Selector Toolbar):

主要模型(Main Modes):

1* 选择元件(components)(默认选择的)

2* 放置连接点(交叉点)

3* 标签(用总线时用到)

4* 文本

5* 用于绘制总线

6* 用于放置子电路

7* 用于即时编辑元件(用法:先单击该图标再单击要修改的元件)

配件(Gadgets):

1* 终端接口(terminals),有VCC、地、输出、输入等接口

2* 器件引脚

3* 仿真图表(graph)

4* 录音机

5* 信号发生器(generators)

相关主题
文本预览
相关文档 最新文档