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

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

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

3天內不再提示

移位寄存器如何獲得更多空閑I/O引腳來連接更多傳感器

科技觀察員 ? 來源:circuitdigest ? 作者:Abhimanyu Pandit ? 2022-11-11 17:25 ? 次閱讀

嵌入式設計中,微控制器中存在沒有足夠的I/O引腳的可能性。這可能是由于任何原因造成的,可能是您的應用程序需要多個 LED,或者您想使用多個 7 段顯示器,但您的微控制器中沒有所需的 I/O 引腳。這里有一個完美的組件,移位寄存器。移位寄存器接受串行數據并提供并行輸出。它只需要3 個引腳即可與您的微控制器連接,您將從中獲得超過 8 個輸出引腳。其中一個流行的移位寄存器是74HC595。它具有8位存儲寄存器和8位移位寄存器。

您將向移位寄存器提供串行數據,該數據將被鎖存于存儲寄存器上,然后存儲寄存器將控制 8 個輸出。如果您想要更多輸出,只需添加另一個移位寄存器。通過級聯兩個移位寄存器,您將獲得額外的 8 個輸出,總共 16 位輸出。

移位寄存器 74HC595:

這是根據數據表的74HC595的引腳圖-

poYBAGNuFSGASRhDAAB-KmQj8tw266.png

HC595 有 16 針;如果我們看到數據表,我們將了解引腳功能-

pYYBAGNuFSKAZvCmAAAgZke23c4151.png

QA至QH,從引腳號1到7和15用作移位寄存器的8位輸出,其中引腳14用于接收串行數據。還有關于如何使用其他引腳和利用移位寄存器的其他功能的真值表。

poYBAGNuFSSAZJoTAABgUTLVreU031.png

當我們編寫用于連接74HC595的代碼時,我們將應用此真值表來獲取所需的輸出。

所需組件:

PIC16F877A

2個33pF陶瓷盤式電容器

20兆赫晶體

4.7k 電阻

8顆發光二極管

1k 電阻器 -1 個(如果需要每個 LED 上的單獨電阻器,則需要 8 個 1k 電阻器)

74HC595 集成電路

5V墻上適配器

PIC 編程環境

面包板和電線

電路圖:

poYBAGNuFSmABL6AAADABoxqXwY594.png

在電路圖中,我們連接了串行數據引腳;時鐘和選通(鎖存)引腳分別位于微控制器的RB0,RB1和RB2引腳上。在這里,我們使用一個電阻器用于8個LED。根據真值表,我們通過將74HC595的引腳13接地來啟用輸出。QH引腳保持打開狀態,因為我們不會用它級聯另一個74HC595。我們通過將移位寄存器的引腳10與VCC連接來禁用清除輸入標志。

晶體振蕩器連接在微控制器的 OSC 引腳上。PIC16F877A 沒有任何內部振蕩器。在本項目中,我們將使用移位注冊表從 Q0 到 Q7逐個點亮 lead

我們在面包板中構建了電路-

pYYBAGNuFSyAZplfAACqP0X8dNw273.jpg

代碼說明:

文末給出了使用移位寄存器控制LED的完整代碼。與往常一樣,我們需要在PIC微控制器中設置配置位。

#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)

#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)

#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)

#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)

#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)

#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)

#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)

#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)

之后,我們聲明了延遲所需的晶體頻率和74HC595的引腳聲明。

#include

/*

Hardware related definition

*/

#define _XTAL_FREQ 20000000 //Crystal Frequency, used in delay

#define DATA_595 PORTBbits.RB0

#define STROBE_595 PORTBbits.RB1

#define CLK_595 PORTBbits.RB2

接下來我們聲明了 system_init() 函數來初始化引腳方向。

void system_init(void){

TRISB = 0x00;

}

我們使用兩種不同的函數創建了時鐘脈沖和鎖存脈沖

/*

*This function will enable the Clock.

*/

void clock(void){

CLK_595 = 1;

__delay_us(500);

CLK_595 = 0;

__delay_us(500);

}

