【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
好 东西,楼主的说明写的非常好啊!
页:
[1]