第1步:硬件



我的目標(biāo)只是演示不同的方法我僅將74HC595的8個輸出中的4個連接到LED。調(diào)試我的代碼就足夠了:)如果您想使項目看起來更好,則可以將所有Qx輸出連接到LED:)
您可以在圖像上看到連接。
似乎不同的數(shù)據(jù)表都有74HC595的不同引腳名稱,所以我在我使用的數(shù)據(jù)表中附加了引腳分配。
74HC595恒定連接:
GND(引腳8)
Vcc(引腳16)至5V
OE(引腳13)接地
SRCLR(MR)(引腳10)至5V
我使用了1k電阻和3mm LED。
步驟2:簡單方法


對于所有方法,您都會看到連接到電路的示波器的屏幕截圖作為性能證明。黃色走線是串行時鐘(SRCLK),藍(lán)色走線是鎖存信號(RCLK)。同樣,對于所有方法,我將展示函數(shù)shiftByte()的實現(xiàn),該函數(shù)采用單個字節(jié)并將其逐位(串行)寫入74HC595
最簡單的將數(shù)據(jù)寫入移位寄存器的方法如本教程中所述?;旧希褂脙?nèi)置的shiftOut()函數(shù)來實現(xiàn)串行接口。這樣,寫入8位數(shù)據(jù)需要90微秒。不幸的是,包括代碼不是簡單的方法,因此您將在附加的zip文件中找到草圖,并在shiftOut()函數(shù)的屏幕截圖中找到。這種方法可以,但是相對較慢。
步驟3:使用端口命令的方法


更好方式不是切換每個位,而是使用命令將數(shù)據(jù)寫入整個端口。像這樣:
PORTC&= B11111101;//數(shù)據(jù)時鐘低
PORTC =(PORTC&B11111010)|(x&B00000001);//將時鐘設(shè)置為低并輸出位0
PORTC | = B00000100;//串行時鐘高
您可以在此處找到有關(guān)端口操作命令的更多信息
使用此方法附帶的示例草圖。
以這種方式寫入8位僅需4.5微秒。它比簡單方法快20倍。
此方法的缺點:
代碼不清楚。
所有使用的Arduino引腳應(yīng)位于同一端口上。
應(yīng)將74HC595的串行數(shù)據(jù)引腳連接到使用的Arduino端口的最低有效位


使用內(nèi)聯(lián)匯編代碼可以實現(xiàn)進(jìn)一步的優(yōu)化。在所附的草圖中,我能夠在2.8微秒內(nèi)寫入8位。它比簡單方法快32倍。
您可以在此處找到有關(guān)如何在C代碼中使用內(nèi)聯(lián)匯編代碼的好指南。
AVR指令集手冊
此方法的缺點類似于上一個方法的缺點。
步驟5:使用硬件SPI接口


但是在這種情況下,最好的方法是使用硬件SPI接口。您可以在此處閱讀如何使用它?;旧?,它專用于芯片內(nèi)部的串行通信硬件,可用于高速傳輸串行數(shù)據(jù)。寫出所有8位只需要不到1微秒的時間。附有示例的草圖。
對于此示例,74HC595與Arduino的連接應(yīng)不同于所有其他示例中的連接。
由于此方法使用了Arduino內(nèi)部的特定硬件,因此應(yīng)連接74HC595
Arduino引腳13(SCK)到74HC595的引腳11(SRCLK)(串行移位時鐘)
Arduino引腳A1到74HC595的引腳12(RCLK) (輸出鎖存時鐘)通常這可以是任何引腳。
Arduino的11HC引腳(MOSI)到74HC595的14引腳(SER)(串行數(shù)據(jù)輸入)
所以這就是最快的方法,也是相對簡單的方法。
僅此而已。我希望您覺得此說明有用。任何評論將不勝感激。
-
移位寄存器
+關(guān)注
關(guān)注
4文章
340瀏覽量
23332 -
串行接口
+關(guān)注
關(guān)注
3文章
520瀏覽量
45230 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
32547
發(fā)布評論請先 登錄
SN74HC165QPWRQ1 汽車類 8 位并聯(lián)負(fù)載移位寄存器
探索MC74HC595A與MC74HCT595A:8位移位寄存器的性能與應(yīng)用解析
?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南
?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)
SN74LV595B-EP低噪聲8位移位寄存器技術(shù)解析與應(yīng)用指南
SN74HC165-Q1 8位并行負(fù)載移位寄存器技術(shù)解析
Texas Instruments SN74AHC165/SN74AHC165-Q1 SIPO移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74AHCT165/SN74AHCT165-Q1 SIPO移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74AHC594/SN74AHC594-Q1 8位移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74AHC595/SN74AHC595-Q1計數(shù)器移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74LVC166A 8位并聯(lián)負(fù)載移位寄存器數(shù)據(jù)手冊
Texas Instruments SN74ACT595/SN74ACT595-Q1 SIPO移位寄存器特性/應(yīng)用/功能圖
Texas Instruments SN74AC596/SN74AC596-Q1 SIPO移位寄存器特性/應(yīng)用/框圖
如何使用串行接口以74HC595移位寄存器作為展示向設(shè)備寫入數(shù)據(jù)
評論