2020-09-16

使用CD4017十位元計算器

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

CD4017

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

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

見下文
CD4017晶片 的 背面

引腳

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

線路配置

見下文
線路設計

見下文
將 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 不需要編程,便可以應用

參考資料

1 則留言 :