C8051F020实验指导书.docx

上传人:b****8 文档编号:29060593 上传时间:2023-07-20 格式:DOCX 页数:34 大小:942.94KB
下载 相关 举报
C8051F020实验指导书.docx_第1页
第1页 / 共34页
C8051F020实验指导书.docx_第2页
第2页 / 共34页
C8051F020实验指导书.docx_第3页
第3页 / 共34页
C8051F020实验指导书.docx_第4页
第4页 / 共34页
C8051F020实验指导书.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C8051F020实验指导书.docx

《C8051F020实验指导书.docx》由会员分享,可在线阅读,更多相关《C8051F020实验指导书.docx(34页珍藏版)》请在冰豆网上搜索。

C8051F020实验指导书.docx

C8051F020实验指导书

单片机实验指导书

 

 

使用特别说明:

(1)每次实验前,请仔细阅读实验指导,连线完毕,检查无误后,方可打开电源。

即连线时必须在断电状态下。

(2)程序运行过程中,不要关闭电源,如果要断电,必须停止运行程序,并且退出程序调试状态,否则会引起KEILC软件非正常退出,甚至引起DICE-EC5仿真器工作异常。

(3)如出现上述

(2)的的误操作,引起DICE-EC5仿真器工作异常,可对DICE-EC5仿真器进行复位。

