91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Arduino驅(qū)動(dòng)7段LED顯示屏的不同方法

454398 ? 來(lái)源:wv ? 2019-10-10 14:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:

使用Arduino驅(qū)動(dòng)7段LED顯示屏的不同方法

直接從Arduino/Atmega 328

通過(guò)Arduino/Atmega 328的移位寄存器

直接從Arduino/Atmega 328進(jìn)行直接端口操作

通過(guò)Arduino/Atmega 328/按鈕計(jì)數(shù)器的移位寄存器多路復(fù)用

通過(guò)Arduino/Atmega 328/電位器計(jì)數(shù)器的移位寄存器多路復(fù)用

1-直接從Arduino/Atmega 328

自動(dòng)從零計(jì)數(shù)到九,然后重復(fù)

代碼

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

//字節(jié)內(nèi)的LED段分配= {DP ABCDEFG}

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

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

int計(jì)數(shù)器= 0;//將計(jì)數(shù)器初始化為零

int timer = 1000;//延遲計(jì)時(shí)器間隔

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

void setup()

{

(int i = 0; i 《8; i ++)//將數(shù)字引腳設(shè)置為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-通過(guò)Arduino/Atmega 328的移位寄存器

從零自動(dòng)計(jì)數(shù)到九,然后重復(fù)

代碼

//字節(jié)= {內(nèi)的LED段分配ABCDEFG DP}

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

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

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

int i = 0;

字節(jié)數(shù)字[] = {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);//將鎖存器拉低以開(kāi)始發(fā)送數(shù)據(jù)

shiftOut(dataPin,clockPin,LSBFIRST,digit [i]);//發(fā)送數(shù)據(jù)

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

delay(1000);

}

}

步驟3:

3-直接從Arduino/Atmega 328直接進(jìn)行端口操作

從零開(kāi)始自動(dòng)計(jì)數(shù)到9,然后重復(fù)

代碼

////因?yàn)橹苯佣丝诓僮魇褂靡_0和1,即RX和TX

//分別為引腳,上傳代碼時(shí)必須斷開(kāi)這些引腳

//字節(jié)= {DP ABCDEFG}

字節(jié)i = 0內(nèi)的LED段分配;

字節(jié)數(shù)字[10] = {B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000,B01111111,B01111011};

無(wú)效setup()

{

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

}

void count()

{

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

{

PORTD = digit [i];

delay(1000);

PORTD = 0;

}

}

void loop()

{

count();

}

步驟4:

4-通過(guò)從Arduino/Atmega 328/按鈕計(jì)數(shù)器

按鈕在0到8之間遞增和遞減計(jì)數(shù)器

代碼

//7段LED計(jì)數(shù)器,使用74HC595 8位移位寄存器多路復(fù)用,通過(guò)按鈕開(kāi)關(guān)將計(jì)數(shù)器從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(數(shù)據(jù))

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

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;//將計(jì)數(shù)器初始化為零

const字節(jié)編號(hào)[10] =//用顯示段0、1、2、3、4、5、6、7、8、9 《描述每個(gè)數(shù)字/p》

{

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11100110,

};

void setup()

{

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

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

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

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

}

void loop()

{

currUpState = digitalRead(upPin);

if(prevUpState!= currUpState)//狀態(tài)從

{//從高變?yōu)榈停粗嗳?/p>

prevUpState = currUpState;

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

counter ++;//將計(jì)數(shù)器加1

//延遲(1);

}

if(counter》 8)

計(jì)數(shù)器-= 1;

show(numbers [counter]);//顯示當(dāng)前數(shù)字

currDownState = digitalRead(downPin);

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

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

prevDownState = currDownState;

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

counter- = 1 ;//將計(jì)數(shù)器減1

//delay(1);

}

if(counter 《0)

counter ++ ;

show(numbers [counter]);//顯示當(dāng)前數(shù)字

}

void show(字節(jié)數(shù))

