《計算機組成原理與匯編語言程序設計》實驗報告一 基本數字邏輯及漢字顯示

目? 錄

一、實驗學時

二、實驗目的

三、實驗要求

四、實驗內容

五、實驗步驟

1、打開Logisim軟件,列出異或邏輯電路真值表,并使用與、或、非基本原件實現異或邏輯電路。

2、打開Logisim軟件,列出同或邏輯電路真值表,并使用與、或、非基本原件實現同或邏輯電路。

3、打開Logisim軟件,列出一位二進制數據比較器真值表,并使用與、非、異或非原件實現一位二進制數據比較器邏輯電路。

4、打開Logisim軟件,列出全加器邏輯電路真值表,并使用與、或、異或原件實現全加器邏輯電路。

5、打開Logisim軟件,列出3-8譯碼器邏輯電路真值表,并使用非、或原件實現3-8譯碼器邏輯電路。

6、打開Logisim軟件以及機內碼與漢字轉換軟件,并打開電路文件分析和理解相關的電路功能。

六、實驗小結

1、問題和解決方法

2、心得體會


一、實驗學時

????????課堂2學時,課后2學時

二、實驗目的

????????1) 熟悉Logisim軟件的使用方法。

????????2) 掌握基本數字邏輯電路實現方法。

????????3) 熟悉漢字字庫及顯示電路。

三、實驗要求

????????1)做好實驗預習,復習基本數字邏輯電路的原理,掌握實驗元器件的功能特性。

????????2)按照實驗內容與步驟的要求,獨立思考,認真仔細地完成實驗。

????????3)書寫實驗報告。

四、實驗內容

????????1、本次實驗使用Logisim軟件實現基本的數字邏輯電路,與、或、非等基本原件的使用,及異或(XOR)、同或邏輯的實現。

????????(1)異或電路及真值表示意如下:

圖4-1 異或真值表及電路圖

????????(2)在完成基本數字邏輯測試的基礎上,完成3-8譯碼器,一位二進制數據比較器設計。

????????(3)請列出上述提到基本數字邏輯電路真值表,最后在Logisim中實現連線,并測試邏輯是否正確。

????????2、利用給出的電路文件,熟悉漢字顯示電路,分析相關子電路的功能,理解GB2312編碼與區位碼的轉化規則和電路實現,熟悉Logisim中存儲器ROM、LED點陣的使用。最后利用機內碼與漢字轉換工具,或者自己編程實現轉化,將自己名字寫進GB2312 存儲器中,實現將自己的名字在LED點陣中顯示。

圖4-2 ?所需電路及工作區

五、實驗步驟

1、打開Logisim軟件,列出異或邏輯電路真值表,并使用與、或、非基本原件實現異或邏輯電路。

????????(1)使用異或邏輯公式F=A⊕B=AB’+A’B(F為A異或B的結果值,⊕為異或符號,A’和B’分別表示對A、B進行非操作后的結果)完成對異或邏輯電路的實現,對應的異或邏輯電路真值表如圖5-1-1所示:

圖5-1-1 異或邏輯電路真值表

????????(2)依據異或邏輯公式完成異或邏輯電路的架構,輸入端A、B,先進行A的非操作,然后與B進行與操作得到A’B;再進行B的非操作,然后與A進行與操作得到AB’,最后將A’B和AB’進行或操作,得到最后的異或邏輯運算結果F,對應的異或邏輯電路如圖5-1-2所示:

圖5-1-2 異或邏輯電路

????????(3)異或邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的異或邏輯電路測試如圖5-1-3至5-1-5所示:

圖5-1-3 異或邏輯電路測試0⊕0

圖5-1-4 異或邏輯電路測試1⊕0

圖5-1-5 異或邏輯電路測試1⊕1

2、打開Logisim軟件,列出同或邏輯電路真值表,并使用與、或、非基本原件實現同或邏輯電路。

????????(1)使用同或邏輯公式F=A?B=AB+A’B’(F為A同或B的結果值,?為同或符號,A’和B’分別表示對A、B進行非操作后的結果)完成對同或邏輯電路的實現,對應的同或邏輯電路真值表如圖5-2-1所示:

圖5-2-1 同或邏輯電路真值表

????????(2)依據同或邏輯公式完成同或邏輯電路的架構,輸入端A、B,先進行A和B的與操作后得到AB;然后分別進行A和B的非操作后并進行與操作得到A’B’;最后將AB和A’B’進行或操作,得到最后的同或邏輯運算結果F,對應的同或邏輯電路如圖5-2-2所示:

圖5-2-2 同或邏輯電路

????????(3)同或邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的同或邏輯電路測試如圖5-2-3至5-2-5所示:

圖5-2-3 同或邏輯電路測試1?0

圖5-2-4 同或邏輯電路測試0?1

圖5-2-5 同或邏輯電路測試1?1

????????(4)使用同或邏輯公式F=A?B=A?B(____________)(F為A同或B的結果值,?為同或符號,?為異或符號)完成對同或邏輯電路的實現,對應的同或邏輯電路真值表如圖5-2-6所示:

圖5-2-6 同或邏輯電路真值表

????????(5)依據對異或操作進行非操作后得到同或邏輯完成同或邏輯電路的架構,在異或的基礎之上進行非操作得到最后的同或邏輯運算結果F,對應的同或邏輯電路如圖5-2-7所示:

圖5-2-7 同或邏輯電路

????????(6)同或邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的同或邏輯電路測試如圖5-2-8至5-2-10所示:

圖5-2-8 同或邏輯電路測試0?0

圖5-2-9 同或邏輯電路測試1?0

圖5-2-10 同或邏輯電路測試0?1

3、打開Logisim軟件,列出一位二進制數據比較器真值表,并使用與、非、異或非原件實現一位二進制數據比較器邏輯電路。

????????(1)使用一位二進制數據比較器邏輯公式(A<B)=A’B、(A=B)=A?B、(A>B)=AB’(?為同或符號,A’和B’分別表示對A、B進行非操作后的結果)完成對一位二進制數據比較器邏輯電路的實現,對應的一位二進制數據比較器邏輯電路真值表如圖5-3-1所示:

圖5-3-1 一位二進制數據比較器邏輯電路真值表

????????(2)依據一位二進制數據比較器邏輯公式完成一位二進制數據比較器邏輯電路的架構,輸入端A、B,先進行A的非操作,然后與B進行與操作得到A’B,A’B=1則表示A<B;再進行B的非操作,然后與A進行與操作得到AB’,AB’=1則表示A>B;最后A和B進行同或操作結果為1則表示A=B,對應的一位二進制數據比較器邏輯電路如圖5-3-2所示:

圖5-3-2 一位二進制數據比較器邏輯電路

????????(3)一位二進制數據比較器邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的一位二進制數據比較器邏輯電路測試如圖5-3-3至5-3-5所示:

圖5-3-3 一位二進制數據比較器邏輯電路測試0和0

圖5-3-4 一位二進制數據比較器邏輯電路測試1和0

圖5-3-5 一位二進制數據比較器邏輯電路測試0和1

4、打開Logisim軟件,列出全加器邏輯電路真值表,并使用與、或、異或原件實現全加器邏輯電路。

????????(1)使用全加器邏輯公式G=AB、P=A⊕B、CI=G+PC(G為A與B的結果值,P為A異或B的結果值,⊕為異或符號,CI為G或PC的結果值)完成對全加器邏輯電路的實現,對應的全加器邏輯電路真值表如圖5-4-1所示:

圖5-4-1 全加器邏輯電路真值表

????????(2)依據全加器邏輯公式完成全加器邏輯電路的架構,輸入端A、B、C,先進行A和B的異或操作得到P;然后進行A和B的與操作得到G;再進行P和C的異或操作得到S;最后將P和C進行與操作后再和G進行或操作,得到最后的全加器邏輯運算結果CI,對應的全加器邏輯電路如圖5-4-2所示:

圖5-4-2 全加器邏輯電路

