日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言循环移位寄存器,[转载]关于移位寄存器74HC164的使用

發布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言循环移位寄存器,[转载]关于移位寄存器74HC164的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

移位寄存器74HC164多用于擴展IO口,下面是我使用時的心得:

74HC164的幾點說明:

1.74HC164是串行輸入,并行輸出的;

2.它的并行輸出其實是有延時的,只是延時時間小,可以認為是并行輸出;

74hc164封裝和真值表:

真值表中文解釋說明

H-高電平?L

-低電平?X -任意電平

↑-低到高電平跳變(上升沿有效)

QA0,QB0,QH0?-規定的穩態條件建立前的電平

QAn,QGn?-時鐘最近的↑前的電平

看真值表的第三條和第五條:就可以知道,在保持clear為 H,

clock為↑狀態下,AB都為H時,移位寄存器移入H,而當移位寄存器移入L時,必須令B為L,而A不受約束。所以可以把AB斷相連再接入單片機數據端口。還有一種是A腳直接接高電平,B腳連入單片機數據端(P2_7)

時序圖:

1. 首先區分輸入輸出信號。這里CLEAR、A、B、CLOCK是輸入信號,Qa~Qh是輸出信號;

2. 拿尺子開始掃描……

2.1.

首先可以看到CLEAR的下降沿后輸出全部置低電平。結合后面的一個CLEAR下降沿,可以得出結論:當CLEAR輸入下降沿時,無論A、B、CLOCK狀態為何,輸出全部拉低;

2.2.

尺子向右移動……找到Qa的第一個上升沿,可以看到這個上升沿是與CLOCK的上升沿對齊的,可以得出結論:輸出在邏輯上與上升沿同步。此時將會注意到在此之前已經有3個上升沿但輸出始終為低電平,尺子移動分別比較這3個上升沿,其A、B輸入分別為10、01,于是可以得出結論:Qa

= A · B。

2.3.

尺子繼續向右移動……可以分別看出在隨后的CLOCK上升沿處,Qa全部按照A與B進行輸出,從而驗證以上結論。此外Qb~Qh的波形為Qa波形依次移位得到。

使用它的通用驅動C語言源代碼:

//在每一個上升沿輸出腳SDO狀態移一位,CLK為時鐘輸入腳,CLK為輸入腳,

//一般同連一腳,保持相同電平狀態,與運算之后仍為該狀態

void ind_light_disp(uint ind_num)//點亮哪一位,就置1

{

uint i,j;

i = 0x80;

for(j=0; j<8; j++)

{

if((i&ind_num) == i)

{

CLK = 0;?//此處與下面的CLK = 1結合產生一個上升沿

SDO = 0;

CLK = 1;

}

else

{

CLK = 0;

SDO = 1;

CLK = 1;

}

i >>= 1;

}

delay(10000);//此處延時很重要,不延時可能會出現閃爍現象

}

一個使用電路圖(點亮一些燈):

總結

以上是生活随笔為你收集整理的c语言循环移位寄存器,[转载]关于移位寄存器74HC164的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。