(在光盘中找到文件夹“USBReset”中的“USBDebugAdapterFirmwareReset”文件,双击运行,在弹出的对话框中点击“Updatefirmware”按钮,在提示成功后,点击“OK”按钮,退出复位程序。

DICE-EC5仿真器即可正常工作。

在下一次调试、下载程序时会提示“Doyouwanttoupdateserialadapternow?

”,点击“确定”即可。

第一章:

实验设备简介

1、1系统实验设备的组成

DICE-C8051F嵌入式实验/开发系统由C8051F020CPU板、DICE-EC5仿真器与系统实验板三部分组成,应用该设备可进行片上系统单片机较典型应用的实验,请参见以下介绍。

1、2SiliconLabsC8051F单片机开发工具简介

1、2、1开发工具概述

SiliconLabs的开发工具实质上就就是计算机IDE调试环境软件及计算机USB到C8051F

单片机JTAG口的协议转换器(DICE-EC5)的组合。

SiliconLabsC8051F系列所有的单片机片内均设计有调试电路,该调试电路通过边界扫描方式获取单片机片内信息,通过4线的JTAG接口与开发工具连接以便于进行对单片机在片编程调试。

DICE-C8051F嵌入式实验/开发系统中的C8051F020CPU板上的单片机为C8051F系列中的F020。

仿真器(DICE-EC5)一端与计算机相连,另一端与C8051F单片机JTAG口相连,应用Keil的uVision2调试环境就可以进行非侵入式、全速的在系统编程(ISP)与调试。

SiliconLabs开发工具支持观察与修改存储器与寄存器支持断点、观察点、堆栈指示器、

单步、运行与停止命令。

调试时不需要额外的目标RAM、程序存储器、定时器或通信通道,并且所有的模拟与数字外设都正常工作。

1、2、2开发工具主要技术指标

●支持的目标系统:

所有C8051Fxxx系列单片机。

●系统时钟:

最大可达25Mhz。

●通过USB接口与PC机连接。

●支持汇编语言与C51源代码级调试。

●工具支持(KeilC)。

1、2、3IDE软件运行环境

要求PC机能够运行开发工具软件并能与串行适配器通信。

对PC机有如下系统要求:

●Windows95/98/Me/NT/2000/XP操作系统

●32MbRAM

●40Mb自由硬盘空间

●空闲的USB口

1、2、4开发工具与PC机硬件连接

在系统编程与调试环境如图下所示。

硬件连接及软件安装:

●将USB串行电缆的一端与教学机的DICE-EC5仿真器USB接口连接;

●连接USB串行电缆的另一端到PC;

●给目标系统上电;

●插入CD并运行“SETUP、EXE”,将IDE软件安装到您的PC机;

●在PC机的开始菜单的“程序”项中选择keiluVision2图标,运行IDE软件。

1、3DICE-C8051F嵌入式实验/开发系统简介

1、3、1C8051F020CPU板概述

C8051F020CPU板就是为了便于安装而设计的;C8051F020CPU板就是将C8051F020

的所有引脚(100个引脚)引到四个双排针;该四组双排针可与不同用户设计的应用系统

连接,如在该教学系统上将与系统实验板连接。

说明:

C8051F020CPU板就是将C8051F020的所有引脚(100个引脚)引到四个双排针,分别为JX1、JX2、JX3、JX4,四个双排针的内圈100个排针(内圈每个引脚注明引脚含义)与C8051F020芯片的对应引脚连接。

而四个双排针的外圈100个排针(外圈标有引脚号)部分引脚悬空,而大部分引脚已经与实验仪上的实验模块连接。

(具体连接请瞧硬件连接原理图)。

因此,本实验/开发系统大部分实验模块只要将其相应引脚的短路块插好,即可实现与C8051F020单片机系统的连接。

而一部分独立实验模块,必须通过导线与C8051F020单片机连接,连接前把要用到的引脚上的短路块拔掉,然后用导线将内圈对应引脚与外部模块连接。

实验完毕后再把相应的短路块插好。

1、3、2C8051F020片上系统单片机片内资源

①、模拟外设

(1)逐次逼近型8路12位ADC0

转换速率最大100ksps

可编程增益放大器PGA

温度传感器

(2)8路8位ADC1输入与P1口复用

转换速率500ksps

可编程增益放大器PGA

(3)两个12位DAC

(4)两个模拟电压比较器

(5)电压基准内部提供2、43V

外部基准可输入

(6)精确的VDD监视器

②、高速8051微控制器内核

流水线式指令结构速度可达25MIPS

22个矢量中断源

③、存储器

片内4352字节数据RAM

64KBFlash程序存储器可作非易失性存储

外部可扩展的64KB数据存储器接口

④、数字外设

8个8位的端口I/O

I2C、SPI、2个增强型UART串口

可编程的16位计数器/定时器阵列(PCA)

5个通用16位计数器/定时器

专用的瞧门狗WDT

更详细资料可参见SiliconLabsC8051F02xdatasheet

1、3、3DICE-C8051F嵌入式实验/开发系统硬件组成

(1)CPU板:

CPU核心模块采用C8051F020芯片,该芯片就是C8051F系列单片机中功能最为其全的一款;

(2)片内:

64KFLASH,4KXRAM

片外扩展:

256KFLASH,32KXRAM

(3)CPU板C8051F020芯片I/0引脚全部引出,可以与用户外部电路连接;

(4)实验系统带有JTAG接口,并配有DICE-EC3型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;

(5)4*4阵列式键盘;

(6)8位逻辑电平开关输出、8位LED逻辑电平显示;

(7)6位动态八段LED数码管;

(8)2路单脉冲信号发生电路与1路8MHZ时钟发生电路;

(9)时钟分频电路;

(10)模拟量发生器电路与逻辑笔电路;

(11)8*8LED点阵及驱动电路;

(12)128*64LCD液晶显示屏;

(13)蜂鸣器电路;

(14)直流电机测速电路;

(15)四相步进电机及驱动电路;

(16)继电器电路及接口;

(17)双通道RS-232接口;

(18)SPI接口,LED数码管显示;

(19)IIC接口,接24C01串行EEPROM;

(20)IIC接口,PCF8563日历时钟;

(21)8路12位AD,2路12位DA接口;

(22)D12USB从机通信;

(23)SL811USB主机通信;

(24)RTL801910M以太网通信;

1、3、4DICE-C8051F嵌入式实验/开发系统地址及初始化说明

●地址分配如下:

0x0000-0x7fff,数据存储器SRAM地十范围

0x8000-0x87ff,D12_CS片选

0x8800-0x8fff,SL811_CS片选

0x9000-0x97ff,RTL8019_CS片选

0x9800-0x9fff,LCD_CS片选

0xA000-0xA7ff,保留

0xA800-0xAfff,保留

0xB000-0xB7ff,保留

0xB800-0xBfff,保留

0xc000-0xffff(x16),Flash,片选地址由P4低4位端口确定

●系统初始化:

C8051F020CPU板使用外部22、1184M晶振,系统初始化后应用外部22、1184M晶振,如果不进行系统初始化,系统将使用内部晶振,默认值为2M,也可以通过设置OSCICN寄存器改变内部晶振的大小(可选值为2M、4M、8M、16M)。

●端口初始化:

我们根据c8051F020CPU板及实验系统设计方案,配置交叉开关,为UART0、SPI、SMBus、UART1、CEX0、CP0、T0、T1、INT0、INT1、INT2与INT3分配端口引脚。

另外,我们将外部存储器接口配置为复用方式并使用高端口。

配置步骤如下:

(1)按CP0E=1,ECI0E=0,PCA0ME=001,UART0EN=1,SPI0EN=1,SMB0EN=1设置XBR0=0x8f;

(2)按SYSCKE=0,T2EXE=0,T2E=0,INT1E=1,T1E=1,INT0E=1,T0E=1,CPI1E=0设置XBR1=0x1e;

(3)按WEAKPUD=0,XBARE=1,位5为0用T4EXE=0,T4E=0,UART1E=1,EMIFLE=0,CNVSTE=0设置XBR2=0x44

(4)将外部存储器接口配置为复用方式,并使用高端口,有PRTSEL=1,EMD2=0。

(5)将作为数字输入的端口1引脚配置为数字输入方式,设置P1MDIN为0xFF。

(6)通过设置P0MDOUT=0x34、P1MDOUT=0xfd、P2MDOUT=0xf0、P3MDOUT=0xff,将低端口输出方式设置为推挽方式。

设置高端口输出方式P74OUT=0xf7;总线输出方式应考虑工作频率与驱动能力,在高速与高驱动时总线应设置为推挽方式,在低速与低驱动时漏极开路也可满足要求,但稳定性不高。

(7)设置外部存储器配置EMI0CF=0x2d;设置外部存储器时序控制EMI0TC=0x9e;如果LCD不能正常显示可以使EMI0CF=0x2f,EMI0TC=0xff设置为最大值;也可以减小外部晶振或使用内部晶振。

 

第二章集成开发环境KEILC软件使用指南

2.1KEILC软件具体使用说明

KeilC安装:

见、、\tools\KeilC51v751a_Full\安装说明、txt;

安装完成后,如果要使用DICE-EC5仿真器来仿真C8051F系统单片机,

还需要安装驱动程序:

进入“Keil驱动-V2、21”,点击“SiC8051F_uv2”,直至安装完毕。

进入 Keil C51 后,屏幕如下图所示。

几秒钟后出现编辑界

启动Keil C51时的屏幕

进入Keil C51后的编辑界面

简单程序的调试:

 学习程序设计语言、学习某种程序软件,最好的方法就是直接操作实践。

下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法与基本的调试技巧。

 

 1)建立一个新工程

 单击Project菜单,在弹出的下拉菜单中选中New Project选项