????????(3)全加器邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的全加器邏輯電路測試如圖5-4-3至5-4-5所示:

圖5-4-3 全加器邏輯電路測試0+0

圖5-4-4 全加器邏輯電路測試1+0

圖5-4-5 全加器邏輯電路測試0+1

5、打開Logisim軟件,列出3-8譯碼器邏輯電路真值表,并使用非、或原件實現3-8譯碼器邏輯電路。

????????(1)使用3-8譯碼器邏輯公式D0=A’B’C’、D1=AB’C’、D2=A’BC’、D3=ABC’、D4=A’B’C、D5=AB’C、D6=A’BC、D7=ABC(A’、B’、C’分別為對A、B、C的非操作,D為進行與操作后的結果值)完成對3-8譯碼器邏輯電路的實現,對應的3-8譯碼器邏輯電路真值表如圖5-5-1所示:

圖5-5-1 3-8譯碼器邏輯電路真值表

????????(2)依據3-8譯碼器邏輯公式完成3-8譯碼器邏輯電路的架構,輸入端A、B、C,對A、B、C分別進行非操作后再進行與操作得到D0;對B、C分別進行非操作后再和A進行與操作得到D1;對A、C進行非操作后再和B進行與操作后得到D2;對C進行非操作后再和A、B進行與操作后得到D3;對A、B進行非操作后再和C進行與操作后得到D4;對B進行非操作后再和A、C進行與操作得到D5;對A進行非操作后再與B、C進行與操作得到D6;對A、B、C進行與操作后得到D7,對應的3-8譯碼器邏輯電路如圖5-5-2所示:

圖5-5-2 3-8譯碼器邏輯電路

????????(3)3-8譯碼器邏輯電路鋪設完畢后進行測試,進而判斷自己的電路是否鋪設成功,經過測試后此電路狀態一切正常,對應的3-8譯碼器邏輯電路測試如圖5-5-3至5-5-8所示:

圖5-5-3 3-8譯碼器邏輯電路測試000

圖5-5-4 3-8譯碼器邏輯電路測試001

圖5-5-5 3-8譯碼器邏輯電路測試010

圖5-5-6 3-8譯碼器邏輯電路測試100

圖5-5-7 3-8譯碼器邏輯電路測試101

圖5-5-8 3-8譯碼器邏輯電路測試110

6、打開Logisim軟件以及機內碼與漢字轉換軟件,并打開電路文件分析和理解相關的電路功能。

????????(1)使用機內碼與漢字轉換軟件將漢字“于”轉換為機內碼,得到對應的機內碼為D3DA,然后對只讀存儲器ROM中的內容進行編輯,將其寫進GB2312存儲器中,實現漢字“于”在LED點陣中的顯示,漢字“于”LED點陣顯示如圖5-6-1所示:

圖5-6-1 漢字“于”LED點陣顯示

????????(2)使用機內碼與漢字轉換軟件將漢字“立”轉換為機內碼,得到對應的機內碼為C1A2,然后對只讀存儲器ROM中的內容進行編輯,將其寫進GB2312存儲器中,實現漢字“立”在LED點陣中的顯示,漢字“立”LED點陣顯示如圖5-6-2所示:

圖5-6-2 漢字“立”LED點陣顯示

????????(3)使用機內碼與漢字轉換軟件將漢字“偉”轉換為機內碼,得到對應的機內碼為CEB0,然后對只讀存儲器ROM中的內容進行編輯,將其寫進GB2312存儲器中,實現漢字“偉”在LED點陣中的顯示,漢字“偉”LED點陣顯示如圖5-6-3所示:

圖5-6-3 漢字“偉”LED點陣顯示

六、實驗小結

1、問題和解決方法

????????(1)實驗問題:使用邏輯門和相關元素構建邏輯電路后發現有時輸出結果與自己的真值表內容不符。

解決方法:觀察自己的邏輯電路后發現部分邏輯門的引腳過多,與、或、非等邏輯門的默認引腳的個數為5個,因此我們需要根據自己需要的引腳數量進行設置,將對應的引腳數量改為自己需要的2個引腳后對應問題得到解決。

