专栏中心

EEPW首页 > 专栏 > 学习ARM7从跑马灯和蜂鸣器开始(二)

学习ARM7从跑马灯和蜂鸣器开始(二)

发布人:xiajiashan 时间:2012-08-28 来源:工程师 发布文章

上一篇:">《学习ARM7从跑马灯和蜂鸣器开始(一)》

7.写代码实现跑马灯

下面是led实验工程代码main.c中的代码内容

#include "config.h" #include "delay.h"

上面两条语句用来包含config.h和delay.h两个头文件,因为下面要用到的uint32,IO0DIR等寄存器,还有delay()函数等内容都定义在这些头文件里面。

#define LED_1 1<<0 #define LED_2 1<<1 #define LED_3 1<<2

上面四条语句用来定义四个led等所在引脚的位置,便于程序使用。

#define LED1_TO_3 (LED_1|LED_2|LED_3)

上面这条语句把四个LED灯所在引脚或运算后定义到一个常量LED1_TO_3中,也是为了方便程序编写。

/****************************************************************************
* 名称:initSystem()
* 功能:初始化IO
****************************************************************************/

void initSystem(void)
{
PINSEL1 = PINSEL1 & (~(0xff<<12)); //led1~3设置为GPIO
IO0DIR=IO0DIR | LED1_TO_3; //led1~3设置为输出功能
IO0SET=IO0SET | LED1_TO_3; //led1~3同时输出高
}
上面的initSystem函数是为了初始化cpu的各个IO脚的状态,及设置四个LED灯所在IO脚的状态,并初始化它们。

/****************************************************************************
* 名称:Led_On(uint32 num)
* 功能:点亮LED
****************************************************************************/
void Led_On(uint32 num)
{
IO0SET=IO0SET | LED1_TO_3; //所有的led灭
IO0CLR=IO0CLR | num; //点亮num
}
上面的这个函数是为了点亮所给led号,其中参数num就是传进来的参数,代表哪个LED。
/****************************************************************************
* 名称:main()
* 功能:初始化led,并实现3个led灯轮流闪烁的效果。
****************************************************************************/
int main(void)
{

initSystem();
while(1)
{
Led_On(LED_1);
delay(10);
Led_On(LED_2);
delay(10);
Led_On(LED_3);
delay(10);
}
return 0;
}

Ads的安装使用方法见附录一。

四、独立写第一个程序:蜂鸣器

如果,跑马灯完全搞懂了,蜂鸣器程序是可以独立完成的。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

台积电据称 2016–2023 年间光刻相关专利数量翻倍,领先优势进一步扩大

国际视野 2025-10-23

创新设计高速艇进入美海军视野

视频 2010-01-14

Numonyx 封装概况

视频 2010-01-14

IonQ 宣布两量子比特门保真度达 99.99%,创量子计算新纪录

国际视野 2025-10-23

AI 机架功耗飙升,驱动数据中心电源与散热方案全面迭代

智能计算 2025-10-23

技术干货 | 利用主动短路技术将电动自行车安全提升到新高度

源来如此 | 设计配备电源导轨与处理器导轨监测解决方案的数据中心电源架构

不依赖空气的动力装置—AIP

视频 2010-01-14

串口调试助手(SComAssistant) V2.2

DDR4、DDR5 现货交易激增:买家加速对冲价格风险,主流 DDR4 涨幅近一成

网络与存储 2025-10-23

TP-link TE2029P网卡驱动(RTL8029AS)

栎新源与龙芯中科签署战略合作协议,国产超声波扫描显微镜全面应用龙芯底层产品

模拟芯视界 | 采用小型直流/直流转换器进行设计:HotRod™ QFN 与增强型 HotRod™ QFN 封装

ST7538 FSK半双工同步_异步通讯调制解调器

天基信息的新力量—小卫星

视频 2010-01-14

日月光收购 ADI 槟城封测厂,布局东南亚核心制造版图——预计 2026 年上半年完成交割

EDA/PCB 2025-10-23

X系列技术验证机:现代飞行器的先行者

视频 2010-01-14

技术干货 | 借助高度集成的实时控制 MCU 实现更平稳、更静音的电机性能

电源与新能源 2025-10-23

并口下载软件ponyprog中文版

更多 培训课堂
更多 焦点
更多 视频

技术专区