注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
billbot501的个人空间 https://home.eeworld.com.cn/space-uid-274536.html [收藏] [复制] [分享] [RSS]
日志

分享ARM7学习经验--跑马灯(一)

已有 2759 次阅读2011-4-4 15:12 |个人分类:LPC21XX|

首先介绍下恩智浦公司的MCU型号划分方法,这些MCU中,LPC3000LH7A采用ARM9内核,LPC2000LH7采用ARM7内核,LPC1000系列采用Cortex-M3M0内核。开发板的芯片是LPC2148,属于LPC2100系列,所以再介绍下LPC2100系列MCULPC2100系列MCU基于一个支持实时仿真和跟踪的16/32ARM7TDMI-SCPU,并带有128/256k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16Thumb模式将代码规模降低超过30%,而性能的损失却很小。

然后介绍下我常使用到的PDF文档,都有《开发板原理图》、周立功翻译的中文《LPC214X_user_cn》和英文说明文档《UM10139-LPC214X user manual》和周立功出的《深入浅出ARM7-LPC 213X/214X》下册。

其次是本次实验使用到管脚连接寄存器,因为有些管脚的功能是复用的,所以使用PINSEL0/1配置P0管脚的功能,PINSEL2配置P1管脚的功能。系统复位上电后,默认管脚的功能是GPIO输入状态。慢速GPIO功能使用VPB访问,速度较慢,使用到的寄存器有:

IOPIN 用于读管脚的值

IOSET用于写管脚高电平(写入 1 使对应管脚输出高电平。写入 0 无效。)

IODIR 设置管脚方向

IOCLR 用于写管脚低电平(写入 1 使对应管脚输出低电平。写入 0 无效)

最后是开发板的连接图,通过74HC244三态八缓冲区,通过端口P0.12控制,当为低电平时,数据能从左边流下右边。这部分代码:

#include <LPC214X.H>

void Led_Init(void)

{

       IODIR0 |=1<<12;//LED使能端口输出

       IODIR1=0x00FF0000;//LED端口输出

       IOCLR0 |=1<<12;//P0.12=0 使能74HC244

       IOCLR1 = 0x00FF0000;//熄灭8LED

}

void delay (unsigned int num)

{

       while(num--);

}

int main(void)

{

       unsigned char i=0;

       Led_Init();

       while(1)

       {

              for(i=16;i<24;i++)

              {

                     IOSET1=1<<i;//置高电平

                     delay(200000);

                     IOCLR1=1<<i;//置低电平

                     delay(200000);

              }    

       }

}

发表评论 评论 (4 个评论)
回复 0212009623 2011-4-5 19:33
不错呀
回复 刘过 2011-4-8 08:58
当单片机用了
回复 academic 2011-4-9 22:44
不错,期待继续!LPC1700和LPC1800也是cortex m3内核
回复 Ogle 2011-4-15 16:23
不错哈。学习了。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章