{

////使用循環(huán)和按位AND移至組成

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

//看是否應(yīng)該

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

{

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

if(!toWrite){

Continue;

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

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

}

}

void shiftIt(字節(jié)數(shù)據(jù))

{

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

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

{

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

if(data&(1 《

{

digitalWrite(dataPin,HIGH);//打開(kāi)“

}

else

{

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

}

digitalWrite(clockPin,HIGH);//并為

}

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

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

}

步驟5:

5-通過(guò)Arduino/Atmega 328/電位計(jì)計(jì)數(shù)器的移位寄存器多路復(fù)用

電位計(jì)用于在0到8之間遞增和遞減計(jì)數(shù)器

Code

//7段LED計(jì)數(shù)器,使用74HC595 8位移位寄存器進(jìn)行多路復(fù)用,通過(guò)電位計(jì)將計(jì)數(shù)器從0遞增為8到0 資料來(lái)源-感謝法爾斯

//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(數(shù)據(jù))

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

int counter = 0;//將計(jì)數(shù)器初始化為零

int potReading = 0;

const字節(jié)編號(hào)[10] =//用顯示段0、1、2、3、4、5來(lái)描述每個(gè)數(shù)字6,7,8,9

{

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11100110,

};

void setup()

{

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

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

}

void loop()

{

potReading =模擬讀?。ˋ0);

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

{

if(potReading》 8)

potReading-;

show(numbers [potReading]);

}

{

if(potReading 《0)

potReading ++;

show(numbers [potReading] );

}

}

void show(字節(jié)數(shù))

{

//使用循環(huán)和按位AND移至使向上

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

//是否應(yīng)打開(kāi)

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

{

要寫入的字節(jié)=數(shù)字&(B10000000 》》 j);

if(!toWrite){

continue;

}//如果全部位為0,則無(wú)意義將其寫入移位寄存器,因此請(qǐng)中斷并繼續(xù)執(zhí)行下一段。

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

}

}

void shiftIt(字節(jié)數(shù)據(jù))

{

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

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

{

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

////請(qǐng)注意,在我們的示例中,對(duì)于

//“ On”,我們需要將pinState設(shè)置為0(LOW),因?yàn)?4HC595吸收電流時(shí)使用常見(jiàn)的

//陽(yáng)極顯示器。如果要使用公共陰極顯示器,則

//將其切換。

if(data&(1 《 {

digitalWrite(dataPin,HIGH);//打開(kāi)“

}

else

{

digitalWrite(dataPin,LOW);//關(guān)閉“

}

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

}

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

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

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LED顯示屏
    +關(guān)注

    關(guān)注

    39

    文章

    1861

    瀏覽量

    103997
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

    197081
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MAX6952:4 線接口 5×7 矩陣 LED 顯示驅(qū)動(dòng)芯片深度解析

    MAX6952:4 線接口 5×7 矩陣 LED 顯示驅(qū)動(dòng)芯片深度解析 在電子設(shè)備的顯示領(lǐng)域,LED
    的頭像 發(fā)表于 02-03 15:15 ?224次閱讀

    MAX20056B:汽車顯示屏高亮度LED驅(qū)動(dòng)的理想之選

    MAX20056B:汽車顯示屏高亮度LED驅(qū)動(dòng)的理想之選 在汽車顯示屏應(yīng)用中,高亮度LED驅(qū)動(dòng)
    的頭像 發(fā)表于 01-30 14:20 ?173次閱讀

    LED顯示屏常見(jiàn)故障分類及處理方法

    常見(jiàn)故障分類LED顯示屏常見(jiàn)故障分為三類:LED模組常見(jiàn)故障、室內(nèi)全彩顯示屏故障及戶外全彩顯示屏故障。針對(duì)每一類故障,我們將詳細(xì)分析可能的原
    的頭像 發(fā)表于 12-18 15:48 ?1303次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>常見(jiàn)故障分類及處理<b class='flag-5'>方法</b>

    基于RK3568開(kāi)發(fā)板顯示屏調(diào)試適配方法(1)-如何在Uboot界面切換顯示屏

    顯示屏作為電子產(chǎn)品不可或缺的一部分,此文檔的目的在于幫助用戶調(diào)試適配其它顯示屏。本文檔將以調(diào)試適配7寸MIPI為例。本文檔章節(jié)安排:第一章:幫助用戶如何在Uboot界面切換
    的頭像 發(fā)表于 11-07 16:19 ?554次閱讀
    基于RK3568開(kāi)發(fā)板<b class='flag-5'>顯示屏</b>調(diào)試適配<b class='flag-5'>方法</b>(1)-如何在Uboot界面切換<b class='flag-5'>顯示屏</b>

    力芯微矩陣型恒壓LED驅(qū)動(dòng)芯片為車載顯示屏帶來(lái)“智”變

    在汽車智能化飛速發(fā)展的今天,車載顯示屏作為人車交互的重要窗口,其顯示效果和性能直接影響到用戶的駕駛體驗(yàn)和行車安全。力芯微矩陣型恒壓LED驅(qū)動(dòng)芯片,憑借其卓越的性能和創(chuàng)新的技術(shù),為車載
    的頭像 發(fā)表于 10-27 16:02 ?1147次閱讀
    力芯微矩陣型恒壓<b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動(dòng)</b>芯片為車載<b class='flag-5'>顯示屏</b>帶來(lái)“智”變

    解析LED顯示屏背后的驅(qū)動(dòng)方案

    當(dāng)前,各式各樣的LED顯示屏正以創(chuàng)新的顯示效果與豐富造型,拓展著人們感知視覺(jué)世界的維度。而這些視覺(jué)盛宴的背后,都離不開(kāi)“幕后操控者”——LED驅(qū)動(dòng)
    的頭像 發(fā)表于 10-27 15:04 ?4675次閱讀
    解析<b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>背后的<b class='flag-5'>驅(qū)動(dòng)</b>方案

    LED全息顯示屏:1920Hz與3840Hz刷新率對(duì)比解析

    在科技飛速發(fā)展的當(dāng)下,LED全息顯示屏以其獨(dú)特的視覺(jué)效果和廣泛的應(yīng)用場(chǎng)景,成為顯示領(lǐng)域的焦點(diǎn)。其中,刷新率作為衡量顯示屏性能的關(guān)鍵指標(biāo),直接影響著
    的頭像 發(fā)表于 10-08 14:57 ?1507次閱讀
    <b class='flag-5'>LED</b>全息<b class='flag-5'>顯示屏</b>:1920Hz與3840Hz刷新率對(duì)比解析

    碩博電子7寸觸摸顯示屏,支持CAN通信和Codesy編程#工業(yè)顯示屏 #汽車CAN總線? #觸摸顯示屏

    顯示屏
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年09月18日 15:29:59

    浮思特 | LED顯示屏驅(qū)動(dòng)IC技術(shù)解析,基礎(chǔ)原理與創(chuàng)新應(yīng)用

    在每一塊驚艷的LED顯示屏背后,驅(qū)動(dòng)IC如同精密控制電流的“神經(jīng)中樞”,默默決定著畫面的流暢度、色彩的真實(shí)感與能耗的高低。從戶外巨幕的強(qiáng)韌可靠,到室內(nèi)高清屏的細(xì)膩呈現(xiàn),再到虛擬拍攝的零瑕疵要求
    的頭像 發(fā)表于 06-20 09:59 ?3090次閱讀
    浮思特 | <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b><b class='flag-5'>驅(qū)動(dòng)</b>IC技術(shù)解析,基礎(chǔ)原理與創(chuàng)新應(yīng)用

    優(yōu)質(zhì)材料檢驗(yàn)辨認(rèn)出放心LED顯示屏

    LED顯示屏作為城市廣告發(fā)展的一項(xiàng)重要媒介,其質(zhì)量是廣告投放方關(guān)注的重點(diǎn)。然而外形相似的LED顯示屏,由于采用不同的生產(chǎn)工藝、元器件,產(chǎn)品質(zhì)量和價(jià)格都差別很大。在中國(guó)市場(chǎng),廠家的知識(shí)產(chǎn)
    的頭像 發(fā)表于 06-18 14:49 ?681次閱讀
    優(yōu)質(zhì)材料檢驗(yàn)辨認(rèn)出放心<b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>

    戶外顯示屏驅(qū)動(dòng)板的具體防護(hù)措施

    驅(qū)動(dòng)板在戶外顯示屏中的防水設(shè)計(jì)是確保顯示屏長(zhǎng)期穩(wěn)定運(yùn)行的關(guān)鍵之一。
    的頭像 發(fā)表于 04-22 15:58 ?1106次閱讀

    LED顯示屏:點(diǎn)亮商業(yè)未來(lái)的璀璨之光

    LED顯示屏不僅是展示工具,更是連接品牌與消費(fèi)者的現(xiàn)代橋梁。在注意力經(jīng)濟(jì)時(shí)代,投資LED顯示屏就是投資于企業(yè)的可見(jiàn)度和影響力。讓我們攜手,用LED
    的頭像 發(fā)表于 04-16 15:25 ?1478次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>:點(diǎn)亮商業(yè)未來(lái)的璀璨之光

    智慧路燈桿上 LED 顯示屏的信息發(fā)布

    在智慧城市建設(shè)的浪潮中,智慧路燈桿作為重要的基礎(chǔ)設(shè)施,正發(fā)揮著越來(lái)越多的功能。其中,安裝在智慧路燈桿上的 LED 顯示屏成為信息傳播的新窗口,極大地提升了城市管理效率和居民生活體驗(yàn)。那么,這些
    的頭像 發(fā)表于 04-12 21:59 ?1640次閱讀

    紅冉LED顯示屏:技術(shù)革新引領(lǐng)未來(lái)發(fā)展

    LED顯示屏作為一種高效、靈活的顯示技術(shù),近年來(lái)經(jīng)歷了翻天覆地的變革。從最初的單色顯示到全彩顯示,再到小間距和微
    的頭像 發(fā)表于 04-10 17:19 ?863次閱讀
    紅冉<b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>:技術(shù)革新引領(lǐng)未來(lái)發(fā)展

    LED燈桿與常規(guī)LED顯示屏的區(qū)別

    LED燈桿與常規(guī)LED顯示屏的區(qū)別
    的頭像 發(fā)表于 03-21 08:45 ?1193次閱讀
    <b class='flag-5'>LED</b>燈桿<b class='flag-5'>屏</b>與常規(guī)<b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b>的區(qū)別