2)然后选择您要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51。

如下图所示,然后点击保存、

3)这时会弹出一个对话框,要求您选择单片机的型号,您可以根据您使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还就是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏就是对这个单片机的基本的说明,然后点击确定、

(注意:

我们实验系统使用的单片机为SiliconLaboratories公司的C8051F020芯片)。

4)完成上一步骤后,屏幕如下图所示

到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。

 5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

新建文件后屏幕如下图所示

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。

注意,如果用C语言编写程序,则扩展名为(、c);如果用汇编语言编写程序,则扩展名必须为

(、asm)。

然后,单击“保存”

6)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单

然后单击“Add  Group ‘Source Group 1’” 屏幕如下图所示

选中Test、c,然后单击“Add ”屏幕好下图所示

“Source Group 1”文件夹中多了一个子项“Text1、c”了不?

子项的多少与所增加的源程序的多少相同 。

 7)现在,请输入如下的C语言源程序:

 

 #include           //包含文件

 #include

 void main(void)           //主函数

 {    

  SCON=0x52;

  TMOD=0x20;

  TH1=0xf3;

  TR1=1;               //此行及以上3行为PRINTF函数所必须

  printf(“Hello I am KEIL、 \n”);   //打印程序执行的信息

  printf(“I will be your friend、\n”);

  while

(1);

 } 

 在输入上述程序时,读者已经瞧到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。

程序输入完毕后,如下图所示:

8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),

屏幕如下所示 :

9)调试程序:

在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“Serial Windows #1”选项,就可以瞧到程序运行后的结果,其结果如下图所示 

至此,我们在Keil C51上做了一个完整工程的全过程。