????????(2)實驗問題:在對邏輯門進行連線的過程中發現電路中出現了多余的連線。

解決方法:點擊對應多余的連線并進行刪除操作或者對該條連線重新進行勾連。

????????(3)實驗問題:邏輯電路連接完成后發現部分輸入端或者輸出端是藍色,且點擊輸入端進行數值切換對藍色的輸出端無影響。

解決方法:線路沒有徹底連接,輸入端和輸出端的引腳默認朝西,所以在連接電路時要首先將對應端口的引腳方向進行設置,進而方便邏輯電路的正常連接。

????????(4)實驗問題:邏輯電路中有部分區域的連線為紅色。

解決方法:由于紅色連線前方處于斷路狀態,邏輯信號無法正常到達后續的邏輯電路之中,因此出現了紅色連線,將對應區段的電路連接通路后即可恢復正常。

????????(5)實驗問題:在使用兩個以上的異或門進行邏輯電路操作時發現出現了錯誤。

解決方法:由于Logisim允許指定異或門的邏輯行為,默認是當一個輸入為1是輸出為1,另一種是奇數個1輸入時輸出為1,因此在使用過程中需要對默認值進行相應的修改操作,進而避免錯誤的出現。

????????(6)實驗問題:邏輯電路設計完畢以后,出現了紅色或者橘紅色的線條,但是自己的邏輯電路沒有任何的錯誤。

解決方法:由于軟件本身因素引起的,因此對自己的邏輯電路進行保存,關閉Logisim軟件后重新打開對應的邏輯電路文件后即可恢復正常。

2、心得體會

????????(1)通過使用Logisim軟件對邏輯電路進行操作,讓我熟悉了相關的邏輯符號及邏輯運算等。其中藍色的方框表示輸入信號;藍色的圓框表示輸出信號;綠色的圓圈加上短橫表示錨,主要用于移動和定位。

????????(2)邏輯電路是用來對數字信號進行邏輯運算,以實現邏輯命題的電路。

????????(3)組合邏輯電路中電路的輸出只與該時刻的輸入有關,而時序邏輯電路中電路的輸出不僅與該時刻的輸入有關,還與電路的原狀態有關。

????????(4)真值表是描述邏輯功能的最底層工具,它是先結構而后內容的,列數據時輸入部分從全0到全1,逐個遞增。

????????(5)基本邏輯運算是與、或、非,而常用的復合邏輯為與非、或非、與或非、異或、同或。

????????(6)邏輯門電路(門電路)用于實現各種的基本邏輯運算、常用符合邏輯運算的電子電路。

????????(7)兩輸入異或、同或互為反函數,即非關系。

????????(8)兩輸入異或、同或的功能為:

????????兩輸入異或,輸入取值不同,輸出1,輸入取值相同,輸出0;

????????兩輸入同或,輸入取值不同,輸出1,輸入取值相同,輸出0.

? ? ? ? (9)n輸入異或的功能為當輸入中有奇數個1時,輸出值為1,有偶數個1時輸出值為0.

? ? ? ? (10)n為偶數時,異或、同或互為非關系;n為奇數時,異或、同或功能相同。

? ? ? ? (11)編碼器用于編碼,使用二進制代碼表示具有某種特定含義的信號,即輸入信號輸出代碼。

? ? ? ? (12)譯碼器用于譯碼,將使用一組代碼表示的特定含義翻譯出來,即輸入代碼輸出信號。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90625.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90625.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90625.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聚焦牛牛道:綠色積分模式如何實現快速發展?

?綠色消費積分政策再次進入大眾視野&#xff0c;這種能為企業減輕庫存負擔、讓咨金周轉更靈活的促銷方式&#xff0c;很快就成了焦點。牛牛道作為積極踐行這一政策的平臺&#xff0c;憑借其獨樹一幟的商業模式和運營思路&#xff0c;在短時間內就取得了顯著發展。一、牛牛道平…

