色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Arduino驅動7段LED顯示屏的不同方法

454398 ? 來源:wv ? 2019-10-10 14:40 ? 次閱讀

步驟1:

使用Arduino驅動7段LED顯示屏的不同方法

直接從Arduino/Atmega 328

通過Arduino/Atmega 328的移位寄存器

直接從Arduino/Atmega 328進行直接端口操作

通過Arduino/Atmega 328/按鈕計數器的移位寄存器多路復用

通過Arduino/Atmega 328/電位器計數器的移位寄存器多路復用

1-直接從Arduino/Atmega 328

自動從零計數到九,然后重復

代碼

///感謝Grumpy Mike http://www.thebox.myzen .co.uk/Tutorial/Arrays.html

//字節內的LED段分配= {DP ABCDEFG}

int引腳[] = {2、3、4、5、6、7、8、9} ;//分配給DP但未使用的引腳9(char tenCode中二進制數組的第一個元素)

int digit [] = {0,1,2,3,4,5,6,7,7,8,9,10 };

int計數器= 0;//將計數器初始化為零

int timer = 1000;//延遲計時器間隔

char tenCode [] = {B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000,B01111111,B01111011};

void setup()

{

(int i = 0; i 《8; i ++)//將數字引腳設置為OUTPUTS

pinMode(pins [i],OUTPUT);

}

void loop()

{

for(int j = 0; j 《10; j ++)

{ displayEleven(digit [j]);

delay(timer);

}

}

void displayEleven( int num)

{

int mask = 1; for(int i = 0; i 《8; i ++)

{((mask&tenCode [num])== 0)

digitalWrite(pins [i],LOW);

else digitalWrite(pins [i],HIGH);

mask = mask 《《1;

}

}

步驟2:

2-通過Arduino/Atmega 328的移位寄存器

從零自動計數到九,然后重復

代碼

//字節= {內的LED段分配ABCDEFG DP}

int閂鎖Pin = 8;//連接到移位寄存器的引腳12

int dataPin = 11;//連接到移位寄存器的引腳14

int clockPin = 12;////連接到移位寄存器的引腳11

int i = 0;

字節數字[] = {B11111100,B01100000,B11011010,B11110010,B01100110,B10110110,B10111110,

B11100000,B11111110,B11110110};

void setup()

{

pinMode(dataPin,OUTPUT);//將dataPin配置為OUTPUT

pinMode(latchPin,OUTPUT);//將閂鎖引腳配置為OUTPUT

pinMode(clockPin,OUTPUT);//將clockPin配置為OUTPUT

}

void loop()

{

for(i = 0; i 《10; i ++)

{

digitalWrite(latchPin,LOW);//將鎖存器拉低以開始發送數據

shiftOut(dataPin,clockPin,LSBFIRST,digit [i]);//發送數據

digitalWrite(latchPin,HIGH);//將閂鎖拉到高電平以停止發送數據

delay(1000);

}

}

步驟3:

3-直接從Arduino/Atmega 328直接進行端口操作

從零開始自動計數到9,然后重復

代碼

////因為直接端口操作使用引腳0和1,即RX和TX

//分別為引腳,上傳代碼時必須斷開這些引腳

//字節= {DP ABCDEFG}

字節i = 0內的LED段分配;

字節數字[10] = {B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000,B01111111,B01111011};

無效setup()

{

DDRD = B11111111;//將PORTD(數字7?0)設置為輸出

}

void count()

{

for(i = 0; i 《10; i ++)

{

PORTD = digit [i];

delay(1000);

PORTD = 0;

}

}

void loop()

{

count();

}

步驟4:

4-通過從Arduino/Atmega 328/按鈕計數器

按鈕在0到8之間遞增和遞減計數器

代碼

//7段LED計數器,使用74HC595 8位移位寄存器多路復用,通過按鈕開關將計數器從0遞增到8到零

//從這些源代碼一起整理代碼-感謝法爾斯

//http://www.sweeting.org/mark/blog/2011/11/27/arduino-74hc595-shift-register-and-a-7-segment-led-顯示

//http://thecustomgeek.com/2011/06/29/multiplexing-for-a-7-yearold/

const int閂鎖Pin = 5;//引腳連接到74HC595的引腳12(鎖存器)

const int dataPin = 6;//引腳連接到74HC595的引腳14(數據)

const int clockPin = 7;//引腳連接到74HC595的引腳11(時鐘

int upPin = 12;//按鈕連接到引腳12

int downPin = 13;//按鈕連接到引腳12

int currUpState = 1;//將currUpState初始化為HIGH

int currDownState = 1;//將currDownState初始化為HIGH

int prevUpState = 0;

int prevDownState = 0;

int counter = 0;//將計數器初始化為零

const字節編號[10] =//用顯示段0、1、2、3、4、5、6、7、8、9 《描述每個數字/p》

{

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11100110,

};

void setup()

{

pinMode(latchPin,OUTPUT);//將SR引腳設置為輸出

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

pinMode(upPin,INPUT);//將引腳12設置為按鈕輸入

pinMode(downPin,INPUT);//將引腳13設置為按鈕輸入

}

