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 則留言 :