但这只就是纯软件的开发过程,如何使用程序下载器瞧一瞧程序运行的结果呢?

下一节我们将介绍KeilC软件与DICE-EC3仿真器的配置说明。

2.2KEILC软件与DICE-EC5仿真器配置说明

1.本配置就是针对本公司的仿真开发工具DICE-EC5的配置方法;

2.KeilC软件配置如下:

打开Keil软件,新建一工程,选择SiliconLaboratories公司的C8051F020作为CPU(根据实际CPU):

(1)选择配置如下图:

(2)显示如下图:

(3)OUTPUT选项配置:

 

(4)A51汇编选项:

 

(5)DEBUG选项:

点击”Settings”按钮,弹出以下对话框,选择USBDebugAdapter1、2、0、0

此时必须确定DICE-EC5仿真器与PC处于联机状态!

点击确定,完成设置。

第三章实验指导

3、1C8051F单片机I/O口交叉开关设置

优先权交叉开关译码器,或称为“交叉开关”,按优先权顺序将端口0–3的引脚分配给器件上的数字外设(UART、SMBus、PCA、定时器等)。

端口引脚的分配顺序就是从P0、0开始,可以一直分配到P3、7。

UART0有最高优先权,而CNVSTR具有最低优先权。

为数字外设分配端口引脚的优先权顺序列于下图。

当交叉开关配置寄存器XBR0、XBR1与XBR2中外设的对应允许位被设置为逻辑‘1’时,交叉开关将端口引脚分配给外设,相关的特殊功能寄存器的定义见数据手册或相关书籍。

交叉开关引脚分配示例:

在本例中,我们将配置交叉开关,为UART0、SMBus、UART1、/INT0与/INT1分配端口引脚(共8个引脚)。

另外,我们将外部存储器接口配置为复用方式并使用低端口。

我们还将P1、2、P1、3与P1、4配置为模拟输入,以便用ADC1测量加在这些引脚上的电压。

配置步骤如下:

(1)按UART0EN=1、SMB0EN=1、INT0E=1、INT1E=1与EMIFLE=1设置XBR0、XBR1与XBR2,则有:

XBR0=0x05,XBR1=0x14,XBR2=0x02。

(2)将外部存储器接口配置为复用方式并使用低端口,有:

PRTSEL=0,EMD2=0。

(3)将作为模拟输入的端口1引脚配置为模拟输入方式:

设置P1MDIN为0xE3(P1、4、P1、3与P1、2为模拟输入,所以它们的对应P1MDIN被设置为逻辑‘0’)。

(4)设置XBARE=1以允许交叉开关:

XBR2=0x42。

●UART0有最高优先权,所以P0、0被分配给TX0,P0、1被分配给RX0。

●SMBus的优先权次之,所以P0、2被分配给SDA,P0、3被分配给SCL。

●接下来就是UART1,所以P0、4被分配给TX1。

由于外部存储器接口选在低端口(EMIFLE=1),所以交叉开关跳过P0、6(/RD)与P0、7(/WR)。

又因为外部存储器接口被配置为复用方式,所以交叉开关也跳过P0、5(ALE)。

下一个未被跳过的引脚P1、0被分配给RX1。

●接下来就是/INT0,被分配到引脚P1、1。

●将P1MDIN设置为0xE3,使P1、2、P1、3与P1、4被配置为模拟输入,导致交叉开关跳过这些引脚。

●下面优先权高的就是/INT1,所以下一个未跳过的引脚P1、5被分配给/INT1。

●在执行对片外操作的MOVX指令期间,外部存储器接口将驱动端口2与端口3。

(5)我们将UART0的TX引脚(TX0,P0、0)、UART1的TX引脚(TX1,P0、4)、ALE、/RD、/WR(P0、[7:

3])的输出设置为推挽方式,通过设置P0MDOUT=0xF1来实现。

(6)我们通过设置P2MDOUT=0xFF与P3MDOUT=0xFF将EMIF端口(P2、P3)的输出方式配置为推挽方式。

我们通过设置P1MDOUT=0x00(配置输出为漏极开路)与P1=0xFF(逻辑‘1’选择高阻态)禁止3个模拟输入引脚的输出驱动器。

3、2数字I/O端口实验

一、实验目的掌握C8051F020I/0的使用,学习延时子程序的编写。

