分享

循环显示数码管0-9的实验

 大漠 2012-09-26
 数码管介绍:

通过查询型号LG5011BSR得知其为0.5"单联共阳数码管,下面是其引脚图。

LG5011BSR管脚图.jpg 

引脚对应字段:
1   2      3     4   5     6   7     8      9    10
E   D   电源   C   DP   B   A  电源   F     G
查看其背后,四个角分别有2个原点和5,10两个标记。分别表示了1,6,5,10针脚。


IMGP0071_调整大小.jpg 

数码管和发光二极管一样,需要添加限流电阻,因为网上没有查到资料说明该数码管的击穿电压是多大。所以供给电源电压宁可小不可大,所以选择220Ω限流电阻,和3.3V供电。

线路连接图如下


Snap1.jpg 

IMGP9887_调整大小.JPG 

把下面的代码编译后下载到控制板上,看看效果~
程序如下:
//设置控制各段的数字 IO脚 
int a=7; 
int b=6; 
int c=5; 
int d=11; 
int e=10; 
int f=8; 
int g=9; 
int dp=4;
 
 
//显示数字1 
void digital_1(void) 
  unsigned char j; 
  digitalWrite(c,LOW);//给数字 5 引脚低电平,点亮 c 段 
  digitalWrite(b,LOW);//点亮 b 段 
  for(j=7;j<=11;j++)//熄灭其余段 
    digitalWrite(j,HIGH); 
    digitalWrite(dp,HIGH);
//显示数字2 
void digital_2(void) 
  unsigned char j; 
  digitalWrite(b,LOW); 
  digitalWrite(a,LOW); 
  for(j=9;j<=11;j++) 
    digitalWrite(j,LOW); 
  digitalWrite(c,HIGH); 
  digitalWrite(f,HIGH); 
  digitalWrite(dp,HIGH);
//显示数字3 
void digital_3(void) 
  unsigned char j; 
  digitalWrite(g,LOW); 
  digitalWrite(d,LOW); 
  for(j=5;j<=7;j++) 
    digitalWrite(j,LOW); 
  digitalWrite(f,HIGH); 
  digitalWrite(e,HIGH);
 digitalWrite(dp,HIGH); 
//显示数字4 
void digital_4(void) 
  digitalWrite(c,LOW); 
  digitalWrite(b,LOW); 
  digitalWrite(f,LOW); 
  digitalWrite(g,LOW); 
  digitalWrite(a,HIGH); 
  digitalWrite(e,HIGH); 
  digitalWrite(d,HIGH); 
digitalWrite(dp,HIGH);  
//显示数字5 
void digital_5(void) 
  unsigned char j; 
  for(j=7;j<=9;j++) 
    digitalWrite(j,LOW); 
  digitalWrite(c,LOW); 
  digitalWrite(d,LOW); 
  digitalWrite(b,HIGH); 
  digitalWrite(e,HIGH); 
 digitalWrite(dp,HIGH); 
//显示数字6 
void digital_6(void) 
  unsigned char j; 
  for(j=7;j<=11;j++) 
    digitalWrite(j,LOW); 
  digitalWrite(c,LOW); 
  digitalWrite(b,HIGH); 
digitalWrite(dp,HIGH);  
//显示数字7 
void digital_7(void) 
  unsigned char j; 
  for(j=5;j<=7;j++) 
    digitalWrite(j,LOW); 
  for(j=8;j<=11;j++) 
    digitalWrite(j,HIGH);
   digitalWrite(dp,HIGH); 
//显示数字8 
void digital_8(void) 
  unsigned char j; 
    for(j=5;j<=11;j++) 
    digitalWrite(j,LOW); 
    digitalWrite(dp,HIGH);
//show 9
void digital_9(void)
{
  unsigned char j;
  for (j=5;j<=9;j++)
  digitalWrite(j,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,HIGH);
  digitalWrite(dp,HIGH);
}
//show 0
void digital_0(void)
{
  unsigned char j;
for (j=5;j<=8;j++)
digitalWrite(j,LOW);
digitalWrite(e,LOW);
digitalWrite(dp,LOW);
digitalWrite(g,HIGH);
}
void setup() 
  int i;//定义变量 
  for(i=4;i<=11;i++) 
    pinMode(i,OUTPUT);//设置 5~11引脚
void loop() 
{   
  while(1) 
  { 
    digital_1();//数字1 
    delay(2000);//延时 2s 
    digital_2(); 
    delay(2000); 
    digital_3(); 
    delay(2000); 
    digital_4(); 
    delay(2000); 
    digital_5(); 
    delay(2000); 
    digital_6(); 
    delay(2000); 
    digital_7(); 
    delay(2000); 
    digital_8(); 
    delay(2000); 
    digital_9();
    delay(2000); 
   digital_0();
   delay(2000);  
  } 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多