# digital clock A1115530 劉柏均 A1115531 錢昱名 # 目標 使用BCD實現一個24小時制,有秒、分鐘、小時的時鐘 # 實現 JKFF  先把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。  bcd mod6 0b110  BCD mod24比較難,要左邊mod3,右邊要MOD10但是左邊2的時候右邊要MOD4  再把他們都接起來,一樣負緣觸發這就用到了,在前一個是最高電位的時候,突然被Reset變0就代表下一個BCD可以計數了。  所以是  繼續計數下去。 # 模擬結果 ## 秒區  在圖上可以看到最下方的秒個位數$S_0$從0數到9後reset成0,秒十位數S1+1,直到S1數到5 S0數到9兩個都reset,分鐘個位數+1。 ## 分鐘區  在圖上可以看到最下方的分鐘個位數$S_0$從0數到9後reset成0,分鐘十位數S1+1,直到S1數到5 S0數到9兩個都reset,小時個位數+1。 ## 小時區  在圖上可以看到最下方的小時個位數S0從0數到9後reset成0,小時十位數S1+1,直到S1數到2 S0數到3兩個都reset,然後全部包括分鐘、秒鐘都reset成00 00 00  因為加上秒數移動後,一定會崩潰就先省略了 ## 討論 在模擬波形圖過程中,我們面臨了計數太大的問題,電腦會跑超級慢,讓debug時間拉很久,但是我們也學會了分開來,小時區、分鐘區、秒區分開模擬debug,這真的很花時間 # References chatGPT4 debug
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up