在短短的两周内,我们集中学习了ARM体系结构相关课程和ucos基础课程,并第一次深入一个操作系统的内部进行详细的学习探究。
在学习了ucos和相关工具下的demo之后,我终于将汇编、hex、c等底层代码和硬件联系在了一起。一直做web、桌面应用开发,我这次算是体验到了另外的世界和开发思路。
关注于:
- 代码计数用大小k
- 关注效率
- 关注空间
- 注意赋值--掩码赋值
- 学会看芯片时序图
- 看清引脚
- 等等
下面开始我们的Hello world之旅吧。
在实验室写blog,没有linux环境,所以在描述windows相关操作和技巧时会有疏漏,如果疑问敬请斧正。
点灯和闪亮的基本原理:对于一个发光二极管(流水灯的显示器),其发光是电流可正向通过,也就是说两边一边高电压一边低电压。如下图所示,如果上面是高电压,下面是低电压则这个发光二极管就可以亮。
首先需要建立一个工程,在这里使用的是一个强大的嵌入式IDE:Keil uVision3. Project->New u...Project->choose a file-> select device -> NXP(LPC2124)->确定拷贝数据
然后,让这个工程在编译完文件后输出hex(用于电路板的二进制文件)文件.
Project-> Options about... -> Output -> Create HEX File
最后编码并生成。
绘制电路图,并导入HEX文件。
电路图的关键:左下方电源的配置连接,发光二极管的电阻连接。
代码结构:
#include <LPC21xx.h>
//多用宏,不论是迁移还是使用都很方便,而且方便阅读
#define ALL 0x3;//用于灯连接的端口 P0.0 P0.1
unsigned long i;//用于延时计数的变量
int j;
void delay(){
i=0x000FFFFF;
while(i)i--;
}
int main(){
//所有的芯片默认状态时GPIO,输入输出数据口
IO0DIR = ALL;//对应的二进制数是:0000 0000 0000 0011 ,
//即对应的P0.0, P0.1口为数据输出口
j = 0;
while(1){
IO0SET = ALL;//导致二极管的两极都为高电位,从而不亮
j++;
j%=2;//奇偶计数
if(j){
IO0CLR = 0x1; //让P0.0低电压
}else{
IO0CLR = 0x2; //让P0.1低电压
}
delay();
}
}
细节的讨论还会补充。
- 描述: 新建工程
- 大小: 72.9 KB
- 描述: 发光二极管结构
- 大小: 1.4 KB
- 描述: 电路图
- 大小: 36.9 KB
分享到:
相关推荐
"嵌入式版\"Hello world\"之流水灯实验"是一个典型的入门级项目,它通过控制LED灯的亮灭顺序来展示基本的嵌入式系统编程概念。在这个项目中,我们通常会使用微控制器(如Arduino、STM32或AVR等)作为硬件平台,用C或...
《基于Microblaze的流水灯及打印Hello World详解》 在嵌入式系统设计领域,Microblaze是一款灵活且可定制的软核处理器,由Xilinx公司开发,广泛应用于FPGA(Field-Programmable Gate Array)设计。本项目以...
STM32流水灯实验编程是所有硬件编程的“Hello world!”程序,成功下载运行一个流水灯说明你已经走进了STM32的世界。下面我们一步一步的来做实验。 知识点1: STM32的基本概念 STM32是一种基于ARM Cortex-M内核的32位...
总结来说,这些项目涵盖了嵌入式系统开发的关键方面:从物理世界获取数据(ADC),通过硬件接口控制输出(流水灯),以及在ARM平台上执行基本的软件操作(Hello World)。这些都是学习和理解ARM架构及嵌入式系统设计...
3.流水灯 30.咪头 31.DHT11温湿度 32.DS1302时钟 33.arduino 彩屏 34.315M发射接收模块 35.VS1003MP3解码芯片 36.直流电机 37.土壤湿度传感器程序 38.I2C模块 DS1307时钟 39.继电器 4.交通灯 40.74HC164 41.74HC138 ...
打包的是整个FPGA Quartus II 工程,仿真脚本已经写好了,程序注释很到位,逻辑清晰明了,非常适合初学者用来作为第一个HelloWorld程序学习,希望能够帮助更多的FPGA爱好者进去FPGA神奇的天地。 Pang 敬上。 2018....
STM8S运行LED程序和讲义 ...编程语言时学写“Hello,World”程序一样。流水灯例程的编写就是对 I/O 口的 简单操作, 当知道怎么点亮一盏 Led 灯的时候,恭喜你,你已经能够简单地控制 一款芯片了!
- 建立在Lab3的基础上,实验将关注软件控制自定义LED IP,实现如流水灯、7段数码管显示等功能。 - 学生将学习如何在软件层面与自定义硬件IP进行交互。 5. **Lab5: GPIO实验 - 7段数码管** - 学习如何在系统中...
内部包含多个简单的单片机实验,包括输入输出端口、流水灯、A/D转换等多个简单实验,并附有汇编语言程序及注释说明,对于但单片机初学者很有帮助。
实验二 流水灯.docx 实验二十 学会使用MQ2烟雾传感器.docx 实验二十一 烟雾报警.docx 实验二十七 距离检测.docx 实验二十三 温度报警.docx 实验二十九 红外发射.docx 实验二十二 闯入报警.docx 实验二十五 串口控制...
该例程通过串口持续发送"HelloWorld",用户需配置串口助手(如波特率9600,无校验,8位数据位,1位停止位),下载程序后在串口助手查看输出。 5. 实验5:串口接收例程 用户可以通过串口发送命令(如发送00或FF)...
实验二 流水灯.docx 实验二十 学会使用MQ2烟雾传感器.docx 实验二十一 烟雾报警.docx 实验二十七 距离检测.docx 实验二十三 温度报警.docx 实验二十九 红外发射.docx 实验二十二 闯入报警.docx 实验二十五 串口控制...
“Hello World”是编程界的传统入门程序,而在FPGA世界里,这个角色通常由“流水灯”扮演。流水灯是一个简单的硬件示例,它演示了如何通过FPGA控制一组LED灯按特定顺序亮灭,直观地展示出硬件编程的概念。 首先,...
流水灯是硬件学习的基础,犹如Hello World之于软件学习。下面将详细介绍流水灯的实现及GPIO控制的编程。 DSP入门学习笔记 DSP(Digital Signal Processor,数字信号处理器)是一种特殊的微处理器,主要用于实时...
qsys 快速入门基础实验(Hello World实验、数码管实验、流水灯实验、按键中断实验、pwm自定义组件实验),包含源代码,及硬件连线图,详细的描述出了qsys及niosii使用中反映的问题。可以帮助大家尽快熟悉Qsys,有不...
资料目录.bat 例程1-Hello World! 例程10-抢答器 例程11-模拟值读取 例程12-光控声音 例程13-火焰报警 例程14-电压表 ...例程5-流水灯 例程6-交通灯 例程7-蜂鸣器 例程8-倾斜开关 例程9-按键控制实验
第一章 ZYNQ开发板开箱检测,第六章 ZYNQ芯片开发流程的简介,第十章 PL端和PS端的协同设计流水灯实验,第九章 Hello World实验,第二十一章 Linux系统下的hello World实验