论文导读::。具有教小的64脚封装。本文设计的精确计数系统功能为:当按下按钮时。
论文关键词:Proteus,LPC2124,精确计数
1 引言
LPC2124是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU的微处理器,并带有256KB嵌入的高速Flash存储器和16KB的RAM。LPC2124具有教小的64脚封装,极低的功耗,多个32位定时器,4路10位ADC,PWM输出,46个GPIO以及多达9个外部中断,并且内置了多种串行通信接口物理论文,支持JTAG、ISP、IAP等多种编程方式,使得LPC2124能够适用于工业控制、访问控制、医疗系统以及其他各种类型的应用[1,2]。
Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,是一款新型的嵌入式系统设计、分析与仿真软件。Proteus软件不仅能够实现数字电路和模拟电路的设计与分析,而且还能够实现微处理器与外设的混合电路设计,可以直接在原理图的基础上进行微处理器的软件协同仿真和功能验证。Proteus软件只带汇编编译器(不支持C语言),但可以将其与Keil集成开发环境进行联调,达到很好的仿真效果[3,4]。
本文设计的精确计数系统功能为:当按下按钮时,数码管的计数加1,当放开按钮时,数码管的计数保持不变;开始时数码管的计数为0,当数码管的计数达到15(即16进制的F)时又重新从0开始计数。系统软件的设计采用Keil软件完成,编译连接之后得到可执行的hex文件;系统硬件的设计采用Proteus软件完成;软硬件的协同仿真是在Proteus中加载hex文件进行精确计数的测试。
2 硬件系统的设计
精确计数系统采用LPC2124微处理器作为核心器件,并为其提供了两组电源分别为3.3V和1.8V。硬件系统主要由以下四部分电路组成:XTAL1和XTAL2两个端口连接晶体振荡器组成时钟电路,RST端口连接一个按钮组成复位电路物理论文,P0.0-P0.6端口连接一个共阴极的7段数码管组成输出电路,P0.7端口连接一个按钮组成输入电路论文格式。在精确计数系统中,P0.0-P0.7共8个端口的功能都是GPIO,P0.0-P0.6共7个端口的方向都为输出模式,P0.7端口的方向为输入模式[5]。采用Proteus软件设计的硬件系统原理图,如图1所示。

图1 硬件系统原理图
3 软件系统的设计
精确计数系统软件的设计主要在于对LPC2124微处理器相关寄存器的设置,从而控制数码管计数的显示。软件系统的设计采用Keil软件完成,并最终得到可执行的hex文件。软件系统的设计主要通过以下几个步骤来实现,程序流程图,如图2所示。

图2 软件系统流程图
1.初始化系统时钟并设置相应的寄存器。晶体振荡器的频率为10MHz,LPC2124微处理器的时钟频率为60MHz,设置相应的寄存器程序如下:
PLLCON=1; //使能PLL
PLLCFG=(60/10-1)|(1<<5); //M=5+1,P=1
2.初始化相应端口的功能为GPIO,设置相应的寄存器程序如下:
PINSEL0=PINSEL0|0xFFFF; //P0.0-P0.7共8个端口功能为GPIO
3.初始化相应端口的方向为输入或输出模式,设置相应的寄存器程序如下:
IO0DIR=0x7F; //P0.0-P0.6共7个端口为输出,P0.7端口为输入
4.开始计数数码管显示0物理论文,设置相应的寄存器程序如下:
IO0SET=0x3F; //P0.0-P0.5共6个端口输出高电平,P0.6端口输出低电平
5.循环检测按钮是否被按下,并进行相应的处理,程序模块如下:
void button_test( )
{
int i=0,key;
unsigned charledcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,
0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //显示0-9,A-F的笔段代码表
while(1)
{
key=IO0PIN&(1<<7); //获取P0.7端口的电平,即检测按钮是否被按下
if(key==0) //按钮被按下
{
i++;
if(i==16) //计数器加到16
{
i=0;
IO0CLR=ledcode[15]; //清除数码管上次计数的显示
}
else
IO0CLR=ledcode[i-1]; //清除数码管上次计数的显示
IO0SET=ledcode[i]; //数码管显示新的计数
while(1)
{
key=IO0PIN&(1<<7);
if(key!=0) //按钮被放开
break;
}
}
}
}
4 仿真与结论
精确计数系统软硬件的协同仿真是在Proteus中加载hex文件进行计数的测试。经仿真测试结果表明:本精确计数系统能够根据按钮的按下与否准确进行0到15(即16进制的F)的计数,并通过数码管进行准确显示,达到了设计的目标要求。同时,在此基础之上,可以对系统的软硬件功能进行扩充,以适用于其他方面的应用。
参考文献:
[1]韦文祥,朱志杰,车琳娜,郭宝泉.基于LPC2124的一个远程系统软件升级方案[J].单片机与嵌入式系统应用,2006,5:46-49
[2]晏五一,朱志杰.基于LPC2124的远程配电变压器监测终端设计[J].电力系统,2007, 26(7):31-34
[3]杨校辉.Proteus在ARM系统设计中的应用[J].单片机与嵌入式系统应用,2009,8:77-79
[4]张勇.基于Proteus平台的32位单片机LPC2114虚拟串口通讯仿真[J]. 集成电路通讯,2008,26(1):8-12
[5]周立功.ARM嵌入式系统基础教程(第2版)[M].北京:北京航空航天大学出版社,2008:353-360
|