日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]一、LED點陣發(fā)光原理8*8單色單片機結(jié)構(gòu)圖如下:從電路圖中很簡單的就可以看出來,想要點亮點陣中的某一個LED燈。只要使得那個燈所在的行輸出高電平,所在列輸出低電平就好。二、點陣掃描實驗 1 /*******************

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

8*8單色單片機結(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)圖如下:

1234

這里只是簡單示意一下。。。其中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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