創新科技大比拼 合辦機構 明愛沙田馬登金中學 香港電子科技教育學會 工作坊 1 導師 : 梁樹銓 微電腦 89C2051 入門工作坊第 1 頁 14 雨田一
目錄 第一章認識微電腦 1.1 目的 1.2 簡介微電腦 1.3 微電腦結構 1.4 微電腦之接腳及功能 第二章學習使用微電腦 89C2051 2-1 AT89C2051 微電腦系統發展 2-2 AT89C2051 發展過程 2-3 BASCOM-8051 的使用 (i) 安裝軟件 (ii) 安裝硬體 2-4 編寫程式 (i) BASCOM-8051 介面簡介 (ii) 輸出控制 (iii) 輸入控制 微電腦 89C2051 入門工作坊第 2 頁 14 雨田一
第一章認識微電腦 1-1 目的透過這個學習, 了解微電腦的基本結構及簡單控制 1-2 微電腦簡介 單晶片微電腦簡介 單晶片微電腦 ( Single Chip Microcomputer ) 主要用於控制方面, 所以亦被稱為微控制器 ( Microcontroller ) 單晶片微電腦就是將微電腦的結構安置於同一個晶片而成的電腦, 換句話說, 單晶片微電腦就是把微電腦的結構製造在同一個 IC 內而形成的微電腦. 功能較強的單晶片微電腦, 內部除了 CPU, 記憶體, I/O 等基本結構外, 更將計時器, 計數器, 串列傳輸介面,A/D 轉換器,D/A 轉換器... 等都製作在內部, 真可謂麻雀雖少, 五臟俱全, 已足可滿足大部份應用上的需求 微電腦不但適用於工業自動控制方面的應用, 同時也廣泛應用在產品內, 例如 :- 電視機, 洗衣機, 傳呼機, 手提電話, 遙控器, 電腦鍵盤, 電子遊戲機... 等 採用單晶片微電腦的好處 :- 1. 體積少 -------- 它的結構濃縮於單一晶片內, 因此可生產輕薄短小的產品 下圖 1.1 是學生的心型閃燈作品, 圖中顯示微電腦的實物比例 它已經包含一般電腦的功能 ;; 它可以重複燒錄 1000 次之多 2. 接線簡單 ----- 需外接零件少, 所以線路簡單, 可靠性高, 不論裝配或檢修容易 3. 設計容易 ----- 設計及發展時間短及易微電腦於更改設計. 實物比例 4. 價格低廉 ----- 單晶片微電腦的價格不斷下調, 比傳統邏輯電圖 1.1 學生心型閃燈路較便宜 現時供學習用的 89C2051 約 HK$10.00, 若大量採購, 則價格會更低 5. 簡單易學 ----- 由於外接零件少, 初學者只需用極少的時間學習硬件電路的設計, 把大部份的時間放在軟件 ( 設計程式 ) 編寫的學習方面, 而給學生的自由及創作度很大 發展 89C2051 微電腦主要價錢平, 學生能負擔得起, 可以拿回家學習及使用, 同時家 長也了解學生的學習情況 本校老師近年專心發展平價燒錄器, 方便學生在家中也可以進行 編寫程式及燒錄 微電腦 89C2051 入門工作坊第 3 頁 14 雨田一
1-3 微電腦的結構一般微型電腦結構之方塊圖 1.2, 而單晶片微電腦就是把微電腦的結構製造在同一個 IC 內. 輸入 / 輸出 INPUT/OUTPUT 中央處理器 CPU 記憶 MEMORY 圖 1.2 微電腦的結構 計數器輸入 T1 T0 XTAL1 XTAL2 P3.5 P3.4 振盪及時脈 OSC 0-24MHz 內部程式記憶體 FLASH MEMORY 2K x 8BIT 內部資料記憶體 RAM 128 x 8BIT 兩個計時 / 計數器 TIMER/COUNTER 16 BIT x 2 中央處理器 CPU INTERNAL BUS 內部匯流排 插斷控制 INTERRUPT CONTROL 計時器 可程式 I/O P3.6 串列埠 PROGRAMABLE I/O + _ 串列埠 SERIAL I/O P1 P3 INT1 INT0 P1.1 P1.0 TXD RXD P3.3 P3.2 P1.7-P1.0 P3.7, P3.5-03.0 P3.1 P3.0 AT89C2051 之內部結構方塊圖 微電腦 89C2051 入門工作坊第 4 頁 14 雨田一
1-4 微電腦之接腳及功能 RST 1 20 Vcc (RXD) P3.0 2 19 P1.7 (TXD) P3.1 3 18 P1.6 XTAL2 4 17 P1.5 XTAL1 5 16 P1.4 (INT0) P3.2 6 15 P1.3 (INT1) P3.3 7 14 P1.2 (T0) P3.4 8 13 P1.1 (AIN1) (T1) P3.5 9 12 P1.0 (AIN0) GND 10 11 P3.7 AT89C2051 腳位 接腳符號 方向 方向 12~19 P1.0~P1.7 I/O 埠 1: 是一個 8 位元雙向 I/O 埠且具有內部提升. 埠 1 之 (PORT 1) 輸出緩衝能夠吸收或供應 4 個 LS TTL 負載. 埠 1 接腳 被寫入 1 後, 由內部提升成為拉高電位狀態, 此時可做為 輸入腳. 做輸入時, 埠 1 若被外部拉 ( Pull low ) 將因內部 提升而提供電流 (IIL) 埠腳 交替功能 P1.0 AIN0 電壓輸入比較 P1.1 AIN1 電壓輸入比較 2~3 P3.0~P3.1 I/O 埠 3: 是一個 8 位元雙向 I/O 埠且具有內部提升. 埠 3 6~9 P3.2~P3.5 之輸出緩衝能夠吸收或供應 4 個 LS TTL 負載. 埠 3 接 11 P3.7 (PORT 3) 腳被寫入 1 後, 由內部提升成為拉高電位狀態, 此時可做為輸入腳. 做輸入時, 埠 3 若被外部拉 ( Pull low ) 將因內部提升而提供電流 (IIL). 埠 3 亦做為特殊功能接腳, 列表如下 :- 埠腳 交替功能 P3.0 RXD ( 串列輸入埠 ) P3.1 TXD ( 串列輸出埠 ) P3.2 INT0 ( 外部中斷 0) P3.3 INT1 ( 外部中斷 1) P3.4 T0 ( 計時器 0 外部輸入 ) P3.5 T1 ( 計時器 1 外部輸入 ) 5 XTAL1 I 振盪輸入腳 : 輸入信號接到晶片內部的反相振盪子放大器及內部時脈產生器電路 微電腦 89C2051 入門工作坊第 5 頁 14 雨田一
腳位 接腳符號 方向 功能說明 4 XTAL2 0 振盪輸出腳 : 此腳由晶片內部反相振盪子放大器 (Oscillator s amplifier) 接出 1 RST I 重置 (RESET): 一個 high 電位輸入此腳將重置晶片, 其信號須在振盪器起動後持續兩個機械週期 20 Vcc 電源正端 :2.7-6V 10 GND 電源地端 微電腦 89C2051 入門工作坊第 6 頁 14 雨田一
第二章 學習使用微電腦 89C2051 2-1 AT89C2051 微電腦系統發展發展晶片 89C2051 系統之發展基本工具有 (A) 硬件 :- (1) PC 電腦一部 (XT/AT) (2) 89C2051 燒錄器. ( 圖 2.1) (3) 微電腦控制板 ( 圖 2.2) (B) 軟件 :- (1) 89C2051 組譯器及燒錄程式軟件 (BASCOM-8051 DEMO) 下載軟件試用版網址 http://www.mcselec.com/download_8051.htm 圖 2.1 89C2051 燒錄器圖 2.2 微電腦控制板 微電腦 89C2051 入門工作坊第 7 頁 14 雨田一
2-2 AT89C2051 發展過程 編輯原始 Basic 檔 TEST.BAS 進行組譯 (Compile) 微電腦程式 修改軟件 Y 組譯有錯? N 修改硬件 用燒錄器將程式寫入 晶片內, 然後插入學 習套件內進行測試. N Y N 硬件出錯? 測試 OK? Y 完成 發展程序有很多種方法, 以上的方法需要工具最少, 而較易了解及體驗晶片的內部運作, 對初學者非常重要 至於組譯器有幾間公司出品, 而以下示範用 BASCOM-8051 是 MCS Electronic 公司所開發出的 8051 BASIC 語言組譯器 微電腦 89C2051 入門工作坊第 8 頁 14 雨田一
2-3 BASCOM-8051 的使用 (i) 軟件安裝先由 MCS Electronic 公司網址 http://www.mcselec.com/download_8051.htm 下載 BASCOM-8051 試用版軟件, 然後進行解壓縮及安裝 安裝後, 需要進行選項及調整如圖 2.3 從目錄 Option Programmer 選取燒錄種類 列印埠地址及埠延時 Option Programmer 燒錄類型是 BlowlT programmer 埠地址要視符每部電腦 埠延時要視符每部電腦的速度 圖 2.3 安裝後的選項設定 (ii) 安裝硬體 (a) 燒錄器的安裝如圖 2.4 所示連接電腦列印埠 電源 12V 圖 2.4 燒錄器的安裝 微電腦 89C2051 入門工作坊第 9 頁 14 雨田一
(b) 微電腦控制板如圖 25 所示輸入埠 P1 電源 5V 指示燈 電源開關掣 電源 6V~9V 微電腦 89C2051 備用輸出 P3.4 及 P3.5 鎖定電腦手柄 兩個馬達輸出 P3.0~P3.3 輸出蜂鳴器 P3.7 馬達轉動方向指示燈圖 2.5 微電腦控制板 2-4 編寫 BASIC 語言程式 (i) BASCOM-8051 介面簡介 啟動 BASCOM-8051 程式如圖 2.6 組譯 Compile 燒錄 Send to chip 程式 Programmer 程式備注 圖 2.6 BASCOM-8051 發展介面 微電腦 89C2051 入門工作坊第 10 頁 14 雨田一
(ii) 輸出控制 練習 1 以下程式是控制蜂鳴器不斷相隔 1 秒響 1 次 開始 Do P3=&B0111111 Waitms 1000 P3=&B1111111 Waitms 1000 Buzzar ON Buzzar OFF 蜂鳴器響延時 1 秒蜂鳴器關延時 1 秒 Loop 注意 : 程式中 &B 是代表二進數值 圖 2.7 流程圖 燒錄程序 1, 編輯程式完畢, 進行組譯 (Compile) 成電腦的機械碼如圖 2.8 所示, 如有錯誤如圖 2.9 所示, 就要更正 組譯按 Compile 檔案名稱 圖 2.8 組譯程式 微電腦 89C2051 入門工作坊第 11 頁 14 雨田一
顯示組譯處 圖 2.9 指示組譯錯處 2, 組譯完畢而沒有錯誤, 可以進行將電腦機械碼 (machine code) 燒錄 (Send to chip) 入微電腦內如圖 2.10 所示 燒錄按 (Send to chip) 1 2 注意微電腦是否正確 電腦機械碼 燒錄步驟 Send to Chip Buffer Program Chip 圖 2.10 燒錄程序 微電腦 89C2051 入門工作坊第 12 頁 14 雨田一
練習 2 試將練習 1 程式中 P3=&B0111111 ( P3.7=0 ), 在下面寫出你的修改 後之程式 挑戰題 1 蜂鳴器發出求救訊號 (3 長 2 短 `) 請在下面寫出程式及流程圖 挑戰題 2 以下是控制兩馬達的真值表, 請在下面寫出程式及流程圖, 使馬達向前行 1 秒, 然後向後行 1 秒 B 馬達 A 馬達 P3.3 P3.2 P3.1 P3.0 停 0 0 0 0 前 ( 紅 ) 0 1 0 1 後 ( 綠 ) 1 0 1 0 後 ( 綠 ) 1 1 1 1 圖 2.11 馬達方向指示燈 微電腦 89C2051 入門工作坊第 13 頁 14 雨田一
(iii) 輸入控制圖 2.12 是輸入接口 P1 分別由 P1.7 至 P1.0, 注意紅色線是正電在上方, 圖 2.13 紅外線反射接收器. LED 指示燈紅外線反射接收器輸入接口 P1 P1.7..P1.0 圖 2.12 輸入接口 P1 圖 2.13 紅外線反射接收器 練習 3 當接收訊號紅外線就會亮, 以下是當程式接收訊號就會響蜂鳴器 Do P3.7 = P1.0 Buzzar ON/OFF Waitms 100 Loop 挑戰題 3 試將接收與馬達結合而成跟蹤白色路車 在下面列出結果程式 微電腦 89C2051 入門工作坊第 14 頁 14 雨田一