void loop()

{

currUpState = digitalRead(upPin);

if(prevUpState!= currUpState)//狀態從

{//從高變為低,反之亦然

prevUpState = currUpState;

if(currUpState == HIGH)//如果按下按鈕

counter ++;//將計數器加1

//延遲(1);

}

if(counter》 8)

計數器-= 1;

show(numbers [counter]);//顯示當前數字

currDownState = digitalRead(downPin);

如果(prevDownState!= currDownState)//狀態從

{//從高到低,反之亦然

prevDownState = currDownState;

if(currDownState == HIGH)//如果按下按鈕

counter- = 1 ;//將計數器減1

//delay(1);

}

if(counter 《0)

counter ++ ;

show(numbers [counter]);//顯示當前數字

}

void show(字節數)

{

////使用循環和按位AND移至組成

//七段顯示的每一位(從左到右,A =》 G),然后檢查

//看是否應該

for(int j = 0; j 《= 7; j ++)

{

byte toWrite = number&(B10000000 》》 j );

if(!toWrite){

Continue;

}//如果所有位均為0,則將其寫入移位寄存器沒有意義,因此

shiftIt(toWrite);繼續操作。////否則將其移入寄存器

}

}

void shiftIt(字節數據)

{

digitalWrite(latchPin,LOW);//將這8位時鐘輸入到寄存器中時將閂鎖引腳LOW

for(int k = 0; k 《= 7; k ++)

{

digitalWrite(clockPin,LOW);//ClockPin在發送位之前為低電平

if(data&(1 《

{

digitalWrite(dataPin,HIGH);//打開“

}

else

{

digitalWrite(dataPin,LOW);//將“關閉”

}

digitalWrite(clockPin,HIGH);//并為

}

digitalWrite(clockPin,LOW)中的位提供時鐘//停止移出數據

digitalWrite(latchPin,HIGH);//將閂鎖Pin設置為高電平以鎖定并發送數據

}

步驟5:

5-通過Arduino/Atmega 328/電位計計數器的移位寄存器多路復用

電位計用于在0到8之間遞增和遞減計數器

Code

//7段LED計數器,使用74HC595 8位移位寄存器進行多路復用,通過電位計將計數器從0遞增為8到0 資料來源-感謝法爾斯

//http://www.sweeting.org/mark/blog/2011/11/27/arduino-74hc595-shift-register-and-a-7-segment-led-display

//http://thecustomgeek.com/2011/06/29/multiplexing-for-a-7-yeard/

const int閂鎖Pin = 5;//引腳連接到74HC595的引腳12(鎖存器)

const int dataPin = 6;//引腳連接到74HC595的引腳14(數據)

const int clockPin = 7;//引腳連接到74HC595的引腳11(時鐘)

int counter = 0;//將計數器初始化為零

int potReading = 0;

const字節編號[10] =//用顯示段0、1、2、3、4、5來描述每個數字6,7,8,9

{

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11100110,

};

void setup()

{

pinMode(latchPin,OUTPUT);//將SR引腳設置為輸出

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

}

void loop()

{

potReading =模擬讀取(A0);

potReading = map(potReading,0,1023,0,8);

{

if(potReading》 8)

potReading-;

show(numbers [potReading]);

}

{

if(potReading 《0)

potReading ++;

show(numbers [potReading] );

}

}

void show(字節數)

{

//使用循環和按位AND移至使向上

//七段顯示(從左到右,A =》 G),然后檢查

//是否應打開

for(int j = 0; j 《= 7; j ++)

{

要寫入的字節=數字&(B10000000 》》 j);

if(!toWrite){

continue;

}//如果全部位為0,則無意義將其寫入移位寄存器,因此請中斷并繼續執行下一段。

shiftIt(toWrite);//否則將其移入寄存器

}

}

void shiftIt(字節數據)

{

digitalWrite(latchPin,LOW);//將這8位時鐘輸入到寄存器

時將閂鎖引腳LOW設置為(int k = 0; k 《= 7; k ++)

{

digitalWrite(clockPin,LOW);//ClockPin在發送位之前為低電平

////請注意,在我們的示例中,對于

//“ On”,我們需要將pinState設置為0(LOW),因為74HC595吸收電流時使用常見的

//陽極顯示器。如果要使用公共陰極顯示器,則

//將其切換。

if(data&(1 《 {

digitalWrite(dataPin,HIGH);//打開“

}

else

{

digitalWrite(dataPin,LOW);//關閉“

}

digitalWrite(clockPin,HIGH);//并時鐘

}

digitalWrite(clockPin,LOW);中的位//停止移出數據

digitalWrite(latchPin,HIGH);//將閂鎖Pin設置為高電平以鎖定并發送數據

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LED顯示屏
    +關注

    關注

    36

    文章

    1825

    瀏覽量

    98904
  • Arduino
    +關注

    關注

    188

    文章

    6471

    瀏覽量

    187308
收藏 人收藏

    評論

    相關推薦

    #物聯網 LED顯示屏

    LED顯示屏
    斯塔克物聯科技
    發布于 :2024年11月01日 14:24:14

    液晶顯示屏led顯示屏的區別

    在現代電子設備中,顯示屏是人機交互的重要界面。隨著科技的發展,顯示屏技術也在不斷進步,其中液晶顯示屏(LCD)和LED顯示屏是兩種主流的
    的頭像 發表于 10-12 10:39 ?1475次閱讀

    LED顯示屏驅動電源:恒流與恒壓,誰更勝一籌?

    。然而,在這背后,有一個不可或缺的元素在默默支撐著這一切——那就是LED顯示屏驅動電源。 LED顯示屏
    的頭像 發表于 09-24 01:50 ?429次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b><b class='flag-5'>驅動</b>電源:恒流與恒壓,誰更勝一籌?

    LED透明顯示屏生產 原理 技術 應用

    LED透明顯示屏常指的是硬燈條透明,具有輕薄、通透、播放影像通透絢麗的特點。是對LED顯示屏
    的頭像 發表于 08-29 15:01 ?462次閱讀

    全彩LED顯示屏/天幕哪家好?#LED顯示屏 #天幕# 多媒體宣傳展示

    LED顯示屏
    jf_50082260
    發布于 :2024年06月13日 07:24:59

    LED顯示屏設計方案

    1、LED顯示屏基礎知識2、LED顯示屏設計要素3、LED顯示屏
    發表于 04-03 17:21 ?12次下載

    LED電子顯示屏的相關報告

    LED電子顯示屏是一種利用LED發光二極管作為顯示元件,通過控制LED的亮滅來顯示文字、圖像、視
    發表于 04-03 17:18 ?0次下載

    LED顯示屏模組邏輯驅動芯片:SM245的功能和應用

    LED顯示屏模組邏輯驅動芯片是LED顯示屏中的重要部件,它負責控制LED燈珠的亮度和顏色,從而實
    的頭像 發表于 02-25 10:37 ?1138次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>模組邏輯<b class='flag-5'>驅動</b>芯片:SM245的功能和應用

    LED顯示屏是什么材質 led顯示屏參數設置

    LED顯示屏是一種基于LED(Light Emitting Diode)技術的顯示裝置,用于在各種場合中展示文字、圖像、視頻等內容。它由多個LED
    的頭像 發表于 02-03 14:33 ?4043次閱讀

    Led顯示屏控制系統怎么使用 led顯示屏控制器怎么設置

    Led顯示屏控制系統是一種用于控制LED顯示屏的硬件設備,通過它可以實現對LED顯示屏的亮度、顏
    的頭像 發表于 02-03 14:03 ?8226次閱讀

    LED顯示屏都有哪些性能呢?

    LED顯示屏是目前常用的戶外以及室內的大顯示,應該如何挑選一款性能高的LED顯示屏呢,
    的頭像 發表于 01-25 10:09 ?884次閱讀

    商場外墻戶外P5LED顯示屏# P5LED顯示屏# 商場LED顯示屏# 廣場LED顯示屏# 小區LED顯示屏

    LED顯示屏
    LED顯示屏生產廠家
    發布于 :2024年01月16日 20:24:01

    酒店會議室LED顯示屏P2#酒店LED顯示屏# P2LED顯示屏# 會議室LED顯示屏

    LED顯示屏
    LED顯示屏生產廠家
    發布于 :2024年01月16日 20:19:32

    什么是COB和GOB LED顯示屏

    新技術,類似于模塊封裝。它正在使用整個顯示屏模塊(例如250 * 250mm)進行工作,方法是使用已獲專利的透明膠水覆蓋模塊的PCB板表面,上面已經焊接了數千個SMD燈,蕞后模塊在其表面上獲得了特殊的屏蔽層。 它具有高防護性的LED
    的頭像 發表于 01-16 20:17 ?1631次閱讀
    什么是COB和GOB <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>?
    主站蜘蛛池模板: 张津瑜的9分58秒7段免费| 被黑人做的白浆直流| 高清mv视频免费观看| 日韩中文字幕亚洲无线码| 国产成人在线观看网站| 午夜伦理在线观看| 久久国产香蕉视频| caoporn 免费视频| 我的奶头被客人吸的又肿又红| 国产在线观看香蕉视频| 中文字幕va一区二区三区| 欧美性暴力变态xxxx| 国产精品久久久久久久A片冻果 | 超碰99热在线精品视频| 无码日韩人妻精品久久蜜桃免费| 精品国产麻豆免费人成网站| 999精品免费视频| 午夜伦理:伦理片| 美女不要啊| 国产精品久久久久影院嫩草| 有码 亚洲 制服 国产 在线| 日本性hd| 久久这里只有精品视频e| 大乳牛奶女在线观看| 在线高清视频不卡无码| 色综合久久天天影视网| 久久伊人免费| 国产欧美日韩国产高清| 99爱在线观看| 亚洲国产欧美另类| 青青app| 蝴蝶中文娱乐| 成人亚洲精品| 91麻豆久久| 亚洲三级视频在线观看| 日本ccc三级| 久久综合中文字幕佐佐木希| 国产精品无码久久久久不卡| gratis videos欧美最新| 夜色私人影院永久入口| 午夜A级理论片左线播放 |