• 沒有找到結果。

數位邏輯與實習:實驗一 基本邏輯閘實驗

N/A
N/A
Protected

Academic year: 2022

Share "數位邏輯與實習:實驗一 基本邏輯閘實驗"

Copied!
7
0
0

加載中.... (立即查看全文)

全文

(1)

數位邏輯與實習:實驗一 基本邏輯閘實驗

A. NOT (反閘)

實驗目的:1. 請使用程式語言寫出「反閘」之功能。

2. 利用一個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3. 真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 模擬板上之 VDD 表示邏輯「1」與 VSS 表示邏輯「0」。

(注意:正、負端的排針不可相接)

2. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

3. 將模擬板上 J3 的 PA0 接至 VSS 的排針上,觀察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,「暗」則填「1」。

4. 再將模擬板上 J3 的 PA0 換接至 VDD 的排針上,觀察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,「暗」則填「1」。

範例程式:

// Not Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 _pa4=!_pa0; // 「!」代表相反,0 變 1,1 變 0。

} // 主程式底端

Truth Table (真值表): 波形

Input Ouput A Y

0 1

A:________V/DIV Y:________V/DIV

班級:

姓名:

學號:

V1.0

(2)

B. Buffer (緩衝器)

實驗目的:1. 請使用程式語言寫出緩衝器之功能。

2. 利用一個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3. 真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0 接至 VSS 的排針上,觀察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,「暗」則填「1」。

3. 再將模擬板上 J3 的 PA0 換接至 VDD 的排針上,觀察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,「暗」則填「1」。

範例程式:

// Buffer

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 _pa4=_pa0; // 將 pa0 的值讀入,並由 pa4 輸出

} // 主程式底端

Truth Table (真值表): 波形

Input Ouput

A Y

0 1

A:________V/DIV Y:________V/DIV

(3)

C. AND (及閘)

實驗目的:1. 請使用程式語言寫出「及閘」之功能。

2. 利用二個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3. 真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0、PA1 分別依照真值表上所示來測試輸出的狀態,即觀 察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,

「暗」則填「1」。

範例程式:

// And Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

unsigned a; // 設定一個非負之參數 a

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 {

a=_pa0 & _pa1; //「&」在程式中即代表「and」之意 _pa4=a; // 將計算出來的結果由 pa4 輸出 }

} // 主程式底端

Truth Table (真值表): 波形

Input Output A B Y

0 0 0 1 1 0 1 1

A:________V/DIV Y:________V/DIV

(4)

D. OR (或閘)

實驗目的:1.請使用程式語言寫出或閘之功能。

2.利用二個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3.真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0、PA1 分別依照真值表上所示來測試輸出的狀態,即觀 察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,

「暗」則填「1」。

範例程式:

// Or Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

unsigned a; // 設定一個參數 名稱為「a」

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 {

a=_pa0 | _pa1; //「|」在程式中即代表「or」之意 _pa4=a; // 將計算出來的結果由 pa4 輸出 }

} // 主程式底端

Truth Table (真值表): 波形

Input Output A B Y

0 0 0 1 1 0 1 1

A:________V/DIV Y:________V/DIV

(5)

E. NAND (反及閘)

實驗目的:1.請使用程式語言寫出反及閘之功能。

2.利用二個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3.真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0、PA1 分別依照真值表上所示來測試輸出的狀態,即觀 察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,

「暗」則填「1」。

範例程式:

// Nand Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

unsigned a; // 設定一個非負之參數 a

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 {

a=!(_pa0 & _pa1); // 先利用「and」計算,再將結果「反向」

_pa4=a; // 將計算出來的結果由 pa4 輸出 }

} // 主程式底端

Truth Table (真值表): 波形

Input Output A B Y

0 0 0 1 1 0 1 1

A:________V/DIV Y:________V/DIV

(6)

F. NOR (反或閘)

實驗目的:1. 請使用程式語言寫出反或閘之功能。

2.利用二個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3.真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0、PA1 分別依照真值表上所示來測試輸出的狀態,即觀 察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,

「暗」則填「1」。

範例程式:

// Nor Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

unsigned a; // 設定一個非負之參數 a

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 {

a=!(_pa0 | _pa1); // 先利用「or」計算,再將結果「反向」

_pa4=a; // 將計算出來的結果由 pa4 輸出 }

} // 主程式底端

Truth Table (真值表): 波形

Input Output A B Y

0 0 0 1 1 0

1 1 A:________V/DIV

Y:________V/DIV

(7)

G. XOR (互斥或閘)

實驗目的:1. 請使用程式語言寫出互斥或閘之功能。

2. 利用二個埠當輸入,一個埠當輸出,並將輸出結果以模擬板的 LED 顯示。

3. 真值表上的 1 代表高準位(請接 VDD),0 代表低準位(請接 VSS)。

實作方法:1. 將模擬板上 J4 的 PA4 接至模擬板上 J5 的 L0。

2. 將模擬板上 J3 的 PA0、PA1 分別依照真值表上所示來測試輸出的狀態,即觀 察 LED1 燈是否有亮,若 LED1 燈「亮」,請於真值表對應之輸出 Y 欄填上「0」,

「暗」則填「1」。

範例程式:

// Xor Gate

#include "ht48e50.h" // 載入 ht48e50.h 的設定值 void main () // 主程式

{

unsigned a; // 設定一個非負之參數 a

_pac=0x0f; // 設定 _pa 低 4bit(pa0~pa3)為輸入;

// 高 4bit(pa4~pa7)為輸出。

_pa=0xff; // 設定 _pa 起始值(LED 初始為暗)

while(1) // 無限迴圈,讓程式重複執行 while{…}中的程式碼 {

a=_pa0 ^ _pa1; //「^」在程式中即代表「xor」之意 _pa4=a; // 將計算出來的結果由 pa4 輸出 }

} // 主程式底端

Truth Table (真值表): 波形

Input Output A B Y

0 0 0 1 1 0 1 1

A:________V/DIV Y:________V/DIV

參考文獻

相關文件

Moore machine 練習. „

掌握文本要 旨、發展學習及 解決問題策略、 初探邏輯思 維, 並透過體驗與 實踐,.

這種狀況表明,佛教發展的內在邏輯要求禪教會通,融和一致,相互補充。事實上,這種發

„ FPGA –現場可規劃邏輯陣列 (field- programmable

„ FPGA –現場可規劃邏輯陣列 (field- programmable

„ FPGA –現場可規劃邏輯陣列 (field- programmable

邏輯閘層次的最小化(gate-level minimization)可歸類為求取 描述數位電路之布林函數的最佳化閘-層次執行電路的設計工作。此項

邏輯閘層次的最小化(gate-level minimization)可歸類為求取描述數位電