⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 飞思卡尔m9s12dg128_LED显示源程序
💻 C
字号:
//[LED.c]LED驱动-----------------------------------------------------------*
//本文件包含:                                                              *
//    (1)LEDInit:4连排LED初始化                                            *
//    (2)LEDShow:在4连排LED上显示4个十进制数                               *
//    (3)LEDShow1:在1个LED上显示数字                                       *
//硬件连接:                                                                *
//    (1)PTB 7-0 分别接LED的数据线 h g f e d c b a                         *
//    (2)PTH 7-4 分别接各LED的位选线(自右到左)                             *
//-------------------------------------------------------------------------*

#include "LED.h"    //该头文件包含LED驱动相关寄存器宏定义

//LEDinit:4连排LED初始化---------------------------------------------------*
//功能:定义LED控制引脚的数据口和位选口为输出                               *
//参数:无                                                                  *
//返回:无                                                                  *
//-------------------------------------------------------------------------*
void LEDInit(void)
{
    LEDdata_D = 0xFF;    //数据口为输出
    LEDcs_D  |= 0xF0;    //位选口为输出
}

//LEDShow: 在4连排LED上显示4个十进制数-------------------------------------*
//功能:在4连排LED上显示以Buf为首地址的4个数据                              *
//参数:Buf=待显示数据的首地址                                              *
//返回:无                                                                  *
//内部调用:LEDshow1                                                        *
//-------------------------------------------------------------------------*
void LEDShow(INT8U *Buf)
{
    INT8U i,c;
    INT16U j;
    for (i = 0;i <= 3;i++)
    {
        c = Buf[i]-'0';
        LEDShow1(3-i,c);
        //延时
        for (j = 0;j <= 100;j++);
    }
}

//LEDShow1:在1个LED上显示数字----------------------------------------------*
//功能:在第i个LED上显示数字c(要查表转码)                                   *
//参数:                                                                    *
//    (1)i:要显示的LED位号(从右到左0-3)                                    *
//    (2)c:要显示的数字(0-9)                                               *
//返回:无                                                                  *
//-------------------------------------------------------------------------*
//显示码表
const INT8U Dtable[10] =
//   0    1    2    3    4     5    6    7    8    9
  {0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F};
//片选表
const INT8U CStable[4] =
//   0    1    2    3
  {0x7F,0xBF,0xDF,0xEF};

void LEDShow1(INT8U i, INT8U c)
{
    LEDcs   = CStable[i];
    LEDdata = Dtable[c];
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -