0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JZ2440点亮LED电路图设计案例

454398 来源:博客园 作者:LOSER Z 2020-10-07 15:21 次阅读

在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出。

下面是JZ2440的3个LED电路图:

下面是JZ2440的3个按键的电路图

通过查找nLED_1,nLED_2,nLED_4对应的引脚,发现它们分别对应GPF4,GPF5,GPF6,如图:

通过查找EINT0,EINT2,EINT11对应的引脚,发现它们分别对应GPF0,GPF2,GPG3,如图:

由此,我们再去看2440的Datasheet,查看它们的控制位和数据位的信息,首先是GPF4,GPF5,GPF6的控制位信息,如图:

我们发现,当GPFCON寄存器的GPF4,GPF5,GPF6的控制位设置为01时,表示控制输出,这正是我们想要的。在看看它们的数据位是怎么设置的,如图:

由表格可知,当端口被配置为输出端口时,它的引脚状态和相应的位相同。也就是说,如果我想让LED1亮,那么我就要把它对应的GPF4配置为输出,然后将GPFDAT的第4位设置为0.

再看看按键对应的寄存器怎么配置,上面说到S2,S3,S4对应的控制寄存器相应的位是GPF0,GPF2和GPG3

由于按键是个输入设备,所以我们需要将GPF0,GPF2,GPG3的位设置为00。到此,LED和按键寄存器我们已经配置好了,下面看一下代码:

首先是一段汇编代码,由这段汇编代码引导到main函数,同时进行相应的硬件配置


下面主程序:

