專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AVR單片機(jī)-數(shù)碼管1

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年10月24日   【字體:

  八段數(shù)碼管由八段LED構(gòu)成 ,Ø各LED陰極或陽(yáng)極并在一起,稱為“位選線”:共陰、共陽(yáng) 。
其余8個(gè)引腳各自引出,稱為“段選線”,各段可以分別控制 。
 
使用LED數(shù)碼管時(shí),要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的編碼正好是一個(gè)字節(jié)。
 


 
共陽(yáng)極數(shù)碼管譯碼表:
 
0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
   0    1     2     3       4      5

 0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c ,
   6     7       8       9      A      B

 0x39 , 0x5e , 0x79 , 0x71 , 0x00
   C     D      E       F    無(wú)顯示
 
共陰極的譯碼表只需對(duì)共陽(yáng)極的譯碼表取反就可以得到。

 

本程序的實(shí)驗(yàn)原理圖:



 
 
源程序:
 
/*
 * 數(shù)碼管.c
 *
 * Created: 2011-6-24 17:24:05
 *  Author: ZYIN
 */
#include <avr/io.h>
unsigned char led0[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
 
void delay(void)//延時(shí)函數(shù)
{
 long int j;
 j=200000;
 while(j--);
}
int main(void)
{
 DDRF=0xff;//設(shè)置PF口為輸出
 PORTF=0b00000110;//設(shè)置74hc573鎖存器
 DDRC=0xff;
 DDRA=0xff;
  PORTA=0xff;
   while(1)
    {
  int i;
        for(i=0;i<16;i++)
  {
   PORTC=~(led0[i]+0x80);//循環(huán)顯示,加0x80意思是把小數(shù)點(diǎn)點(diǎn)亮
   delay();//延時(shí)一下
  
  }
    }
}
 
效果圖:AVR studio 5編譯結(jié)果
 

關(guān)閉窗口

相關(guān)文章