/*

*This function will strobe and enable the output trigger.

*/

void strobe(void){

STROBE_595 = 1;

__delay_us(500);

STROBE_595 = 0;

}

在這兩個函數之后,我們聲明了data_submit(無符號 int data)函數以向74HC595提交串行數據。

void data_submit(unsigned int data){

for (int i=0 ; i<8 ; i++){

DATA_595 = (data >> i) & 0x01;

clock();

}

strobe(); // Data finally submitted

}

在此函數中,我們接受 8 位數據并使用兩個按位運算符左移和AND運算符發送每個位。我們首先逐個移動數據,并使用帶有 0x01 的 AND 運算符找出確切的位是 0 還是 1。每個數據都由時鐘脈沖存儲,最終數據輸出使用鎖存器或選通脈沖完成。在此過程中,數據輸出將首先是MSB(最高有效位)。

在主函數中,我們提交了二進制文件,并逐個將輸出引腳調高。

system_init(); // System getting ready

while(1){

data_submit(0b00000000);

__delay_ms(200);

data_submit(0b10000000);

__delay_ms(200);

data_submit(0b01000000);

__delay_ms(200);

data_submit(0b00100000);

__delay_ms(200);

data_submit(0b00010000);

__delay_ms(200);

data_submit(0b00001000);

__delay_ms(200);

data_submit(0b00000100);

__delay_ms(200);

data_submit(0b00000010);

__delay_ms(200);

data_submit(0b00000001);

__delay_ms(200);

data_submit(0xFF);

__delay_ms(200);

}

return;

}

這就是移位寄存器可用于在任何微控制器中獲得更多空閑I/O引腳以連接更多傳感器的方式。

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

    關注

    48

    文章

    7646

    瀏覽量

    152074
  • 傳感器
    +關注

    關注

    2552

    文章

    51383

    瀏覽量

    756459
  • 移位寄存器
    +關注

    關注

    3

    文章

    259

    瀏覽量

    22340
  • i/o
    i/o
    +關注

    關注

    0

    文章

    33

    瀏覽量

    4611
