中山大學數電實驗時鐘設計大作業

2021-08-22 04:30:49 字數 1946 閱讀 8837

dsn檔案鏈結(另乙個學長的有問題

實驗要求

使用protues和basys3實驗板實現具有分、秒計時的計數器,計數結果要求在7段數碼管(7seg-mpx4-cc-blue)上顯示,並檢查結果

proteus設計思路

在proteus上使用可進製的十進位制計數器74ls160產生分秒計數器的每一位,用十進位制改裝成六十進位制的計數器相對容易,只需設計用邏輯門和輸出端組合並且接到相應的清零端即可實現。

由於結果需要在乙個四位的藍色七段數碼管上同時顯示,因此還需要設計掃瞄電路和較高的時鐘頻率,掃瞄電路用兩個74ls153雙四選一資料選擇器,分別將四個74ls160的產生結果接到雙四選一資料選擇器的輸入端,4個輸出端接到74ls48,再用4進製的計數器不停地掃瞄資料選擇端,即可實現四個數字同時顯示的功能。

basys3實驗板設計思路:

basys3板上可用元件較少,使用十進位制計數器74ls90產生分秒計數器的每一位,由於沒有進製端,級聯成的六十進位制的計數器為非同步,設計用邏輯門和輸出端接到下乙個計數器的時鐘端即可實現。結果同樣需要在乙個四位的藍色七段數碼管上同時顯示,因此還需要設計掃瞄電路和較高的時鐘頻率,思路和在proteus上設計相似,只是將兩個74ls153雙四選一資料選擇器換成了4個74ls151然後進行掃瞄,接下來的連線方式與proteus**相同。

實驗要求

在protues設計上給計時器新增調整當前時間功能,即新增進入調整計時模式(mod)按鍵和分/秒計數迴圈加一(adj)按鍵。

proteus設計思路

基於內容一設計的分秒計數器,要新增調整計時模式按鍵和分/秒計數迴圈加一按鍵,容易想到的是利用邏輯狀態開關logicstate,邏輯觸發開關logictoggle,計數器的使能端ent,和邏輯閘電路來實現。用乙個開關logicstate控制使能端,開關接高電平則計數器為正常計數模式,接低電平時計數停止,進入調整計時模式,然後用

邏輯觸發開關logictoggle和或門分別控制每乙個的使能端,每次觸發logictoggle都能使需要調整的位進入正常計數模式,實現加一功能。

proteus設計圖如下

logicstate為1,此時為正常計數狀態

將logicstate置為0,此時計數停止,進入調整計時模式:

測試秒加一按鈕:

測試分加一按鈕:

功能無誤。

實驗要求

使用protues實現具有年、月、日、時、分、秒計時的計時器,計時結果要求顯示在7段數碼管上,要求年、月、日、時、分、秒均可調節。

proteus設計思路

基於內容二設計的可進入調整計時模式並且有加一按鈕的的分秒計數器, 年月日時分秒計數器與之類似,只需要使用三個與內容二的設計相似的模組,並且將它們級聯起來,並新增進製端,並且調整進製為小時24進製,天數30進製,月份12進製,就可以實現年月日時分秒的計數器。值得注意的是天和月要從1開始而不是0,因此將74ls160的輸入端接0001,並且每次進製時令74ls160的load端有效,即可實現。

proteus設計圖如下

左邊還有一小塊是無關緊要的100進製計數器,表示年的前兩位。可以看出,主體由三個模組組成,每個模組都與內容二設計的分秒計數器相似,修改進製並且用邏輯閘電路實現進製後,就能實現年月日時分秒計數器

執行過程:

初始狀態:2023年1月1日00:00

使用調節按鈕調到2023年1月30日23時59分,演示跨月:

跨月正常:

較為複雜的跨月,跨天,跨年等功能都正常,在此不一一演示。

中山大學C 語言程式設計

cxsj01.csf cxsj02.csf cxsj03.csf cxsj04.csf cxsj05.csf cxsj06.csf cxsj07.csf cxsj08.csf cxsj09.csf cxsj10.csf cxsj11.csf cxsj12.csf cxsj13.csf cxsj14....

中山大學sicily第1813題

下面是我寫的1813題的 提交結果總是wrong answer,卻怎麼也找不錯來。請各位幫忙。中大sicily第1813題題目在http soj.me show problem.php?pid 1813 cid include include include using namespace std ...

2019中山大學程式設計競賽

theme 給定n m矩陣,有p個操作 將以 x1,y1 x2,y2 為左上 右下的矩陣覆蓋。之後q次詢問 以 x1,y1 x2,y2 為左上 右下的矩陣是否有全被覆蓋?solution 二維字首和。先由一次字首和 差分 計算出每個格仔被覆蓋的次數之和。然後將不為0的值 置為1,再進行字首和就算出每...