资源描述
個人電腦檢修卡試題程式解析狀態法 4-1 本章程式設計說明 本章各試題的QBASIC 程式幾乎相同,在每程式中的第22行由於試題的Step有不同(參考各試題QBASIC程式),只作迴圈數的修改,其它部分完全相同;而PLD 程式部分也很簡單,只要將試題中功能要求的圖形轉換成布林方程式與狀態圖,即完成程式的設計。 由於個人電腦檢修卡製作試題的功能為序向邏輯電路,所以本章PLD 程式採用狀態機器的設計語法(State Machine Design),此語法簡單好設計,其設計流程如下:,模擬段在程式中可有可無,作者建議練習時去體會模擬波形的情況 以下用試題一作為一個模擬波形的範例,僅就模擬段作說明,其餘程式在各試題中會詳細解說。(將本PLD程式儲存為S1.PDS檔) PLD 程式: CHIP S1 PAL22V10 CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC EQUATIONS H80=/A9* /A8* A7* /A6* /A5* /A4* /A3*/A2*/A1*/A0*/IOW H200=A9*/A8*/A7*/IOW*/AEN ;- STATE MOORE_MACHINE START_UP :=POWER_UP - S0,S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* /L12* /L11* /L10* L9 S2 =/L15* /L14* /L13* /L12* /L11* L10* /L9 S3 =/L15* /L14* /L13* /L12* L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9 S5 =/L15* /L14* L13* /L12* /L11* /L10* /L9 S6 =/L15* L14* /L13* /L12* /L11* /L10* /L9 S7 =L15* /L14* /L13* /L12* /L11* /L10* /L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5,S5 := VCC - S6 S6 := VCC - S7 S7 := VCC - S0 ;SIMULATION SIMULATION TRACE_ON AEN CLK L9 L10 L11 L12 L13 L14 L15 SETF /CLK /AEN FOR I:= 1 TO 16 DO BEGIN CLOCKF CLK END TRACE_OFF,PLD 模擬段程式解說: (1);SIMULATION “;“後面的文字表示註解,說明底下 為模擬程式。 (2) SIMULATION 宣告模擬段 (3) TRACE_ON AEN CLK L9 L10 L11 L12 L13 L14 L15 打開追蹤檔,並依序記錄AEN CLK L9 L10 L11 L12 L13 L14 L15等信號的模擬結果。,(4) SETF /CLK /AEN SETF 語法格子: CLK 腳(第腳)在啟始狀態,被定為High 時,若 使用CLOCKF 指令時,會有警訊產生,所以必須利用 SETF指令將CLK 的初始狀態設定為Low,而AEN (Address Enable) 位址為Low動作,所以SETF /CLK /AEN 為設定CLK AEN信號為Low。 (5) FOR I:= 1 TO 16 DO BEGIN CLOCKF CLK END,SETF 輸入信號1 輸入信號2 輸入信號3 輸入信號N,語法格式: CLOCKF 指令,時序順序分為三大步驟: (a)執行CLOCKF指令時,時脈由Low 變為High。 (b)當時脈為High時,新的信號輸出值才會記 錄。當時脈為Low 時,信號輸出值才會顯 現在上一行。,FOR 變數名稱:=起始值 TO 終止值 DO BEGIN 動作程序 END,本試題有8個步階(Step),每一步階取兩次信號,所以作16次迴圈。亦就是要產生16次的 CLOCK(時脈)。 若想要模擬各試題波形,只要將下列模擬段寫到PLD的後面即可,如前面S1.PDS 程式。 ;SIMULATION SIMULATION TRACE_ON AEN CLK L9 L10 L11 L12 L13 L14 L15 SETF /CLK /AEN FOR I:= 1 TO 16 DO BEGIN CLOCKF CLK END TRACE_OFF,4-2 第一題 個人電腦檢修卡製作與單只LED向 左移閃爍控制 動作要求: (1)、能依本試題提供之個人電腦檢修卡參考 電路圖、個人電腦檢修卡零件配置圖 製作完成檢修卡。 (2)、將檢修卡安裝於外接式介面緩衝短路保護 器上測試開機,能正常完成開機程序,至 C:_。 (3)、設計一程式能測試I/O位址80H上的每一LED, 當程式執行時若按F1鍵,則可將LED1 至LED8依序逐一點亮(每一LED亮燈時間為1 秒,其餘的LED不發光,最後全滅),以利 評分。,(4)、以第(3)項之程式控制LED9-LED15,其動 作要求如下: 當按F2鍵,首先是LED9發光,其餘的 LED不發光,其亮燈時間為1秒,之後則 LED10發光,然後LED11發光。其順序 LED9LED10LED11LED12LED13 LED14 LED15,最後全部熄滅,每一 STEP時間為1秒。 若再按F2鍵,則再次循環,按ESC 鍵結束程式執行。 以圖形表示,則動作如下:,5、電腦執行上述程式時會先清除薑面,並顯示 畫面如下,Hit to test 80H I/O Now Time:xx:xx:xx Hit to test LED9-15 Hitto quit Please hit a key - ,註:xx:xx:xx 表示現在時間,第一題 PLD程式解析 一、依試題第四項圖形動作要求撰寫狀態真值表如下: 狀態真值表,二、 由狀態真值表中,得知各狀態分別為S0、S1、S2、 S3、S4、S5、S6、S7,由此狀態表設計出狀態圖, 然後利用狀態機器莫爾模式(Moore Model),設計 序向邏輯PLD程式。 三、狀態圖,四、PLD 程式 CHIP PLD PAL22V10 CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC EQUATIONS H80=/A9* /A8* A7* /A6* /A5* /A4* /A3*/A2*/A1*/A0*/IOW H200=A9*/A8*/A7*/IOW*/AEN ;- STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* /L12* /L11* /L10* L9 S2 =/L15* /L14* /L13* /L12* /L11* L10* /L9 S3 =/L15* /L14* /L13* /L12* L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9,S5 =/L15* /L14* L13* /L12* /L11* /L10* /L9 S6 =/L15* L14* /L13* /L12* /L11* /L10* /L9 S7 =L15* /L14* /L13* /L12* /L11* /L10* /L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S7 S7 := VCC - S0,第一題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任意 取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =L15* /L14* /L13* /L12* /L11* /L10* /L9 S2 =/L15* L14* /L13* /L12* /L11* /L10* /L9 S3 =/L15* /L14* L13* /L12* /L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9,S5 =/L15* /L14*/ L13* /L12* L11* /L10* /L9 S6 =/L15* /L14* /L13* /L12* /L11* L10* /L9 S7 =/L15* /L14* /L13* /L12* /L11* /L10* L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S7 S7 := VCC - S0,第二題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* /L12* /L11* L10* L9 S2 =/L15* /L14* /L13* /L12* L11* L10* /L9 S3 =/L15* /L14* /L13* L12* L11* /L10* /L9 S4 =/L15* /L14* L13* L12* /L11* /L10* /L9,S5 =/L15* L14*L13* /L12* /L11* /L10* /L9 S6 =L15* L14* /L13* /L12* /L11* L10* /L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S0,第三題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =L15* L14* /L13* /L12* /L11* /L10* /L9 S2 =/L15* L14* L13* /L12* /L11* /L10* /L9 S3 =/L15* /L14* L13* L12* /L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* L11* /L10* /L9,S5 =/L15* /L14* /L13* /L12* L11* L10* /L9 S6 =/L15* /L14* /L13* /L12* /L11* L10* L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S0,第四題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* /L12* /L11* /L10* L9 S2 =/L15* /L14* /L13* /L12* /L11* L10* L9 S3 =/L15* /L14* /L13* /L12* L11* L10* L9 S4 =/L15* /L14* /L13* L12* L11* L10* L9,S5 =/L15* /L14* L13* L12* L11* L10* L9 S6 =/L15* L14* L13* L12* L11* L10* L9 S7 =L15* L14* L13* L12* L11* L10* L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S7 S7 := VCC - S0,第五題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =L15* /L14* /L13* /L12* /L11* /L10* /L9 S2 =L15* L14* /L13* /L12* /L11* /L10* /L9 S3 =L15* L14* L13* /L12* /L11* /L10* /L9 S4 =L15* L14* L13* L12* /L11* /L10* L9,S5 =L15* L14* L13* L12* L11* /L10* /L9 S6 =L15* L14* L13* L12* L11* L10* /L9 S7 =L15* L14* L13* L12* L11* L10* L9 ;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S5 S5 := VCC - S6 S6 := VCC - S7 S7 := VCC - S0,第六題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* L12* /L11* /L10* /L9 S2 =/L15* /L14* L13* /L12* L11* /L10* /L9 S3 =/L15* L14* /L13* /L12* /L11* L10* /L9 S4 =L15* /L14* /L13* /L12* /L11* /L10* L9,;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S0,第七題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =L15* /L14* /L13* /L12* /L11* /L10* L9 S2 =/L15* L14* /L13* /L12* /L11* L10* /L9 S3 =/L15* /L14* L13* /L12* L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9,;- S0 := VCC - S1 S1 := VCC - S2 S2 := VCC - S3 S3 := VCC - S4 S4 := VCC - S0,第八題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =/L15* /L14* /L13* /L12* /L11* /L10* L9 S2 =/L15* /L14* /L13* /L12* /L11* L10* /L9 S3 =/L15* /L14* /L13* /L12* L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9,S5 =/L15* /L14* L13* /L12* /L11* /L10* /L9 S6 =/L15* L14* /L13* /L12* /L11* /L10* /L9 S7 =L15* /L14* /L13* /L12* /L11* /L10* /L9 ;- S0 := VCC - S1 S1 := UP - S2 + DN -S0 S2 := UP - S3 + DN - S1 S3 := UP - S4 + DN - S2 S4 := UP - S5 + DN - S3 S5 := UP - S6 + DN - S4,S6 := UP - S7 + DN -S5 S7 := DN - S6 ;- CONDITIONS UP=UPT DN=DOWN,第九題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) STRING DOWN宣告字串 DOWN 為A9* /A8* /A7* /A6* /A5* /A4* /A3*/A2*/A1*A0*/IOW*/AEN STRING UPT 宣告字串UPT 為 A9* /A8* /A7* /A6* /A5* /A4* /A3*/A2*/A1*/A0*/IOW*/AEN EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT - STATE MOORE_MACHINE START_UP :=POWER_UP - S0 S0 =/L15* /L14* /L13* /L12* /L11* /L10* /L9 S1 =L15* /L14* /L13* /L12* /L11* /L10* /L9 S2 =/L15* L14* /L13* /L12* /L11* /L10* /L9 S3 =/L15* /L14* L13* /L12* /L11* /L10* /L9 S4 =/L15* /L14* /L13* L12* /L11* /L10* /L9,S5 =/L15* /L14* /L13* /L12* L11* /L10* /L9 S6 =/L15* /L14* /L13* /L12* /L11* L10* /L9 S7 =/L15* /L14* /L13* /L12* /L11* /L10* L9 ;- S0 := VCC - S1 S1 := UP - S2 + DN -S0 S2 := UP - S3 + DN - S1 S3 := UP - S4 + DN - S2 S4 := UP - S5 + DN - S3 S5 := UP - S6 + DN - S4,S6 := UP - S7 + DN -S5 S7 := DN - S6 ;- CONDITIONS UP=UPT DN=DOWN,第十題 PLD 程式說明 (1) CHIP PLD PAL22V10 宣告CHIP 元件為PAL22V10,PLD 為自取名稱, 可以任意取名稱。 (2) CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 GND 定義PAL22V10第1 腳到第12腳的腳位名稱,可以 任意取名稱,名稱與名稱之間必須空隔1格以上。 (3) AEN IOW L9 L10 L11 L12 L13 L14 L15 H80 H200 VCC 定義PAL22V10第13腳到第24腳的腳位名稱,可以任 意取名稱,名稱與名稱之間必須空隔1格以上。 (4) STRING DOWN宣告字串 DOWN 為A9* /A8* /A7* /A6* /A5* /A4* /A3*/A2*/A1*A0*/IOW*/AEN STRING UPT 宣告字串UPT 為 A9* /A8* /A7* /A6* /A5* /A4* /A3*/A2*/A1*/A0*/IOW*/AEN EQUATIONS 宣告布林方程式。,(5) H80=/A9*/A8*A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0*/IOW H80只是名稱而已,因為電腦故障代碼顯示的位址為H80,可以任意取名稱(例如取ABC或XYZ 等等),而本布林代數算出剛好也是H80,所以取用H80比較好記,H代表16進制。而列出的布林代數,只有A7為1,其餘皆為0,/ 代表反相為0, /IOW、/AEN 為低態動作,IOW-Input Output Write,AEN-Address Enable,當QBASIC 程式執行OUTPUT TIME$ 7 8OUT &H80, 0 9WHILE K$ CHR$(27) 10 K$ = RIGHT$(INKEY$, 1) 11 LOCATE 1, 70: PRINT TIME$ 12 IF K$ = GOTO KEND 13 SELECT CASE ASC(K$) 14 CASE 59 15 FOR I = 0 TO 7 16 OUT &H80, 2 I,17 LOCATE 1, 70: PRINT TIME$ 18 SLEEP 1 19 NEXT I 20 OUT &H80, 0 21 CASE 60 22 FOR I = 1 TO 7 23 OUT &H200, 1 24 LOCATE 1, 70: PRINT TIME$ 25 SLEEP 1 26 NEXT I 27 FOR I = 1 TO 7 28 OUT &H201, 1 29 LOCATE 1, 70: PRINT TIME$ 30 SLEEP 1 31 NEXT I 32 END SELECT 33KEND: 34 WEND 35 END,第十題 QBASIC程式說明 第22行 有7個STEP狀態給UP條件,所以由FOR I=1 TO 7,由H200輸出訊號給PLD UP條件。 第27行 有7個STEP狀態給DN條件,所以由FOR I=1 TO 7,由H20輸出訊號給PLD DN條件,其餘與第一題相同。,
展开阅读全文