序
「學習究竟是要登高望遠還是始於卑爾?」恐怕是教育界爭論不停的話題。
在科技發展快速,應用複雜的現代社會中,C語言是工程界中最普遍的應用程式撰寫工具,在高階微處理器應用中也需要使用C語言作為開發工具。因此許多人在使用微處理器時,就直接以C語言作為微處理器開發工具,而這樣的作法往往排除了學習微處理器的硬體架構及運作觀念,導致僅僅學習到使用既有的作業系統、應用函式庫撰寫應用程式,而忽略了微處理器的特性。最終只是利用執行速率更高的硬體來掩飾軟體或設計上的缺失。甚至於當沒有第三方提供對應的硬體或函式庫時,許多工程師便一籌莫展,因為他們只具備程式撰寫的技能,而不具備微處理器的基礎知識。所以學習目標的訂定是很重要的。聞道有先後,術業有專攻。作為教育界的一員,需要把先學到的知識,傳授給後進學員;學習者也要了解自己所需要的專業知識,這樣社會才會分工合作,一起進步。
可惜現代教育制度因為法規、科系、課程等等的分配與限制,許多課程無法連貫而有賴學習者自我規劃;作為教育者也只能盡力將所學以適當的形式記錄,讓讀者自行研讀。這本書就是基於讓有心的讀者不要只是一昧地在網路上尋找解決方案,而能夠培養自己的基礎能力;希望在使用C語言作為工具學習微處理器的同時,仍然可以了解其硬體的功能特性與使用方式,作為未來開發應用程式的基礎。雖然心中仍深信微處理器的基礎學習必須要從電子學、數位電路、組合語言等等的基礎課程開始。
萬丈高樓平地起。以專業人員為生涯規劃的同好,在登高望遠的同時,如果也能夠細細品味一磚一瓦的巧思與技法,除了讚嘆蒼穹美景之餘,不也能夠在需要另起爐灶時,旁徵博引、自由揮灑,可以海闊天空地創造另一個精采的作品?
希望這一次的努力可以讓另一個世代的學子有機會更上一層樓。也感謝所有一起付出辛勞與協助的夥伴。