qinkaiabc 发表于 2014-1-15 22:10:22

【Energia开发环境】MSP430 LAUNCHPAD学习笔记3--Lab3 数码管的显示

【Energia开发环境】MSP430 LAUNCHPAD学习笔记3--Lab3 数码管的显示

材料:
MSP430 LAUNCHPAD x 1
一位共阳极数码管

实验目的:让MSP430 LAUNCHPAD控制数码管显示0-9数字


数码管介绍及原理图分析:
   常见的数码管由七个发光二极管和一个点状发光二极管管芯制成,如附图所示,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。共阳数码管是指将所有发光二极管的阳极连接到一起形成公共阳极(COM)的数码管。在共阳数码管时应将公共极COM端接到电源VCC上,当某一字段的发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管则更好相反,阴极连接到一起形成了公共阴极,阳极是独立分开的。如下图所示。


下图为一位共阳极数码管实物图,本实验使用就是用它。


其引脚排列依次为:从左上角第一个引脚顺时针开始数,引脚依次如下:1:g   2:f3:com端(接高电平) 4:a5:b6: dp 7:c8:com端(接高电平)9:d    10:e 共十个引脚,上5下5。



MSP430 Launch Pad 引脚与数码管引脚对应连接表格:

MSP430 Launch Pad 引脚              对应连接           数码管引脚
      P1.0          <----------->              4: a
      P1.1          <----------->              5: b
      P1.2          <----------->              4: c
      P1.3          <----------->              9: d
      P1.4          <----------->              10:e
      P1.5          <----------->              2: f
      P1.6          <----------->              1: g
      P1.7          <----------->              6: dp
      VCC          <--220Ω电阻->              3: COM



示意图:






源程序:
/******************************************************************
KEY control
【Energia开发环境】MSP430 LAUNCHPAD学习笔记3--Lab3 数码管的显示
                     GF +AB
                        |||||                     
                           __A__

                     F |             | B
                           __G__
                                    
                     E |             | C
                           __D__      
               
                        |||||
                     ED +Cdp   
********************************************************************/
/*设置控制各段的数字IO脚 */
int a = P1_0;
int b = P1_1;
int c = P1_2;
int d = P1_3;
int e = P1_4;
int f = P1_5;
int g = P1_6;
int dp = P1_7;
const unsigned char LED8Pin[]={a,b,c,d,e,f,g,dp};//a.b,c,d,e,f,g,dp
//0-9数字编码
const unsigned char LED8Code[]= { 0xC0,    // 0
                                  0xF9,    // 1
                                  0xA4,    // 2
                                  0xB0,    // 3
                                  0x99,    // 4
                                  0x92,    // 5
                                  0x82,    // 6
                                  0xF8,    // 7
                                  0x80,    // 8
                                  0x90,    // 9
                                  0x88,    // A
                                  0x83,    // B
                                  0xC6,    // C
                                  0xA1,    // D
                                  0x86,    // E
                                  0x8E   // F - 16
                              };
/*初始化设置函数*/
void setup()
{
char i;
// 初始化P1所有端口引脚方向为输出
for(i=0;i<8;i++)
{
    pinMode(LED8Pin, OUTPUT);
    //输出高电平,灭   
    digitalWrite(LED8Pin, HIGH);   
}
}
//显示数字
void LED8Display(char data)
{
char m;
char n;
char dis;
if((0<=data)||(data<16))
{
    dis = LED8Code;
    for(m=0;m<8;m++)
    {
      n = bitRead(dis,m);
      digitalWrite(LED8Pin, n);
    }
}
}
/*循环函数*/
void loop()
{
char count;
for(count=0;count<16;count++)
{
    LED8Display(count);
    delay(1000);
}
}

下面是数码管取模软件:



实际效果图:



#define bitRead(value, bit) (((value) >> (bit)) & 0x01)宏定义



  Byqinkaiabc








activeleo 发表于 2014-1-25 22:41:09

好 东西,楼主的说明写的非常好啊!
页: [1]
查看完整版本: 【Energia开发环境】MSP430 LAUNCHPAD学习笔记3--Lab3 数码管的显示