打印
[活动专区]

【赛元95F】+3.DIY拓展1:LED+DC外部供电

[复制链接]
1287|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 一路向北lm 于 2020-3-22 13:48 编辑

没有LED指示灯,板子就没有灵魂,来吧开始焊接一个最小系统的拓展板,一步一步来吧!先焊接两颗LED吧,蓝色配红色,翻箱倒柜找了一块万能板子,先凑合着用吧。

绿色配绿色,绝配!



使用特权

评论回复

相关帖子

沙发
一路向北lm|  楼主 | 2020-3-22 13:48 | 只看该作者
LED永远离不来电阻,它们是世界上最让人羡慕的一对!

使用特权

评论回复
板凳
一路向北lm|  楼主 | 2020-3-22 13:49 | 只看该作者
3min之后............成品,没有PCB高大上,但我喜欢这个过程!

使用特权

评论回复
地板
一路向北lm|  楼主 | 2020-3-22 13:49 | 只看该作者
怕电流不够,我又加了一个外部dc供电口,顺便加了一个LED指示灯。

使用特权

评论回复
5
一路向北lm|  楼主 | 2020-3-22 13:49 | 只看该作者
焊接后的成品,哈哈,板子上的东西会越来越多的!

使用特权

评论回复
6
一路向北lm|  楼主 | 2020-3-22 13:50 | 只看该作者
赶紧撸串代码把点亮个流水灯吧,不然怎么好意思睡觉啊,SOC keil插件安装和keil配置部分不再啰嗦了,直接上代码:
红蓝流水灯代码:你爱我我爱你,流水似情,永远不分离......................
/************************** led.c文件*************************************/
#include "bsp/led.h"
sbit Led_R = P4^6;
sbit Led_B = P4^7;

// LED点亮
// 参数:LED_R LED_B
void Led_ON(Led_TypeDef led)
{
        if(led ==LED_R)
      Led_R = 0;
        else if(led ==LED_B)
             Led_B = 0;
}
// LED熄灭
// 参数:LED_R LED_B
void Led_OFF(Led_TypeDef led)
{
  if(led ==LED_R)
      Led_R = 1;
        else if(led ==LED_B)
             Led_B = 1;
}

//LED翻转操作
// 参数:LED_R LED_B
void Led_Toggle(Led_TypeDef led)
{
  if(led ==LED_R)
        {
           Led_R==1?(Led_R=0):(Led_R=1);
        }
        else if(led ==LED_B)
        {
           Led_B?(Led_B=0):(Led_B=1);
        }          
}

/************************** led.h文件*************************************/
Led.h文件
#ifndef _LED_H_
#define _LED_H_
#include "H/SC95F861x_C.H"

typedef enum
{
   LED_R = 0,
         LED_B = 1
}Led_TypeDef;

void Led_ON(Led_TypeDef led);
void Led_OFF(Led_TypeDef led);
void Led_Toggle(Led_TypeDef led);
#endif

/************************** main.c文件*************************************/
#include "H/Function_Init.H"
#include "bsp/led.h"

void main(void)
{
        IO_Init();
        Timer_Init();
        while(1)
        {          
        }
}
/************************************************/
//定时器0中断
void timer0() interrupt 1
{
        unsigned int count;
  TL0 = (65536 - 16000)%256;
        TH0 = (65536 - 16000)/256;       
        count++;
        if(count == 1000)
        {
          count = 0;
          Led_Toggle(LED_R);
          Led_Toggle(LED_B);
        }
}


使用特权

评论回复
7
一路向北lm|  楼主 | 2020-3-22 13:51 | 只看该作者
实验现象,LED交替闪烁........

使用特权

评论回复
8
21ic小喇叭| | 2020-3-24 10:13 | 只看该作者
感谢分享,奖励您100家园币。家园币可以兑换礼品或抽奖~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

3760

帖子

75

粉丝