收藏 人收藏

    評論

    相關推薦

    集成移位寄存器

    實驗七 集成移位寄存器一、 實驗目的1、 掌握集成雙向移位寄存器74LS95的邏輯功能2、 熟悉集成雙向移位寄存器74LS95的管腳排列二、 實驗器材實驗箱、
    發表于 03-20 17:54 ?19次下載

    線性移位寄存器

    線性移位寄存器移位寄存器可以構成序列信號發生,其電路結構如下圖所示。組合電路從移位寄存器取得信息,產生反饋信號加
    發表于 01-12 14:14 ?1991次閱讀
    線性<b class='flag-5'>移位寄存器</b>

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發表于 03-08 14:50 ?1.8w次閱讀

    移位寄存器的工作原理是什么?

    移位寄存器的工作原理是什么? 把若干個觸發串接起來,就可以構成一個移位寄存器。由4個邊沿D 觸發構成的4位移位寄存器邏輯電路如圖8.8
    發表于 03-08 14:56 ?4.5w次閱讀

    移位寄存器及其應用實驗

    一、實驗目的 1、了解集成移位寄存器的控制功能。 2、掌握集成移位寄存器的應用。 二、實驗原理 移位寄存器的功能是當時鐘控制脈沖有效時,寄存器中存儲的數碼同時順序向高位(
    發表于 07-16 22:59 ?22次下載

    寄存器移位寄存器

    寄存器移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    移位寄存器實驗報告_移位寄存器原理

    本文以移位寄存器為中心,主要介紹了移位寄存器的特點、移位寄存器原理。以及詳細的說明了移位寄存器實驗報告。
    發表于 12-22 14:29 ?2.9w次閱讀
    <b class='flag-5'>移位寄存器</b>實驗報告_<b class='flag-5'>移位寄存器</b>原理

    移位寄存器的特點_移位寄存器工作原理

    目前移位寄存器在電路中已經得到普遍使用。本文以移位寄存器為中心。主要介紹了移位寄存器分類、移位寄存器的特點,以及詳細的說明了移位寄存器的工作
    發表于 12-22 15:20 ?5w次閱讀
    <b class='flag-5'>移位寄存器</b>的特點_<b class='flag-5'>移位寄存器</b>工作原理

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了
    發表于 12-22 15:49 ?2w次閱讀

    移位寄存器的原理

    移位寄存器按照不同的分類方法可以分為不同的類型。 如果按照移位寄存器移位方向來進行分類, 可以分為左移移位寄存器、移位寄存器和雙向
    發表于 07-15 09:38 ?7.5w次閱讀
    <b class='flag-5'>移位寄存器</b>的原理

    移位寄存器的種類與作用

    移位寄存器是由相同的寄存單元所組成。一般說來,寄存單元的個數就是移位寄存器的位數。為了完成不同的移位功能,每個
    發表于 07-15 09:52 ?1.7w次閱讀
    <b class='flag-5'>移位寄存器</b>的種類與作用

    移位寄存器的設計與實現

    移位寄存器的功能和電路形式較多,按移位方向分有左移、右移、和雙向移位寄存器;按接收數據方式分為串行輸入和并行輸入;按輸出方向分為串行輸出和并行輸出。
    的頭像 發表于 09-06 11:35 ?4787次閱讀

    在LED設計中使用Nexperia移位寄存器以減小尺寸和BOM

    Nexperia邏輯產品組合中的移位寄存器有助于減小使用LED的設計的尺寸和BOM。通過提供I/O擴展,移位寄存器支持使用引腳較少的較便宜的
    的頭像 發表于 02-10 10:08 ?1033次閱讀
    在LED設計中使用Nexperia<b class='flag-5'>移位寄存器</b>以減小尺寸和BOM

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一種用于在數字電路中實現數據移位操作的基本電路元件。它由多個觸發以及相關控制電路組成,具有存儲、接受和移動數據的功能。移位寄存器可以分為兩種類型:串行
    的頭像 發表于 01-18 10:52 ?9374次閱讀

    移位寄存器右移是怎么移位

    移位寄存器是一種在數字電路和計算機科學中廣泛使用的存儲設備,它可以用來存儲和傳輸數據。在移位寄存器中,數據可以通過移位操作實現數據的傳輸和處理。
    的頭像 發表于 07-12 10:14 ?1756次閱讀
    主站蜘蛛池模板: 野花韩国高清完整版在线 | 亚洲三级成人 | 色小姐.com| 天天夜夜草草久久亚洲香蕉 | 久久精麻豆亚洲AV国产品 | 狠狠色欧美亚洲狠狠色www | 久久婷五月综合色啪网 | 日本理论片和搜子同居的日子2 | 欧美多人群p刺激交换电影 欧美多毛的大隂道 | 伊人影院综合 | 狂野欧美性猛XXXX乱大交 | 5g天天奭视频 | 短篇合集纯肉高H深陷骚 | 外女思春台湾三级 | 色琪琪久久热在线 | 伸进同桌奶罩里摸她胸作文 | 亚洲成人一区 | 国产欧美一区二区精品久久久 | 午夜爱情动作片P | 久久深夜视频 | 欧式午夜理伦三级在线观看 | 精品精品国产yyy5857香蕉 | 麻豆精品一区二正一三区 | 在线播放国产视频 | 九九热在线观看视频 | 饥渴的护士自慰被发现 | 色婷婷国产精品视频一区二区三区 | 亚洲高清视频免费 | 混乱家庭电影完整版在线看 | 秋霞电影院兔费理论观频84mb | 成人国产在线看不卡 | 最近高清中文字幕无吗免费看 | 边摸边吃奶玩乳尖视频 | 在线观看亚洲免费人成网址 | 亚洲精品视频在线免费 | 亚洲成年人影院 | 打卡中国各地奋斗第一线 | 欧洲美女高清一级毛片 | 国产自啪偷啪视频在线 | 久久视热频国只有精品 | 少妇人妻偷人精品视蜜桃 |