51單片機第三彈---數位管顯示

來源:互聯網
上載者:User

標籤:

先把定義拉過來:

LED數位管是由多個發光二極體封裝在一起組成“8”字型的器件,引線已在內部串連完成,只需引出它們的各個筆劃,公用電極。LED數位管常用的段數一般為7段,有的另加一個小數點 。LED數位管根據LED的接法不同,分為共陰和共陽兩類 。

           貼原理圖

                           

其實就兩點 :由於板子上有8個數位管,而每個數位管有8段,稱選擇顯示哪一個數位管的東西為位選,稱單個數位管顯示數字幾的東西為段選,位選由P2.2  p2.3 p2.4 控制

數位管IO口為P0 對於每一個數位管,顯示數字幾隻要控制PO的8個段就可以了,低電平點亮,如00000001為a段亮,其他的段不亮。

位選圖如下:

                          

輸入中的A B C分別代表P2.2 P2.3 P2.4

/******************************************************************************** 實 驗 名 : 數位管實驗* 使用的IO     : 數位管使用P0* 實驗效果       : 數位管顯示數字 5201314* 注    意 :*******************************************************************************/#include <reg52.h>#include <intrins.h>#define GPIO_LED P2#define GPIO_DIG P0#define uint unsigned int#define uchar unsigned charsbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示0~9的值unsigned char code MY_CODE[7]={5,2,0,1,3,1,4};void DIG_DISPLAY(){uchar i,j;for(i=0;i<8;i++){switch(7-i){case 0:LSA=0;LSB=0;LSC=0;break;case 1:LSA=1;LSB=0;LSC=0;break;case 2:LSA=0;LSB=1;LSC=0;break;case 3:LSA=1;LSB=1;LSC=0;break;case 4:LSA=0;LSB=0;LSC=1;break;case 5:LSA=1;LSB=0;LSC=1;break;case 6:LSA=0;LSB=1;LSC=1;break;case 7:LSA=1;LSB=1;LSC=1;break;}if(i==7)continue;GPIO_DIG=DIG_CODE[MY_CODE[i]];j=10;while(j--);GPIO_DIG=0x00;//消隱}}void main(){while(1){DIG_DISPLAY();}}


51單片機第三彈---數位管顯示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.