---
# System prepended metadata

title: digital clock 數位路電實驗報告2

---

# digital clock
A1115530 劉柏均
A1115531 錢昱名


# 目標
使用BCD實現一個24小時制，有秒、分鐘、小時的時鐘

# 實現
JKFF
![](https://cdn.discordapp.com/attachments/1008682931734196287/1167035036348977203/image.png?ex=654ca913&is=653a3413&hm=c97b43ede8ee98a564625c88ce7b3ae9feac08b85ee428580636885b4c8d5899&)

先把JKFF轉成負緣觸發，等等會用到，依照JKFF的功能，來看看如何使用JK觸發器模擬一個計數器：
基本工作原理
設置（Set）模式：當J=1，K=0時，輸出Q變為1。
重置（Reset）模式：當J=0，K=1時，輸出Q變為0。
保持（Hold）模式：當J=0，K=0時，輸出Q保持不變。
翻轉（Toggle）模式：當J=1，K=1時，輸出Q會在每次觸發時從0變成1，或從1變成0。
我們這次止用到Toggle，所以直接接上VCC，我們觀察一下計數器的序列
00 01 10 11，最低位數只會0101變化，而高一個位數會在1變0的時候bit翻轉，這時候就用到負緣觸發了把輸出接上下一個JKFF，輸出從1變成0的時候，下一個計數器就會翻轉，等效於+1。


再來需要mod6 ,mod10的bcd，或是等價的功能。
BCD mod10 0b1010 把1,3==1的時候resetJKFF就是mod10了，而JKFF是0reset所以要用nand。
![](https://cdn.discordapp.com/attachments/1008682931734196287/1167034978396282890/image.png?ex=654ca905&is=653a3405&hm=da34d50532feb973e2a95d2973ecbcde720e4ce26d9d8ade4edfe6484ab57d80&)
bcd mod6 0b110
![](https://cdn.discordapp.com/attachments/1008682931734196287/1167035096025538620/image.png?ex=654ca921&is=653a3421&hm=6ab780e85c029678137758dd8bc04267e354e7ebbd76164175307a01bb289f38&)
BCD mod24比較難，要左邊mod3,右邊要MOD10但是左邊2的時候右邊要MOD4
![](https://cdn.discordapp.com/attachments/1008682931734196287/1171987256844767293/image.png?ex=655ead30&is=654c3830&hm=cf43e510eba3695b50c54b7092e50e9985c193559d395e9f8a8711ef02a70aff&)
再把他們都接起來，一樣負緣觸發這就用到了，在前一個是最高電位的時候，突然被Reset變0就代表下一個BCD可以計數了。
![](https://cdn.discordapp.com/attachments/1008682931734196287/1167034908624039946/image.png?ex=654ca8f4&is=653a33f4&hm=0c513f3a98b9f3bb43606028789c9e7eb9bb1c1a5ee5cc95118692f04b0e38cd&)
所以是
![](https://latex.vimsky.com/test.image.latex.php?fmt=svg&val=%255Cdpi%257B150%257D%2520%255Clarge%2520%255Cbegin%257Barray%257D%257Bcccccccccccccccccc%257D%2520%255Cmathbf%257BS_%257B12%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B11%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B10%257D%257D%2520%2526%2520%257C%2520%2526%2520%255Cmathbf%257BS_%257B03%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B02%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B01%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B00%257D%257D%2520%2526%2520%255Crightarrow%2520%2526%2520%255Cmathbf%257BS_%257B12%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B11%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B10%257D%257D%2520%2526%2520%257C%2520%2526%2520%255Cmathbf%257BS_%257B03%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B02%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B01%257D%257D%2520%2526%2520%255Cmathbf%257BS_%257B00%257D%257D%2520%255C%255C%25200%2520%2526%25200%2520%2526%25200%2520%2526%2520%257C%2520%2526%2520%255Cmathbf%257B1%257D%2520%2526%25200%2520%2526%25200%2520%2526%25201%2520%2526%2520%255Crightarrow%2520%2526%25200%2520%2526%25200%2520%2526%2520%255Cmathbf%257B1%257D%2520%2526%2520%257C%2520%2526%2520%255Cmathbf%257B0%257D%2520%2526%25200%2520%2526%25200%2520%2526%25200%2520%255C%255C%2520%255Cend%257Barray%257D&dl=0)
繼續計數下去。

# 模擬結果
## 秒區
![](https://cdn.discordapp.com/attachments/1008682931734196287/1171996000873885716/image.png?ex=655eb555&is=654c4055&hm=fe5f5cd14ef0cb471be0faf94cfc0cd16968931d50d14a8be5244cb553b7fc5e&)
在圖上可以看到最下方的秒個位數$S_0$從0數到9後reset成0，秒十位數S1+1，直到S1數到5 S0數到9兩個都reset，分鐘個位數+1。
## 分鐘區
![](https://cdn.discordapp.com/attachments/1008682931734196287/1171996224333828178/image.png?ex=655eb58a&is=654c408a&hm=69bc83bc7250828ebfced46e2f050dc917573199b1f39cfef12f665b47cf10f2&)
在圖上可以看到最下方的分鐘個位數$S_0$從0數到9後reset成0，分鐘十位數S1+1，直到S1數到5 S0數到9兩個都reset，小時個位數+1。

## 小時區
![](https://cdn.discordapp.com/attachments/1008682931734196287/1171987180583927870/image.png?ex=655ead1e&is=654c381e&hm=75ec33336e2e9e4347e34b0c023cb804eefe4802855a5856541cff32c9eadb52&)

在圖上可以看到最下方的小時個位數S0從0數到9後reset成0，小時十位數S1+1，直到S1數到2 S0數到3兩個都reset，然後全部包括分鐘、秒鐘都reset成00 00 00
![](https://cdn.discordapp.com/attachments/1008682931734196287/1174367500851478638/image0.png?ex=656755f6&is=6554e0f6&hm=bf13b82c73b15ec3b92f7a7f7c2f51dc14a328b8c6448dd44af8524e4694f354&)
因為加上秒數移動後，一定會崩潰就先省略了

## 討論
在模擬波形圖過程中，我們面臨了計數太大的問題，電腦會跑超級慢，讓debug時間拉很久，但是我們也學會了分開來，小時區、分鐘區、秒區分開模擬debug，這真的很花時間


# References
chatGPT4 debug