高頻 RFID 賦能工業教學設備教學應用

高頻 RFID 賦能工業教學設備教學應用應用背景傳統工業教學設備側重機械原理、電氣控制等基礎功能演示&#xff0c;缺乏對 RFID 等工業識別技術的具象教學載體。學生在理論學習中難以直觀理解 RFID 技術的工業適配邏輯&#xff0c;實訓中缺乏設備識別系統的部署、調試經驗&#…

Transformer:顛覆NLP的自注意力革命

Transformer:顛覆NLP的自注意力革命 Transformer是自然語言處理領域中極具影響力的深度學習模型架構,以下是對其的詳細介紹: 提出背景與應用:2017年,Vaswani等人在《Attention Is All You Need》論文中首次提出Transformer架構,它主要用于處理序列到序列的任務,如機器翻…

基于 KeepAlived + HAProxy 搭建 RabbitMQ 高可用負載均衡集群

基于 KeepAlived HAProxy 搭建 RabbitMQ 高可用負載均衡集群 基于 KeepAlived HAProxy 搭建 RabbitMQ 高可用負載均衡集群實戰指南 一、前言 在企業級應用中&#xff0c;消息隊列的高可用性是系統穩定性的重要保障。RabbitMQ 作為主流的消息中間件&#xff0c;雖然自身支持…

京東獲得JD商品詳情 API 返回值說明||京東API接入文檔

京東商品詳情API返回值核心字段說明一、商品基礎信息商品ID&#xff08;skuId/productId&#xff09;唯一標識符&#xff0c;用于定位具體商品或SKU&#xff08;如不同顏色、尺寸的變體&#xff09;。示例&#xff1a;"skuId": "123456789"商品標題&#x…

其他世界的自來水

西歐&#xff0c;北美&#xff0c;亞洲日韓等地區&#xff0c;他們的自來水可以直接飲用以英國為例&#xff1a;自來水的質量可能等同或者有可能超過純凈水&#xff0c;不需要消毒和過濾直接可以飲用。直接從水龍接的水和瓶裝純凈水沒有什么差別&#xff0c;甚至比瓶裝純凈水更…

IO密集型、CPU密集型、負載、負載均衡

0、引入 從宏觀上來講&#xff0c;計算機可以抽象為【輸入 > 計算 > 輸出】這三部分 輸入輸出自然就是io&#xff0c;而計算部分自然歸cpu管 不同的任務&#xff0c;對io和cpu的依賴程度不同&#xff0c;由此有了cpu密集型任務和io密集型任務 1、IO密集型 更依賴輸入…

從甲方的角度看MOM項目成敗的原因

關鍵詞&#xff1a;MOM、數字化轉型、成敗數字化轉型中流行這么一句話&#xff1a;SAP項目加班到晚上8點&#xff0c;MOM項目最少到晚上10點。由此可見&#xff0c;MOM項目實施的難度、復雜度。但&#xff0c;為什么MOM難度大&#xff1f;先引入1個故事&#xff1a;1個價值300萬…

MySQL操作進階

系列文章目錄 MySQL的基礎操作-CSDN博客 目錄 系列文章目錄 前言 一、數據庫的約束 1. 約束類型&#xff1a;not null 2. 約束類型&#xff1a;unique 3. 約束類型&#xff1a;default 4. 約束類型&#xff1a;primary key 5. 約束條件&#xff1a;foreign key 二、表…

表征工程 中怎么 調整參數或比例

表征工程 中怎么 調整參數或比例 在表征工程(Representation Engineering)中,調整參數或比例的核心目標是平衡干預效果與模型基礎能力,避免過度干預導致語義失真或能力退化。以下是幾種常用的方法論及具體案例: 1. 系數縮放法(Scaling Coefficients):通過權重參數控制…

如何使用Anaconda(miniconda)和Pycharm

文章目錄前言具體操作Pycharm連接配置 Anaconda&#xff08;miniconda&#xff09;創建的虛擬環境PipAnacondaPyCharm三者關系一圖勝千言總結前言 本文介紹如何利用Anaconda和Pycharm這兩個強大的工具&#xff0c;實現Python項目的高效開發。通過構建虛擬環境、安裝依賴包及利…

