九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
[51單片機(jī)學(xué)習(xí)筆記FOUR]

一、LED點陣發(fā)光原理

8*8單色單片機(jī)結(jié)構(gòu)圖如下:

從電路圖中很簡單的就可以看出來,想要點亮點陣中的某一個LED燈。只要使得那個燈所在的行輸出高電平,所在列輸出低電平就好。

二、點陣掃描實驗


  1 /***********************************************

  2 實驗名稱:      點陣掃描

  3 實驗說明:      掃描每個LED燈,檢查點陣是否完好

  4 實驗時間:      2014/12/24

  5 ***********************************************/

  6 #include

  7 #include

  8 

  9 #define uchar unsigned char

 10 #define uint  unsigned int

 11 

 12 sbit MOSIO = P3^4;//輸入口

 13 sbit R_CLK = P3^5;//鎖存器時鐘

 14 sbit S_CLK = P3^6;//移位寄存器時鐘

 15 

 16 //data3:右邊半塊列數(shù)據(jù);data2:左邊半塊列數(shù)據(jù)

 17 //data1:下邊半塊行數(shù)據(jù);data0:上邊半塊行數(shù)據(jù)

 18 void HC595Pro(uchar data3,uchar data2,uchar data1,uchar data0);

 19 

 20 void main()

 21 {

 22     uint i,j;

 23     uchar d;

 24 

 25     while(1)

 26     {

 27         //全亮

 28         HC595Pro(0x00,0x00,0xFF,0xFF);

 29         for(i=0;i<40000;i++);          //延時40ms  

 30             

 31         /*行掃描*/

 32         //上半塊行掃描

 33         d = 0x01;

 34         for(i=0;i<8;i++)

 35         {

 36             HC595Pro(0x00,0x00,0x00,d);

 37             d <<= 1;

 38             for(j=0;j<20000;j++);               //延時20ms    

 39         }      

 40         //下半塊行掃描

 41         d = 0x01;

 42         for(i=0;i<8;i++)

 43         {

 44             HC595Pro(0x00,0x00,d,0x00);

 45             d <<= 1;

 46             for(j=0;j<20000;j++);                 //延時20ms        

 47         }

 48 

 49         /*列掃描*/

 50         //左半快列掃描

 51         d = 0xFE;

 52         for(i=0;i<8;i++)

 53         {

 54             HC595Pro(0xFF,d,0xFF,0xFF);

 55             //如果還想用跟行掃描一樣的形式,看main()最下面注釋行

 56             d = _crol_(d,1);                   //循環(huán)左移

 57             for(j=0;j<20000;j++);              //延時20ms        

 58         }

 59         //右半塊列掃描

 60         d = 0xFE;

 61         for(i=0;i<8;i++)

 62         {

 63             HC595Pro(d,0xFF,0xFF,0xFF);

 64             d = _crol_(d,1);

 65             for(j=0;j<20000;j++);               //延時20ms    

 66         }

 67         /******************************************************

 68         b1 = 0x01;

 69         for(i = 0; i<8; i++)

 70         {

 71             HC595Pro(0xFF, ~b1, 0xFF, 0xFF);

 72             b1 <<= 1;

 73             for(j=0; j<20000; j++);

 74         }

 75 

 76         b1 = 0x01;

 77         for(i = 0; i<8; i++)

 78         {

 79             HC595Pro(~b1, 0xFF, 0xFF, 0xFF);

 80             b1 <<= 1;

 81             for(j=0; j<20000; j++);

 82         }    

 83         ******************************************************/

 84     }

 85 }

 86 

 87 void HC595Pro(uchar data3,uchar data2,uchar data1,uchar data0)

 88 {

 89     uchar i;

 90     //先移入的會被后面移入的數(shù)據(jù)推移到后面的595中,所以需要先移入data3

 91     for(i=0;i<8;i++)

 92     {

 93         //先移入高位再移入低位,移位寄存器移入的第一位就是輸出的最高位

 94         MOSIO = data3 >> 7;

 95         data3 <<= 1;

 96         S_CLK = 0;//給一個上升沿,移位

 97         S_CLK = 1;

 98     }    

 99     for(i=0;i<8;i++)

100     {

101         MOSIO = data2 >> 7;

102         data2 <<= 1;

103         S_CLK = 0;

104         S_CLK = 1;

105     }

106     for(i=0;i<8;i++)

107     {

108         MOSIO = data1 >> 7;

109         data1 <<= 1;

110         S_CLK = 0;

111         S_CLK = 1;

112     }

113     for(i=0;i<8;i++)

114     {

115         MOSIO = data0 >> 7;

116         data0 <<= 1;

117         S_CLK = 0;

118         S_CLK = 1;

119     }

120 

121     //上升沿時將移位寄存器數(shù)據(jù)移到鎖存器中用于顯示,平時保持低電平,數(shù)據(jù)不變

122     R_CLK = 0;

123     R_CLK = 1;

124     R_CLK = 0;

125 

126 }