#define GPFCON (*(volatile unsigned long *)0x56000050)
#define GPFDAT (*(volatile unsigned long *)0x56000054)
#define GPGCON (*(volatile unsigned long *)0x56000060)
#define GPGDAT (*(volatile unsigned long *)0x56000064)
/*
* LED1,LED2,LED4对应GPF4、GPF5、GPF6
*/
#define GPF4_out (1<<(4*2))
#define GPF5_out (1<<(5*2))
#define GPF6_out (1<<(6*2))
#define GPF4_msk (3<<(4*2))
#define GPF5_msk (3<<(5*2))
#define GPF6_msk (3<<(6*2))
/*
* S2,S3,S4对应GPF0、GPF2、GPG3
*/
#define GPF0_msk (3<<(0*2))
#define GPF2_msk (3<<(2*2))
#define GPG3_msk (3<<(3*2))
int main()
{
unsigned long dwDat;
// LED1,LED2,LED4对应的3根引脚设为输出,将这些位清零
//先把9,、9、10、11、12、13位清零,然后或操作设为输出01
GPFCON &= ~(GPF4_msk | GPF5_msk | GPF6_msk);
GPFCON |= GPF4_out | GPF5_out | GPF6_out;
// S2,S3对应的2根引脚设为输入
GPFCON &= ~(GPF0_msk | GPF2_msk);
// S4对应的引脚设为输入
GPGCON &= ~GPG3_msk;
while(1){
//若Kn为0(表示按下),则令LEDn为0(表示点亮)
dwDat = GPFDAT; // 读取GPF管脚电平状态
if (dwDat & (1<<0))        // S2没有按下
GPFDAT |= (1<<4);       // LED1熄灭
else
GPFDAT &= ~(1<<4);      // LED1点亮
if (dwDat & (1<<2))         // S3没有按下
GPFDAT |= (1<<5);       // LED2熄灭
else
GPFDAT &= ~(1<<5);      // LED2点亮
dwDat = GPGDAT; // 读取GPG管脚电平状态
if (dwDat & (1<<3))         // S4没有按下
GPFDAT |= (1<<6);       // LED3熄灭
else
GPFDAT &= ~(1<<6);      // LED3点亮
}
return 0;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23252

    浏览量

    660583
  • 电路图
    +关注

    关注

    10340

    文章

    10720

    浏览量

    530236
  • 控制寄存器
    +关注

    关注

    0

    文章

    34

    浏览量

    11484
  • jz2440
    +关注

    关注

    0

    文章

    2

    浏览量

    4603
收藏 人收藏

    评论

    相关推荐

    电路图

    我想问一下这个电路图连接这么在下面求求大佬解答一下
    发表于 12-04 16:34

    电路小知识 | 电源选型要点、电路图的解读方法、LED及其应用示例

    在上一篇文章中 交流电路复数的基础知识以及相位差和电抗的计算我们给大家分享了复数的基础知识以及相位差和电抗的计算,本篇继续给大家分享交流电路的电源选型要点、电路图的解读方法、LED及其
    发表于 11-25 10:59

    阻容降压电路图

    阻容降压电路是利用电容对交流电的容抗来限制电路的最大电流,而负载的电压则是由负载本身的电阻和电容容抗串联分压决定。 下图是一个十元的充电手电电路图,为阻容降压充电电路给电池充电,充电电
    的头像 发表于 11-19 09:44 244次阅读
    阻容降压<b class='flag-5'>电路图</b>

    谈谈有哪些电路图

    在电子工程领域,电路图是很多电子工程师学习电子设计的第一步内容,它们以图形化的方式展示了电路的结构、元件及它们之间的连接关系,然而很多工程师只知道原理、方框图等,但对很多电路图不太清
    的头像 发表于 10-15 14:08 708次阅读

    电源接线检测仪LED1、2电路的二极管是反接的,灯为什么会

    请教下,220V接线检测电路中,电路图LED灯1、2、3对应灯从左到右。LED1、2电路的二极管是反接的,灯为什么会
    发表于 08-07 22:49

    LED追逐器电路图 使用ESP32板的LED追逐器设计

    LED追逐器是一种利用LED(发光二极管)作为光源,通过电子电路控制LED灯依次或按特定模式点亮和熄灭,从而产生追逐、闪烁或动态变化的视觉效
    的头像 发表于 07-02 16:53 1205次阅读
    <b class='flag-5'>LED</b>追逐器<b class='flag-5'>电路图</b> 使用ESP32板的<b class='flag-5'>LED</b>追逐器设计

    有关LM3914N和LM3914N-1应用的疑问

    是连接在相应电位上的LED。而把芯片换成LM3914N,即可正常工作于条状模式。电路不做任何改动,换上LM3914N-1,工作状态就变成状模式,即只有相应位上的
    发表于 04-28 11:36

    电动车电池充电电路图

    电路包括:转灯控制电路、风扇控制电路、过流保护电路。 看懂这个电路图,在掌握三极管、运算放大器的基础上,抓住下面两
    发表于 03-11 14:31 3003次阅读
    电动车电池充电<b class='flag-5'>电路图</b>

    LED驱动电路图分享

    LED驱动电路是一种用于驱动LED发光的电子电路LED(发光二极管)是一种特殊的半导体器件,具有长寿命、高光效、安全环保、方
    的头像 发表于 02-18 16:55 4036次阅读
    <b class='flag-5'>LED</b>驱动<b class='flag-5'>电路图</b>分享

    典型LED驱动电路图分享

    LED驱动电路是一种电源电路,用于将输入的电源电压转换为适合LED的直流电压,以驱动LED正常工作。LE
    的头像 发表于 02-07 18:29 1.2w次阅读
    典型<b class='flag-5'>LED</b>驱动<b class='flag-5'>电路图</b>分享

    典型LED照明电路图分享

    LED照明电路是一种将电能转换为光能的电路,使用LED(发光二极管)作为光源。LED照明电路具有
    的头像 发表于 02-05 16:39 7197次阅读
    典型<b class='flag-5'>LED</b>照明<b class='flag-5'>电路图</b>分享

    AND电路应用电路图分析

    在这个串联电路中,如果两个开关都为开状态,则LED点亮;如果任何一个开关为关状态,则LED熄灭。基本逻辑电路也称作门
    发表于 02-03 10:36 3696次阅读
    AND<b class='flag-5'>电路</b>应用<b class='flag-5'>电路图</b>分析

    简单实用的3种led恒流驱动电路图

    简单实用的3种led恒流驱动电路图
    的头像 发表于 01-24 17:51 1.4w次阅读
    简单实用的3种<b class='flag-5'>led</b>恒流驱动<b class='flag-5'>电路图</b>

    典型LED驱动器电路图分享

    LED驱动器是一种电源调整电子器件,主要用于驱动LED发光或LED模块组件正常工作。由于LEDPN结的导通特性决定,它能适应的电源的电压和电流变动范围十分狭窄,稍许偏离就可能无法点亮
    的头像 发表于 01-12 16:11 1.7w次阅读
    典型<b class='flag-5'>LED</b>驱动器<b class='flag-5'>电路图</b>分享

    AD9361 开发板电路图 电路原理

    AD9361 开发板电路图 电路原理 AD9361电路图 TCM1-63AX+ PIN TO PIN CH-BTM163A 替代型号电路图
    发表于 01-02 11:46