1 74hc595晶元
74hc595是乙個8位序列輸入、並行輸出的移位暫存器
管腳如下:
2 74ls247晶元
74ls247是4線——七段解碼器/驅動器
管腳如下:
其中, a,b,c,d為解碼位址輸入端;
a~g為段輸出(低電平有效)
3 四位數碼管
針腳定義:
1-4:位選
a-h:段選
3 原理圖
注:該原理圖只說明各針腳連線關係,未畫出其它器件。
由圖可見,對於共陽數碼管,位選編碼如下表:位編碼
0xe0h
0xd0h
0xb0h
0x70h
注:表中編碼將段選訊號假設為0.
由於控制訊號是由微控制器等微處理器序列輸入到74hc595,所以根據74ls247解碼器編碼對段選訊號也編碼如下:
數字編碼
0x00h
0x01h
0x02h
0x03h
0x04h
0x05h
0x06h
0x07h
0x08h
0x09h
注:表中編碼將位選訊號假設為0.
4 程式**
unsigned char led_0f = //共陽
;unsigned char led[4]; //用於led的4位顯示快取
int sclk = 2;
int rclk = 3;
int dio = 4; //這裡定義了那三個腳
void setup ()
pinmode(sclk,output);
pinmode(rclk,output);
pinmode(dio,output); //讓三個腳都是輸出狀態
void loop()
led[0]=1;
led[1]=2;
led[2]=3;
led[3]=4;
while(1)
led4_display ();
void led4_display (void)
unsigned char *led_table; // 查表指標
unsigned char i;
unsigned char j;
//顯示第1位
led_table = led_0f + led[0];
i = *led_table;
j=i|0xe0;
led_out(j);
digitalwrite(rclk,low);
digitalwrite(rclk,high);
delay(1000);
//顯示第2位
led_table = led_0f + led[1];
i = *led_table;
j=i|0xd0;
led_out(j);
digitalwrite(rclk,low);
digitalwrite(rclk,high);
delay(1000);
//顯示第3位
led_table = led_0f + led[2];
i = *led_table;
j=i|0xb0;
led_out(j);
digitalwrite(rclk,low);
digitalwrite(rclk,high);
delay(1000);
//顯示第4位
led_table = led_0f + led[3];
i = *led_table;
j=i|0x70;
led_out(j);
digitalwrite(rclk,low);
digitalwrite(rclk,high);
delay(1000);
void led_out(unsigned char x)
unsigned char i;
for(i=8;i>=1;i--)
if (x&0x80)
digitalwrite(dio,high);
else
digitalwrite(dio,low);
x<<=1;
digitalwrite(sclk,low);
digitalwrite(sclk,high);
74hc595 簡單介紹
74hc595各個引腳的功能 q1 7 是並行資料輸出口,即儲暫存器的資料輸出口 q7 序列輸出口,其應該接spi匯流排的miso介面 stcp 儲存暫存器的時鐘脈衝輸入口 shcp 移位暫存器的時鐘脈衝輸入口 oe 輸出使能端 mr 晶元復位端 ds 序列資料輸入端 每當 shcp 上公升沿到來時...
74HC595的中文資料
74hc595 具有三態輸出鎖存功能的8位序列輸入 序列 並行輸出移位暫存器 本文翻譯自nxp的74hc595的datasheet 74hc595和74hct595是帶有儲存暫存器和三態輸出的8位序列移位暫存器,移位暫存器和儲存暫存器有各自的時鐘。每當移位暫存器輸入時鐘shcp上公升沿來臨之時,資料...
74HC595晶元使用說明
74hc595是具有8位移位暫存器和乙個儲存器,三態輸出功能。移位暫存器和儲存器是分別的時鐘。資料在shcp的上公升沿輸入,在stcp的上公升沿進入的儲存暫存器中去。如果兩個時鐘連在一起,則移位暫存器總是比儲存暫存器早乙個脈衝。移位暫存器有乙個序列移位輸入 ds 和乙個序列輸出 q7 和乙個非同步的...