mother-board-581597_640

課程資料

微處理機系統實驗

開課:陳添福老師

修課年度:100資工系

撰寫在 microcontroller 上執行的程式,利用實驗版或甚至麵包版,實際使單晶片和環境互動。所謂的 microcontroller,指的是把中央處理器、記憶體、各種輸入出介面等等都整合在一起的小型計算機。

這堂課使用的微處理機為 8051,使用的語言一開始為 8051 的組合語言,但到後來多半用 8051 C 來做更複雜的操作。其他一些跟這門課相關的議題:〈微處理機系統實驗〉

上課方式

使用投影片上課。雖然官方上有分上課和晚上的上機時間,不過老師比較喜歡連在一起上,所以在開學時就把上課改成上機前的晚飯時間。上機課兩人一組,在工三二樓的電腦教室上課。

評分方式

沒有期末考和小考。由於學生要求,所以沒有期中考,所有評分就由 10 次 lab 和最後的期末 project 決定。Lab 做不出來都可以補 demo,不會扣分,不過每次的實驗報告要準時交。

評分比例和每次實驗的成績一直都沒有公佈,建議如果往後有機會修習的話可以向老師要求公佈所有原始成績。

考試作業

Lab 主題如下:

  • Lab 1 - LED:控制 LED 燈,使其輪流閃爍。
  • Lab 2:讀取按鍵輸入,在矩陣顯示器上顯示數字
  • Lab 3 - 七段顯示器 + 麵包版:操作 7 段顯示器,顯示特定數字。一開始先是實驗版上的顯示器,接下來要自己接麵包版。
  • Lab 4 - Keyboard I/O:用 4x4 數字鍵盤配合七段顯示器製作計算機。
  • Lab 5 - Timer/ Counter:透過計時器製作時鐘,透過計數器計算按鈕按下次數。
  • Lab 6 - 8051 Interrupt:透過外部按鈕中斷控制LED。透過計時器中斷控制七段顯示器,達成倒數時鐘。跟上次 Lab 很像,只是透過中斷,可以達成更精準控制。
  • Lab 7 - LCD:用 LCD 顯示數字,製作可調整的鬧鐘等等,這裡常會遇到硬體問題,值得注意。
  • Lab 8 - 8051 RS232 序列傳輸:透過 RS-232 接頭和電腦通訊,可以在終端機上顯示文字,也可以接收鍵盤輸入終端機的內容。在這 Lab 裡,使用的是 Windows 內建的「超級終端機」,不過其實用 PuTTY 也可以連,而且還可以用控碼等等來達成特殊效果,在期末專題時或可一試。近年的電腦,慢慢沒有 RS-232 接頭了…
  • Lab 9 - External Memory & ADC:將程式燒錄到外部記憶體,再讓 8051 從記憶體中開始執行。另外還有讀取光敏電阻/熱敏電阻的訊號。
  • Lab 10 - 8051 周邊 I/O:玩玩磁簧開關、蜂鳴器、繼電器等等元件,為專題準備。

最後幾個星期就是做期末專題,大家點子都不太一樣。這期間要上台報告兩次,一次是專題構想,一次則是最後講解專題。大家可以觀摩彼此的專題,最後還有觀眾投票,前幾名有神秘小禮物。

筆者這組的期末專題是一個搶答遊戲,利用 RS-232 從電腦終端機顯示題目,兩個玩家透過按鍵搶答,答對時玩家的四驅車會前進,誰先到達終點即獲勝,題目中也有利用蜂鳴器來實做的猜歌題。也有同學是做打地鼠遊戲。

結語

這堂課重要的就是實驗啊,所以都不點名,也沒有考試。注意到作業投影片和上課投影片常常當天才放上去,所以對我而言想提早準備也有點辛苦。

這門課感覺最花心力的其實是硬體問題,組語和 C 的語法其實不多。記得最後做期末專題時我們還用了烙鐵之類的,記得我烙了半天弄不好,還有熱心的朋友跑來幫我。

然後就是,買材料還滿花錢的,本來想用紅外線模組,不過失敗了,似乎限制頗多,不見得能達到想要的效果。

延伸閱讀