LED的使用纯汇编和C语言的点亮

2023-05-16

概述

在这里插入图片描述

在这里插入图片描述
我们通过观察原理图可以发现LED灯有四个分别连接在GPM4_1, GPM4_2, GPM4_3 GPM4_4上面,这时候我们去查询我们板子4412的说明书,去寻址寄存器的配置
在这里插入图片描述
在这里插入图片描述
初始化的时候我们需要将他配置为输出模式,同时我们观察下面的电路可以发现,他需要输出低电平,来使led亮

#define GPM4BASE 0x11000000
#define GPM4CON 0x02E0
#define GPM4DAT 0x02E4
#define UDELAY 0x43e2647c
#define N 5000000

.text
.align 2
.global _start

_start:
       	mov	ip, sp
     	push	{fp, ip, lr, pc}
     	sub	fp, ip, #4
  @设置GPM4CON 使0-3引脚为输出功能

        ldr r0, =GPM4BASE //将基地址放入r0
        ldr r1, [r0, #GPM4CON] //ldr的伪指令用法,立即数放入r1
        ldr r2, =0xffff
        bic r1, r1, r2
        @配置0-3引脚全部为1   0x1111         0b  0001 0001 0001 0001
        ldr r2, =0x1111
        orr r1, r1, r2
        str r1, [r0, #GPM4CON]
        @调用uboot中的延迟函数
         ldr r0, =N // void udelay(x)   x参数为微秒 N=5000000 为0.5秒
        mov lr, pc
        ldr pc, =UDELAY

  loop:
    @1, 将GPM4DAT 输出0x0   点亮所有灯
        ldr r0, =GPM4BASE
        ldrb r1, [r0, #GPM4DAT]
        orr r1, r1, #0xf
        bic r1, r1, #0x1
        strb r1,[r0, #GPM4DAT] //由于是8位的寄存器,所以使用strb

 
    @2 将GPM4DAT 输出0xf   熄灭所有灯
        ldr r0, =GPM4BASE
        ldrb r1, [r0, #GPM4DAT]
        bic r1, r1, #0x3
        strb r1,[r0, #GPM4DAT]

使用C与语言来点亮LED灯

布置现场,调用c语言函数,https://blog.csdn.net/dongdong7_77/article/details/108200731
可以参考我以前的这篇文章

.text
.align 2
.global _start

_start:
       	mov	ip, sp
     	push	{fp, ip, lr, pc}
     	sub	fp, ip, #4
  
        bl main
        
    	sub	sp, fp, #12
     	ldm	sp, {fp, sp, pc}

#define sdelay(x) (((void (*)(int))0x43e053d4)(x))
#define udelay(x) (((void (*)(int))0x43e2647c)(x))        

typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;

void led_init(void)
{
    GPM4CON &= ~0XFFFF;
    GPM4CON |= 0X1111;

    GPM4DAT |= 0XF;   


}

void led_on(u32 num)
{
        if (num >=0 && num <=3)
        {
           GPM4DAT &= ~(0x1 << num);

        }
        
}

void led_off(u32 num)
{
        if (num >=0 && num <=3)
        {
           GPM4DAT |= (0x1 << num);

        }
int main(void)
{
    int n = 0;

    led_init();
    while (1)
    {
        printf("led %d is on ! \n", n+1);
        led_on(n);
        udelay(1000000);
        led_off(n);
        n++;
        if (n > 3)
        {
            n = 0;
        }    
    }
    
    return 0;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LED的使用纯汇编和C语言的点亮 的相关文章

  • LED的C语言应用程序

    引言 在本文中 xff0c 用C语言编写一个LED灯的应用程序 xff0c 对文章 基于HDF的LED驱动程序开发 xff08 1 xff09 xff08 2 xff09 中开发的LED灯的驱动程序进行测试 另外 xff0c 在编写LED灯
  • 基于STM32F103入门1——点亮LED灯

    今天学习了STM32固件库点灯程序 点灯也可以玩过很多好玩的东西 xff0c 在这里做一下总结 STM32点灯程序合集 1 xff1a 新建固件库工程文件1 1找到一个固件库模板1 2 xff1a 打开KEIL5新建工程1 3 xff1a
  • STM32 创建LED工程,点亮LED

    容忍5V电压 FT 61 FIve Tolerate 允许5V 寄存器就是特殊的存储器 上拉输入和下拉输入 如果输入啥都不接 xff0c IO口输入电平极容易受外部电平干扰 xff0c 加上拉电阻就是为了保护输入引脚的电平 为了避免引脚悬空
  • 基于RK3399的LED驱动开发

    1 添加设备树 在设备树 arch arm64 boot dts rockchip rk3399 firefly linux dts 中添加 gpio span class token operator span led span clas
  • insmod: can't insert 'led.ko': invalid module format详细解释

    insmod can 39 t insert 39 led ko 39 invalid module format 之前在Imx257学习版固件编写的驱动想直接移植imx257核心板的开发板上 以为2个板子的源码的引脚定义一样就没什么问题了
  • LED的使用纯汇编和C语言的点亮

    概述 我们通过观察原理图可以发现LED灯有四个分别连接在GPM4 1 GPM4 2 GPM4 3 GPM4 4上面 xff0c 这时候我们去查询我们板子4412的说明书 xff0c 去寻址寄存器的配置 初始化的时候我们需要将他配置为输出模式
  • 仿真软件proteus点亮led实验

    在这个实验之前 xff0c 确保系统已经正确安装了proteus和keil工具 proteus是用来设计电路图的 xff0c keil是用来编写c语言代码并编译成芯片可用的hex程序的 前面安装keil的时候 xff0c 最后提到 xff0
  • Error: L6218E: Undefined symbol LED_Init (referred from main.o).

    在使用Keil软件的过程中 xff0c 经常会出现这种报错 xff0c undefined symbol xxxx referred from xxx o 这个时候大多是 c文件没有被包含在相应的路径中 xff0c o文件在我们的工程中没有
  • STM32报错解决:..\OBJ\LED.axf: error: L6002U: Could not open file ..\obj\main.o: No such file/

    出现这个问题的原因主要有MDK的安装路径为中文 xff0c 或电脑的用户名为中文 xff0c 解决方法见如下的链接 xff1a 常规的原因 也有出现语法错误导致的 xff0c 如下面这位博主的情况 语法错误 而我遇到这个问题的原因比较难以确
  • 51 汇编语言编程:8个按键控制8个LED

    89C51汇编语言写8个按键控制8个LED 按键接P2口 xff0c LED接P1口 有6按键 xff0c 按下对应LED长亮 xff0c 重复按下 xff0c LED灭 xff1b 有两个特殊按键 xff0c 按下 xff0c 对应LED
  • day02 LED

    一 回顾 1 C int char short typedef 起别名 指针 函数 void fun T int x int y 结构体 2 嵌入式 以应用为中心 物联网的框架 xff1a 感知层 网络层 平台层 应用层 3 搭建开发环境
  • 简单的LED恒流电路

    利用三极管 43 MOS管做LED的恒流电路 xff1a 工作原理 xff1a 1 Q1没有导通的情况下 xff0c Q2的B极电压为0V xff0c Q2截止 xff0c Q1的G极由R1施加电压 xff0c Q1导通 xff1b 2 Q
  • 点亮LED灯及IAR调试

    点亮LED灯 一开始想先通过简单的点亮一个灯的程序来试一下MCU xff0c 硬件上的原理图如下 xff1a 从这里看出PB4 PB5 PC3 PC4 PC5 PC7都能用 xff0c 还没接外设 xff0c 一开始我选择了 PB5 去外接
  • 【OK6410裸机程序】点亮LED

    globl start start 硬件相关的设置 Peri port setup ldr r0 61 0x70000000 orr r0 r0 0x13 mcr p15 0 r0 c15 c2 4 64 256M 0x70000000 0
  • STM32以中断的方式点亮LED小灯(标准库)

    STM32以中断的方式点亮LED小灯 xff08 标准库 xff09 文章目录 STM32以中断的方式点亮LED小灯 xff08 标准库 xff09 一 认识中断1 中断优先级 xff1a 2 中断嵌套 xff1a 3 中断执行流程4 中断
  • 使用寄存器点亮一个LED灯 普中科技stm32(stm32f1103zeb6)

    板子 xff1a 普中科技stm32F1 芯片stm32f1103zet6 1 程序如下 xff1a include 34 stm32f10x h 34 导入头文件 typedef unsigned int u32 typedef是系统关键
  • 检测硬盘是否正在被访问

    我正在尝试制作一个非常简单的硬盘访问监视器像那些根据驱动器使用情况闪烁的嵌入式 LED 一样工作 那个 LED 确实对我很有帮助 但我使用的笔记本电脑没有它 因此 我制作了一个简单的托盘图标应用程序 但我不知道如何确定磁盘访问的变量 我搜索
  • 罗技的 LED 照明 SDK 无法与我的 G502 配合使用

    我想得到罗技自己的 LED SDK http gaming logitech com en us developers正在使用我的 G502 但我不能 我使用的是 SDK 版本 8 82 7 这是迄今为止的最新版本 我在 SO 或互联网的其
  • Android 通知 LED 不使用我的颜色

    我正在尝试使用一个通知 该通知也使用我的 S3 上的通知 LED 但由于某种原因 颜色将始终为蓝色 我猜这是默认值 我尝试使用不同的颜色但没有任何变化 其他应用程序 例如 Whatsapp Gmail 和 Facebook 在显示不同颜色的
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我

随机推荐

  • shell命令和变量//区分变量未定义和变量已定义但值为空

    转载 xff1a Shell Command Language 参考 xff1a shell How to check if a variable is set in Bash Stack Overflow 关键 xff1a 形如 para
  • 区分本地终端和ssh远程终端

    如果本地和远端服务器用户名和主机名 xff0c 终端颜色配置都一致 xff0c 通过ssh登陆服务器的时候 xff0c 在本地终端和ssh终端来回切换时 xff0c 傻傻分不清当前终端是本地终端还是ssh远程服务器 下面这个连接介绍了一种方
  • 电路仿真软件Circuit JS1修改菜单字体大小

    在线演示 xff1a https www falstad com circuit circuitjs html 下载地址 xff1a https www falstad com circuit offline circuitjs1 linu
  • Ubuntu 22.04配置samba服务器

    安装samba sudo apt install samba 可以验证一下安装结果 xff1a smbd version 创建samba用户密码 创建samba用户 xff08 可选 xff09 xff1a sudo adduser sys
  • 一个查找文件的类:它的长处在于能够搜索子目录并且是可控制的

    find file cpp Defines the entry point for the console application include 34 stdafx h 34 测试需要的头文件 include lt conio h gt
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Sublime Text3注册码(亲测可用 2019-11-19)

    转自博客中的朋友的 xff0c 用于保存 适用于Sublime Text2同时也适用于Sublime Text3 1 打开本地hosts文件 Windows路径是C Windows System32 drivers etc MacOS路径是
  • H3C配置多区域OSPF实验

    一 先上拓扑 xff1a 二 实验环境 xff1a Windows 10 xff08 21H1 xff09 xff0c HCL版本 xff1a V3 0 1 xff08 华三模拟器 xff09 三 实验需求 xff1a SWA SWB SW
  • 配置mysql使用ssl连接,配置java连接mysql使用ssl

    查看mysql是否支持ssl连接 show variables like 39 ssl 39 生成服务器端 openssl genrsa 2048 gt ca key pem openssl req sha1 new x509 nodes
  • Python中的命名规范

    变量命名准则 您应当尽量使自己的变量命名含义清晰 xff0c 不要使用混乱的字母 数字 表情等意义不明的字符来命名变量一般来说 xff0c 您不应当使自己的风格频发变换 如果可能 xff0c 请将整个项目保持统一风格此文章根据本人习惯与编码
  • Linux下达梦数据库的安装与卸载

    文章目录 Linux下达梦数据库的安装与卸载1 安装前准备工作1 1 下载安装包1 2 检查Linux Unix 系统信息1 3 创建安装用户1 4 Linux Unix 下检查操作系统限制1 5 设置JAVA环境 2 安装DM2 1 解压
  • 递归算法实现角谷定理

    问题重述 xff1a 角谷定理 输入一个自然数 xff0c 若为偶数 xff0c 则把它除以 2 xff0c 若为奇数 xff0c 则把它乘以 3 加 1 经过如此有限次运算后 xff0c 总可以得到自然数值 1 求经过多少次可得到自然数
  • windows系统关闭node进程

    taskkill f t im node exe Node js是一个开源的 跨平台的JavaScript运行时环境 xff0c 它允许开发者在服务器端使用JavaScript进行编程 Node js的诞生极大地扩展了JavaScript的
  • 我的GPT-4 API 接入之旅

    3月15日open ai推出GPT 4 https platform openai com docs models gpt 4 chatgpt免费体验入口 xff1a http chat xutongbao top 需要排队 28号加入等候
  • IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

    git exe pull progress v no rebase 34 origin 34 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 6
  • 制作高清chatgpt logo

    lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equiv 61 34 X U
  • react开发前端登录、注册、找回密码页面的详细教程

    登录 注册 找回密码是前端项目经常遇到的需求 光标自动定位到输入框 回车登录 图形验证码 邮箱验证码 60秒倒计时 字段校验 字段提示语 上传头像 密码显示隐藏这些功能都会在本文中详细介绍 xff0c 注意 使用的ui库是antd 目录 光
  • azure windows服务器,远程桌面链接,ftp文件上传下载

    解决方案 xff1a FTP 安装filezilla 打开21端口 参考链接 xff1a Windows11 10 使用RDP远程桌面时提示 您的凭据不工作 登录没有成功可能的一种原因 CSDN博客 使用 SSH 连接到运行 Windows
  • LED的使用纯汇编和C语言的点亮

    概述 我们通过观察原理图可以发现LED灯有四个分别连接在GPM4 1 GPM4 2 GPM4 3 GPM4 4上面 xff0c 这时候我们去查询我们板子4412的说明书 xff0c 去寻址寄存器的配置 初始化的时候我们需要将他配置为输出模式