`

嵌入式版"Hello world"之流水灯实验

阅读更多

在短短的两周内,我们集中学习了ARM体系结构相关课程和ucos基础课程,并第一次深入一个操作系统的内部进行详细的学习探究。

在学习了ucos和相关工具下的demo之后,我终于将汇编、hex、c等底层代码和硬件联系在了一起。一直做web、桌面应用开发,我这次算是体验到了另外的世界和开发思路。

 

关注于:

  1. 代码计数用大小k
  2. 关注效率
  3. 关注空间
  4. 注意赋值--掩码赋值
  5. 学会看芯片时序图
  6. 看清引脚
  7. 等等

下面开始我们的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
  • 07-13.rar (82.9 KB)
  • 描述: 整个工程数据和源代码文件
  • 下载次数: 3
分享到:
评论

相关推荐

    大学物理册答案上下都有

    大学物理册答案上下都有

    UWB超宽带信道研究及源码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    Suno AI语音技术的资源描述

    Suno AI 是一家领先的人工智能(AI)公司,专注于开发创新的语音技术和解决方案。以下是关于 Suno AI 的资源描述: 语音识别技术:Suno AI 拥有先进的语音识别技术,能够准确地将语音转换为文本。他们的语音识别系统经过了大量的训练和优化,具有高度的准确性和鲁棒性,可应用于多种场景,如语音助手、语音搜索、智能客服等。 语音合成技术:除了语音识别,Suno AI 还致力于开发自然、流畅的语音合成技术。他们的语音合成系统能够生成高质量、逼真的语音输出,可以用于语音助手、自动化客服、有声书等领域。 智能语音应用开发:Suno AI 提供了一系列工具和平台,帮助开发者快速构建和部署智能语音应用。他们的开发工具包括 API 接口、SDK、开发文档等,支持多种编程语言和平台,让开发者可以轻松地集成语音功能到自己的应用中。 行业解决方案:Suno AI 为各行各业提供定制化的语音解决方案,满足客户特定的需求和业务场景。他们与零售、金融、医疗等领域的企业合作,提供智能语音客服、语音导航、语音支付等解决方案,帮助客户提升服务质量和效率。

    基于matlab的射线信道模型内含数据集.zip

    基于matlab的射线信道模型内含数据集.zip

    基于Lidar数据的概率占位栅格图(Occupancy Grid Map)+Python代码实现.pdf

    基于Lidar数据的概率占位栅格图(Occupancy+Grid+Map)+Python代码实现.pdf

    autosar多核操作系统的监控和优化python代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于flink的实时流计算web平台.zip

    flink基于flink的实时流计算web平台.zip 基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip基于flink的实时流计算web平台.zip

    行政数据分析看板12.xlsx

    Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示

    基于关节空间和笛卡尔空间对PUMA560机械臂进行了轨迹规划在Simulink中实现.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    重庆大学电磁场原理10年考题(a卷)答案及评分标准.pdf

    重庆大学期末考试试卷,重大期末考试试题,试题及答案

    营业额日报.xlsx

    Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示

    项目快速部署与日志查看工具:一键启动Jar的Shell脚本

    这个资源是一对功能强大的Shell脚本,专为简化在Linux环境下的项目部署与日志查看而设计。首先,用户只需修改脚本中的Jar包名称,并赋予执行权限(使用"chmod +x xxx.sh"命令),即可轻松启动项目。通过执行"./startJar.sh"命令,用户可以快速启动Jar包,无需手动查找进程并进行kill操作,从而显著提高了部署效率,尤其适用于频繁部署或二次部署的场景。其次,为了方便用户查看项目日志,我们提供了另一个脚本"./echoLog.sh"。通过执行"./echoLog.sh"命令,用户可以轻松查看项目的实时日志,快速定位和解决问题。这些Shell脚本的使用将为您的项目管理带来极大的便利和效率提升,让您专注于项目开发和优化。

    财务数据分析模型3.xlsx

    Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示

    杭州电子科技大学数据结构期末样卷参考答案A答案.pdf

    杭州电子科技大学,期末考试资料,计算机专业期末考试试卷,试卷及答案,数据结构。

    基于Python实现的手写数字识别系统源码+数据集.zip

    基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Python实现的手写数字识别系统源码+数据集.zip已获导师指导并通过的97分的高分

    垂直起降时刻表matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    A Confidence-Guided Automated System for Non-emergency Calls.pdf

    A Confidence-Guided Automated System for Non-emergency Calls.pdf

    具有 d 资产的美式算术和几何看跌期权的价格matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    使用Matlab调用Micro-Manager控制显微镜.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    重庆大学2011-2012(2)数字电子技术II答案.pdf

    重庆大学期末考试试卷,重大期末考试试题,试题及答案

Global site tag (gtag.js) - Google Analytics