使用CD4017十位元計算器

之前製作計算器都是使用 Arduino 再透過 LED 等顯示器
但每次都要使用微控制器再編寫程式又有點累贅
因此想尋找一些方法只需要接駁線路便可以簡單地計算數值

CD4017

CD4017 是一種 十位元計算器,但每支輸出引腳都是獨立輸出

見下文
見下文
CD4017晶片 的 正面

見下文
CD4017晶片 的 背面

引腳

CD4017 使用 雙列直插封裝 (Dual In-line Package (DIP)) ,共有 16支引腳
161514131211109
12345678
用途VCCRSTCLKENCOOUT9OUT4OUT8
OUT5OUT1OUT0OUT2OUT6OUT7OUT3GND
編號引腳方向用途
1OUT5輸出第5 輸出
當計算器數值為 5 時,此引腳為高電壓,以外為低電壓
2OUT2輸出第2 輸出
當計算器數值為 2 時,此引腳為高電壓,以外為低電壓
3OUT0輸出第0 輸出
當計算器數值為 0 時,此引腳為高電壓,以外為低電壓
4OUT2輸出第2 輸出
當計算器數值為 2 時,此引腳為高電壓,以外為低電壓
5OUT6輸出第6 輸出
當計算器數值為 6 時,此引腳為高電壓,以外為低電壓
6OUT7輸出第7 輸出
當計算器數值為 7 時,此引腳為高電壓,以外為低電壓
7OUT3輸出第3 輸出
當計算器數值為 3 時,此引腳為高電壓,以外為低電壓
8GND接地
9OUT8輸出第8 輸出
當計算器數值為 8 時,此引腳為高電壓,以外為低電壓
10OUT4輸出第4 輸出
當計算器數值為 4 時,此引腳為高電壓,以外為低電壓
11OUT9輸出第9 輸出
當計算器數值為 9 時,此引腳為高電壓,以外為低電壓
12CO輸出當計算器數值為 0 至 4 ,輸出高電壓
當計算器數值為 5 至 9 ,輸出低電壓
13EN輸入當電壓為低,讓 CD4017 運作
14CLK輸入當電壓由低至高,會將計算器數值加 1
當計算器數值為 9 時加 1 會回到 0
15RST輸入當電壓由高至低,會將計算器數值重設到 0
16VCC電源 (接受 3V 至 15V)
引腳初始化10位元週期
第0位元第1位元第2位元第3位元第4位元第5位元第6位元第7位元第8位元第9位元
EN
RST
CLK
CO
OUT0
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
OUT9
訊號波紋時序圖
ENRSTCLKCOOUT0OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8OUT9

線路配置

見下文
線路設計

見下文
將 CD4017 安裝到 麵包板

見下文
10位 LED燈排 安裝到 麵包板

見下文
將 LED燈排 的 負極全部連接
(因為在下沒有足夠的短接駁線,才這樣接駁)

見下文
CD4017 的
  • VCC 接駁到 電源
  • GND 、 EN 及 RST 接駁到 接地

見下文
見下文
CD4017 的 OUT0 至 OUT9 分別順序接駁到 LED燈排 的 正極

見下文
見下文
220Ω 電阻 接駁 LED燈排 及 接地

見下文
DM1微開關掣
這種微開關掣有3支引腳
  • 共用:目標訊號引腳
  • 關閉:電源
  • 開啟:接地
可以簡單地送出電源或接地訊號給目標裝置的訊號引腳

見下文
固定用的金屬線

見下文
見下文
見下文
因為在下購買的 DM1微開關掣 引腳太短,所以使用金屬線固定在麵包板

見下文
線路原型

效果

見下文
測試結果

見下文
測試累加

見下文
測試重設

連續線路

1粒 CD4017 可以表達 0 至 9 的數值資料
2粒 便可以表達 0 至 99 的數值資料
3粒 便可以表達 0 至 999 的數值資料……
見下文
連續線路的原型設計
接駁方法只需要將 第一位值的 CD4017 的 OUT0引腳 連接到 第2位值的 CD4017 的 SCK引腳
便會令 第一位值的 CD4017的 計算器為 0 時,將第二位值的 計算器 累加
但有機會因為初始似時 計算器 的內容就是 0 ,令第二位值累加
所以初始時,最好先執行 RST引腳 重設所有累加,避免出錯

見下文
使用 Arduino Sketch 測試
(原型設計最後與在下的實際線路有些微不同,在下將 2粒 CD4017 的 RST 都額外連接到 Arduino 方便執行重設)
const byte RST = A1;
const byte CLK = A0;

void setup() {
    pinMode(RST, OUTPUT);
    pinMode(CLK, OUTPUT);
    digitalWrite(RST, HIGH);
    digitalWrite(RST, LOW);
}

void loop() {
    digitalWrite(RST, LOW);
    digitalWrite(RST, HIGH);
    delay(100);
}

見下文
亦可以不使用微控制器運作,原理亦相同

總結

CD4017 計算器累加功能,可以製作簡單的計算器
只需要線路接駁 CD4017 不需要編程,便可以應用

參考資料