【07】C#入門到精通——C# 生成dll庫 C#添加現有DLL C#調用自己生成的dll庫

文章目錄0 多個.cs文件源碼01 Hero.cs02 ShowInfo.cs03 Program.cs &#xff08;相當于Main文件&#xff09;04 運行效果1 生成dll庫1.1 創建類庫1.2 添加要生成 dll庫 的代碼文件1.2.1 添加 Hero類1.2.2 添加 ShowInfo類1.3 生成dll庫 及 查看3 添加自己生成的dll庫4 調用運行…

進程控制->進程替換(Linux)

在之前的博客中&#xff0c;我們已經探討了進程創建、終止和等待的相關知識。今天&#xff0c;我們將繼續深入學習進程控制中的另一個重要概念——進程替換。回顧之前的代碼示例&#xff0c;我們使用fork()創建子進程時&#xff0c;子進程會復制父進程的代碼和數據&#xff08;…

認識泛型、泛型類和泛型接口

目錄泛型泛型類泛型接口泛型 定義類、接口、方法時&#xff0c;同時聲明了一個或者多個類型變量&#xff08;如&#xff1a;<E>&#xff09;&#xff0c;稱為泛型類、泛型接口、泛型方法、它們統稱為泛型 作用&#xff1a;泛型提供了在編譯階段約束所能操作的數據類型&…

如何排查并解決項目啟動時報錯Error encountered while processing: java.io.IOException: closed 的問題

如何排查并解決項目啟動時報錯Error encountered while processing: java.io.IOException: closed 的問題 摘要 本文針對Java項目啟動時出現的java.io.IOException: closed錯誤&#xff0c;提供系統性解決方案。該異常通常由流資源異常關閉或損壞引發&#xff0c;常見于Maven依…

Kafka——多線程開發消費者實例

引言在分布式系統領域&#xff0c;Kafka憑借高吞吐量、低延遲的特性成為消息隊列的事實標準。隨著硬件技術的飛速發展&#xff0c;服務器多核CPU已成常態——一臺普通的云服務器動輒配備16核、32核甚至更多核心。然而&#xff0c;Kafka Java Consumer的設計卻長期保持著"單…

PDF 轉 HTML5 —— HTML5 填充圖形不支持 Even-Odd 奇偶規則?(第二部分)

這是關于該主題的第二部分。如果你還沒有閱讀第一部分&#xff0c;請先閱讀&#xff0c;以便理解“繞組規則”的問題。 快速回顧一下&#xff1a;HTML5 只支持 Non-Zero&#xff08;非零&#xff09;繞組規則&#xff0c;而 PDF 同時支持 Non-Zero 和 Even-Odd&#xff08;奇偶…

機器學習 KNN 算法,鳶尾花案例

目錄 一.機器學習概述 二.人工智能的兩大方向 三.KNN算法介紹 1.核心思想&#xff1a;“物以類聚&#xff0c;人以群分” 2.算法步驟 四.KNN算法實現 1.安裝scikit-learn庫 2.導入knn用于分類的類KNeighborsClassifier 3.設置KNeighborsClassifier的相關參數 4.訓練模…

強化學習(第三課第三周)

文章目錄強化學習&#xff08;第三課第三周&#xff09;一、以火星探測器為例說明強化學習的形式化表示二、強化學習中的回報三、強化學習算法的目標&#xff08;一&#xff09;馬爾可夫決策過程&#xff08;二&#xff09;狀態動作價值函數&#xff08;四&#xff09;使用Bell…

星痕共鳴數據分析2

今天實驗內容是攻擊力部分 1.思路 由于昨天數據分析出了一個函數 這個函數可以把奇怪的字節變成正常的數字 int parse_varint(unsigned const char* data, int count) {int value 0;int shift 0;for (int i 0; i < count; i) {unsigned char byte data[i];value | ((byt…