LPC900系列单片机轻松上手
1 概述
LPC900 FLASH单片机,是PHILIPS公司推出的一款高性能、微功耗51内核单片机,主要集成了字节方式的I2C总线、SPI总线、增强型UART接口、比较器、实时时钟、E2PROM、AD/DA转换器、ISP/IAP在线编程和应用中编程等一系列有特色的功能部件。LPC900系列单片机提供从8脚DIP到28脚的PLCC等丰富的封装形式,可以满足各种对成本、线路板空间有限制而又要求高性能、高可靠性的应用。且其具有高速率(6倍于普通51单片机),低功耗(完全掉电模式功耗低于1uA),高稳定性,小封装,多功能(内嵌众多流行的功能模块),多选择等特点(该系列有多款不同封装,不同价位,不同功能的型号供用户选择)。
2 系统介绍
一个单片机系统的开发应用,自然离不开硬件设计和软件设计。一般情况下,编译器、仿真器和编程器是必须的,如果程序的逻辑关系很简单也可以不使用仿真器,具有ICP、ISP功能的器件也可使用ICP、ISP下载程序(可参照《P89LPC932单片机的ISP应用设计》)。对于LPC900系列单片机的开发应用,下面主要就一个简单的程序来介绍如何使用它的专用编程器CP900下载程序,同时也对编译器KEIL C51的操作做一个简单的介绍。希望通过下面介绍,使您轻易上手,轻松玩转LPC900。 2.1 硬件 本系统电路相对简单,外围器件只需要一只三极管、两个电阻和一只发光二极管。如图2.1,LPC900系列单片机的时钟源选择片内RC振荡器,内部复位,选择一个I/O口(本系统中选用P2.6)作为LED的控制端口,当口电压为低电平时9012导通,LED亮;当口电压输出高电平时,9012截止,LED灭,在程序上利用软件延时就可达到闪烁的目的。 +5VD1LEDP2.6R15.1KQ19012R2100 图2.1 硬件连接图 2.2 软件 软件的开发过程中编译软件是不可缺少,您可以选择任何一款您熟悉的编译软件,在上面编辑您的程序,改正语法和逻辑上的错误,最后把它编译成HEX文件。本例中程序编译使用的是KEIL C51(详细操作见第3节) - 1 -===例程(汇编语言)如下:
;************************************************* ;文件名:L_Light.ASM
;功能:点亮LED,并控制其闪烁。软件控制延时 ;*************************************************
P2M1 EQU 0A4H ;定义特殊功能寄存器 P2M2 EQU 0A5H
LEDCON BIT P2.6 ;定义LED控制端口
ORG 0000H AJMP MAIN ORG 0100H MAIN:
MOV P2M1,#040H ;设置P2口输出方式 MOV P2M2,#040H ;------------------------------------------ ;延时程序 MAIN_L1: MOV MAIN_L2: MOV MAIN_L3: MOV
R7,#5 R6,#0 R5,#0
DJNZ R5,$ DJNZ R6,MAIN_L3 DJNZ R7,MAIN_L2 ;------------------------------------------
CPL END
;************************************************* 相应C51程序
;************************************************* ;文件名:L_Light.C
;功能:点亮LED,并控制其闪烁。软件控制延时
;************************************************* #include \"reg932.h\"
sbit ledcon = P2^6;
void main()
{
int i; //定义延时变量 P2M10x64;
P2M20x64; //设置P2口输出方式 ledcon0;
//定义LED控制口线
LEDCON
;取反LEDCON,控制LEDCON闪烁
SJMP MAIN_L1
- 2 -
;------------------------------------------
while(1)
{
//不停循环,控制ledcon闪烁
;---------------------------
i 0x7000; //延时程序
while(i--);
;---------------------------
ledcon ~ledcon; //取反ledcon
}
;*************************************************
程序经过编译之后生成HEX文件,紧接着就是要把它下载到芯片里面。我是使用LPC900系列单片机专用编程器CP900来完成这一步的,具体操作如下:
(1) 将芯片正确的放进适配器中,注意芯片引脚位置和缺口的方向。启动CP900,其软件界面如图2.2。
}
;------------------------------------------
==
图2.2 CP900主界面
(2) 进行器件选择,单击左边窗口[选择]按钮,弹出芯片的选择窗口,上面有各种LPC900系列单片机,选择您所使用的单片机型号(如LPC932),确定。如图2.3,
- 3 -
图2.3 选择器件窗口
(3) 装载文件。选择菜单中[文件]->[装载],打开我们刚刚生成的HEX文件。如图2.4:
图2.4 装载窗口
(4) 配置字的设置。单击[配置]按钮,弹出如图2.5窗口,通过该窗口用户可以对芯片的看门狗、复位控制、掉电检测、振荡器类型、加密等级和引导向量进行配置。这些参数设置的正确与否对LPC900系列单片机是否能正常运行十分重要。
特别值得一提的是引导状态字和引导向量:引导状态字一般有00和01两种状态,当芯片的引导状态字是00时,芯片复位后会执行用户程序;芯片的引导状态字为01(且引导向量无误)时,芯片复位后将直接进入ISP功能,这样系统将无法运行用户程序。以P89LPC932为例,芯片的引导向量是芯片ISP的入口地址,出厂默认设置为1E,建议您在一般情况下不要修改它。您在进行该项配置的时候应该注意,如果将向量字配置成非1E,那么芯片将无法再次使用它的ISP功能,除非用专用编程器(如CP900)重新配置。因此引导状态字必须设置为00,引导向量尽量不要改动。因为我们现在运行的是一个最简单的程序,所以配置上设置为WDT禁止、内部复位、掉电检测禁止、WDSE禁止、使用内部RC振荡器、引导状态字设为00,引导向量设置为1E。
- 4 -
图2.5 配置字设置窗口
如果您在配置之前想查看一下芯片配置字或配置之后想确认一下有没有写入芯片,可以点击左边[读取]按钮,在这个选项里,可以获得芯片的标识码、全局CRC、UCFG1、UCFG2、引导状态字、引导向量字和各扇区的加密字等等,紧接着您点击[配置]按钮这时您看到的就是您芯片的配置字了。
确认无误后可以点击[编程]按钮弹出编程窗口如图2.6,在这个窗口中,可以设定UCFG1、引导向量字、加密位。还可以选择编程前擦除、编程后校验等等,CP900编程器还有一项独特的功能,就是编程的地址可以人为设定。最后点击编程就可以把程序写到芯片里面了。通过[校验]可以查看程序是否烧入。
图2.6 编程窗口
然后把您的芯片插入您的实验板,通上电源就可以看见LED不停的闪烁,实验成功。“良好的开端是成功的一半”,现在,您可以开始LPC900 FLASH单片机的开发之旅了。
- 5 -
3 编译软件KEIL C51的使用
Keil C51是Keil Software、Inc/Keil Elektrinik GmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立和管理、编译、连接、目标代码的生成、软、硬件的仿真等完整的开发流程。尤其C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目的时候非常理想。
下面以Keil环境下的汇编为例,来说明一下它的操作,首先打开Keil,单击[File]新建一个文档文件,在上面敲进您的程序,保存为ASM文件。然后新建一个工程文件,因为Keil中文件是通过工程来管理的,而不是以前单一文件的模式。用户所有的文件包括源程序、头文件和一般的文本文件,都将放在工程里面统一管理。具体方法:点击[Project]->[New Project...]弹出如下图3.1窗口,在文件名处输入工程名,并点击保存。
图3.1 新建工程窗口
接着会出现如图3.2对话框,在左边窗口会把Keil所支持的器件按照生产厂商进行分组列表,请选择您所使用的芯片(本系统选择Philips的P89LPC932)。
- 6 -
图3.2 器件选择窗口
点击确定之后会在左边窗口处出现一个目标工程Target 1,展开后有一个Source Group 1文件,右键单击,选择[Add Files to Group \"Source Group 1\"]。如图3.3。
图3.3 文件加载窗口(a)
- 7 -
把文件类型选为ASM,从列表中选择您刚才保存的ASM文件,将其加入工程中。如图3.4。
图3.4文件加载窗口(b)
这时您可以点击[Project]->[Build target]编译您的文件,改正程序中语法和逻辑上的错误,然后点击[Project]->[Option for target \"target 1\"]出现如下图3.5的窗口,选择[Output],把Create Hex File选项打钩,再次编译程序将生成一个HEX文件。
图3.5 目标输出设置
也可以选择[Debug]进行仿真调试的设置,如图3..6,左边是软件仿真的设置,右边是硬件仿真的设置,用户可进行仿真器类型、仿真器参数设置、启动运行选择、仿真配置记忆选择和仿真目标器件驱动程序选择等的设置。
- 8 -
图3.6 仿真设置窗口
- 9 -
因篇幅问题不能全部显示,请点此查看更多更全内容