二、实验内容

P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

三、实验原理介绍

C8051F020有8位端口组织的64个数字I/O引脚。

低端口(P0、P1、P2、P3)既可以按位寻址,也可以按字节寻址。

高端口(P4、P5、P6、P7)只能按字节寻址。

所有引脚都耐5V电压,都可以被配置为漏极开路或推挽输出方式与弱上拉。

C8051F020器件有大量的数字资源需要通过4个低端I/O端口P0,P1,P2,P3才能使用。

但本实验中主要介绍的I/O口主要作为通用的端口I/O(GPIO)引脚来使用。

每个端口引脚的输出方式都可被配置为漏极开始或推挽方式,缺省状态为漏极开路。

在推挽方式,向端口数据寄存器中的相应位写逻辑0将使端口引脚被驱动到GND,写逻辑1将使端口引脚被驱动到VDD。

在漏极开路方式,向端口数据寄存器中的相应位写逻辑0将使端口引脚被驱动到GND,写逻辑1将使端口引脚处于高阻状态。

当系统中不同器件的端口引脚有共享连接,即多个输出连接到同一个物理线时(例如SMBus连接中的SDA信号),使用漏极开路方式可以防止不同器件之间的争用。

I/O端口的输出方式由PnMOUT寄存器中的对应位决定。

本实验中我们用P1口驱动发光二极管点亮,因此必须将P1口定义为推挽方式。

四、电路原理图

五、实验程序框图

六、实验步骤

程序功能:

由P1口驱动发光二极管循环点亮。

P1、0~P1、7接L1~L8(JP14)

 

3、3定时器实验

一、实验目的掌握C8051F020内部定时器/计数器的应用。

二、实验内容

本文件就是LED灯闪烁实验程序;使用定时器0定时1秒,LED灯每隔1秒亮1秒;使用外部22、1184MHz晶振。

三、实验原理介绍

C8051F020内部有5个计数器/定时器T0,T1,T2,T3与T4。

这些计数器/定时器都就是16位,其中T0、T1、T2与标准8051中的计数器/定时器兼容。

T3、T4可用于ADC、SMBus或作为通用定时器使用,T4还可用作C8051F02x中第二串口(UART1)的波特率发生器。

这些计数器/定时器可以用于测量时间间隔,对外部事件计数或产生周期性的中断请求。

定时器0与定时器1几乎完全相同,有4种工作方式。

定时器2增加了一些时器0与定时器1中所没有的功能。

定就是器3与定时器2类似,但没有捕捉与波特率发生器方式。

定时器4与定时器2完全相同,可用作UART1的波特率发生器。

下表所列为定时器的工作方式:

定时器0与定时器1

定时器2

定时器3

定时器4

13位计数器/定时器

自动重装载的16位计数器/定时器

自动重装载的16位计数器/定时器

自动重装载的16位计数器/定时器

16位计数器/定时器

带捕捉的16位计数器/定时器

带捕捉的16位计数器/定时器

自动重装载的8位计数器/定时器

UART(0)的波特率发生器

UART1的波特率发生器

两个8位计数器/定时器(仅限于定时器0)

本实验中使定时器0工作在方式1(TMOD=0x01),TIM0定时器时钟为系统时钟的1/12(CKCON=0x00)。

具体寄存器定义请参照教科书。

四、实验程序框图

(注:

实验时不需要液晶显示)

五、实验步骤

确认P3、5口与引脚49上插有短路块,则发光二极管L1与P3、5已连。

调入程序、装载、运行,观察发光二极管就是否每隔1秒亮1次。

3、4外部中断实验

一、实验目的熟悉C8051F020外部中断6/7的使用。

二、实验内容

此程序测试C8051F020的中断6、7,可在相应的两个中断中设断点观察,当单脉冲按钮按下之后,进入中断处理时P4、4控制蜂鸣器鸣叫一声,发光二极管也同时闪烁一次。

三、实验原理介绍

CIP-51包含一个扩展的中断系统,支持22个中断源,每个中断源有两个优先级。

中断源在片内外设与外部输入之间的分配随器件的不同而变化。

每个中断源可以在一个SFR中有一个或多个中断标志。

当一个外设或外部源满足有效的中断条件时,相应的中断标志被置为逻辑1。

如果中断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1