這里我用到的是16*16的點陣。其實也就是4個8*8的小點陣組成起來的。其結(jié)構(gòu)圖如下:

12
34

這里只是簡單示意一下。。。其中4個小塊都是與一個相對應(yīng)的74HC595相連。每個74HC595又是級聯(lián)的,入口只有一個,我們需要輸入相對應(yīng)的行,列電平情況來控制LED燈的亮滅。

根據(jù)74HC595的結(jié)構(gòu)可以知道,輸入的數(shù)據(jù)是8位8位的輸入的。最開始輸入的8位數(shù)據(jù)會被后面的輸入數(shù)據(jù)推移到第四個74HC595中。

所以實際輸入時,是先輸入2和4的列數(shù)據(jù),再輸入1和3的列數(shù)據(jù),然后再是3和4的行數(shù)據(jù),最后才是1和2的行數(shù)據(jù)。

三、16*16點陣倒計時

  1 /***********************************************************************

  2 實驗名稱:   16*16點陣數(shù)字倒計時

  3 實驗時間:   2014/12/26

  4 ***********************************************************************/

  5 #include

  6 #include

  7 

  8 #define uchar unsigned char

  9 #define uint  unsigned int

 10 

 11 sbit MOSIO = P3^4;

 12 sbit R_CLK = P3^5;

 13 sbit S_CLK = P3^6;

 14 

 15 void HC595Pro(uchar data3,uchar data2,uchar data1,uchar data0);

 16 

 17 void main()

 18 {

 19     uint i,c;

 20     uchar j;

 21     i = 100;

 22 

 23     while(1)

 24     {

 25         //顯示數(shù)字10

 26         for(c=i;c>0;c--)//延時

 27             for(j=0;j<16;j++)

 28             {

 29                 //字模取出來的數(shù)據(jù)是跟實際實際所需數(shù)據(jù)相反的,所以要取反。

 30                 //函數(shù)對應(yīng)的參數(shù)分別表示列2,列1,行2,行1

 31                 HC595Pro(~tab1[2*j+1],~tab1[2*j],tab0[2*j],tab0[2*j+1]);

 32             }

 33         HC595Pro(0xFF,0xFF,0x00,0x00);//清屏

 34 

 35         //顯示數(shù)字09

 36         for(c=i;c>0;c--)

 37             for(j=0;j<16;j++)

 38             {

 39                 HC595Pro(~tab2[2*j+1],~tab2[2*j],tab0[2*j],tab0[2*j+1]);

 40             }

 41         HC595Pro(0xFF,0xFF,0x00,0x00);//清屏

 42 

 43         //顯示數(shù)字08

 44         for(c=i;c>0;c--)

 45             for(j=0;j<16;j++)

 46             {

 47                 HC595Pro(~tab3[2*j+1],~tab3[2*j],tab0[2*j],tab0[2*j+1]);

48

[1] [2] [3] [4]

關(guān)鍵字:51單片機(jī)  16*16LED  點陣

編輯:什么魚 引用地址:http://www.eeworld.com.cn/mcu/article_2017010532984.html
本網(wǎng)站轉(zhuǎn)載的所有的文章、圖片、音頻視頻文件等資料的版權(quán)歸版權(quán)所有人所有,本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如果本網(wǎng)所選內(nèi)容的文章作者及編輯認(rèn)為其作品不宜公開自由傳播,或不應(yīng)無償使用,請及時通過電子郵件或電話通知我們,以迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【   】16X16點陣漢字顯示 倒計時 proteus仿真 74HC595驅(qū)動 帶源程序
16*64點陣程序及滾動效果視頻 - 硬件/嵌入開發(fā) / 單片機(jī)/工控
74hc164驅(qū)動共陰數(shù)碼管與共陽數(shù)碼管
51單片機(jī)學(xué)習(xí)22-88點陣動態(tài)顯示
百度經(jīng)驗
自制16×16 LED點陣屏
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服