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

📄 单个数码管显示.c

📁 MSP430开发板413演示程序 MSP430开发板413演示程序
💻 C
字号:
//
//  显示器单个改变 显示内容
//
//******************************************/
#include <msp430x44x.h>
#define LED_IN_USE 6
/*****************************************************/
/*   数据定义                                        */
/*****************************************************/
const unsigned char NUM_LED[17]=
                       {0xd7,0x14,0xcd,0x5d,0x1E,  // 0 ~ 4
                       0x5b,0xdb,0x15,0xdf,0x5f,   // 5 ~ 9
                       0x9f,0xda,0xc3,0xdc,0xcb,   // a ~ e
                       0x8b,0x00
                       };                 //f,0x00使LED不显示
unsigned char led_Buf[LED_IN_USE]={1,2,3,4,5,6};  // LED显示缓冲区 ,
unsigned char led_Ctrl;     // 存放要显示数据
void delay(unsigned long v)
    {
        while(v!=0)v--;
    }
/*******************************************************
*     模块初始化
*******************************************************/
void init_LED(void)
    {
      P3DIR  = 0xff;    // 设置 p3 输出
      P3OUT  = 0x00;    // 设置 初始值为0
      P4DIR |= 0x03;    // 设置 p4.0,p4.1 输出
      P4OUT &= 0xfc;    // 设置初始值
      led_Ctrl = 0;     // led_Ctrl用于控制那个LED可显示
    }
/****************************************************
*     LED 显示  ,该函数可以放到定时器中断中
****************************************************/
void led_Display(){
    unsigned tmp ;
      tmp    = 0x01;
      P3OUT  = NUM_LED[led_Buf[led_Ctrl]];  // 设置显示值
      P4OUT |= 0x02;                        // 打开数据锁存器
      P4OUT &= 0XFD;                        // 关闭数据锁存
      P3OUT  = ~(tmp<<led_Ctrl);            // 设置那只LED显示
      P4OUT  |= 0x01;                       // 打开控制锁存
      P4OUT  &= 0XFE;                       // 关闭控制锁存
      led_Ctrl= (led_Ctrl +1) % LED_IN_USE; // 设置下一个要显示的LED
}
/******************************************/
void main(void)
{
    char i=0;
    unsigned tmpv ;
     WDTCTL = WDTHOLD + WDTPW;     //关闭看门狗
     init_LED();
     while(1)
     {                             //循环
    for(tmpv=0;tmpv<LED_IN_USE;tmpv++)
    {                 // 初始化缓冲区
      led_Buf[tmpv] = i;
    }
    i++;
    if(i==17)
       i=0;
       led_Display();
       delay(90000);
     }
}



⌨️ 快捷键说明

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