目錄 Chapter 0 簡介 - 微電腦基本結構... - - 單晶片微電腦... - - MCS- 單晶片微電腦... - Chapter 0 系統分析 - 接腳說明... - - 內部結構方塊圖... - - 系統時序 (CLOCK)... - - 系統重置 (RESET)... - - 程式計數器 (Program Counter;PC)... - - 程式記憶體 (ROM)... - - 資料記憶體 (RAM)... -0 -- 暫存器庫區... - -- 可位元定址區... - -- 一般用途區... - - 特殊功能暫存器 (SFR)... - -- A 累加器... - -- B 暫存器... - -- 程式狀態字元 (PSW)... - -- 堆疊指標 (Stack Pointer;SP)... - -- 資料指標暫存器 (Data Pointer;DPTR)... - - 輸入 / 輸出 (I/O) 埠... - -- 埠 0(P0)... - -- 埠 (P)... - -- 埠 (P)... - -- 埠 (P)... - -0 中斷... - -0- 中斷向量... - -0- 中斷控制系統... -0-0- 中斷致能暫存器 (IE)... - -0- 中斷優先權暫存器 (IP)... - -0- 計時 / 計數控制暫存器 (TCON)... - - 計時 / 計數器 0 與計時 / 計數器... - vii
目錄 -- 計時 / 計數模式控制暫存器 (TMOD)... - -- 計時 / 計數控制暫存器 (TCON)... - -- 模式 0 分析... - -- 模式 分析... - -- 模式 分析... - -- 模式 分析... - - 計時 / 計數器... -0 -- 計時 / 計數器 控制暫存器 (TCON)... -0 -- 自動再載入 (Auto-Reload) 模式分析... - -- 捕捉 (Capture) 模式分析... - -- 鮑率 (Baud Rate) 產生器分析... - - 串列埠... - -- 串列埠控制暫存器 (SCON)... - -- 串列埠鮑率設定... - -- 模式 0 分析... - -- 模式 分析... - -- 模式 及模式 分析... - -- 多處理機通信... - - 省電模式... - -- 閒置 (Idle) 模式... - -- 功率下降 (Power Down) 模式... - Chapter 0 C 語言基礎 - C 程式的架構... - - C 語言的常數與變數... - -- 變數名稱... - -- 資料型態... - -- 變數宣告... - -- 變數的生命週期... - - 記憶體類型 (memory type)... - - 記憶體模式 (memory mode)... - - 運算子 (operator)... - -- 算術運算子... - -- 關係運算子... -0 -- 邏輯運算子... - -- 位元運算子... - -- 指定運算子... - -- 運算子的優先順序... - - C 語言的程式流程控制... - -- 迴圈控制指令... - -- 條件控制指令... - viii
目錄 -- 無條件跳躍指令... - - 函數 (function)... - -- 函數原型... - -- 中斷函數... - - 前置命令... - -- #define 前置命令... - -- #include 前置命令... - - 陣列 (array)... - -- 一維陣列... - -- 二維陣列... - -- 三維陣列... - -- 以陣列傳引數... - -0 指標 (pointer)... - -0- 指標的宣告... - -0- 指標與陣列... - -0- 雙重指標... - Chapter 0 程式設計 - 程式設計流程... - -- 編輯... - -- 組譯... - -- 連結... - -- 模擬與執行... - -- 燒錄... - - μ Vision 整合性開發環境介紹... - -- 安裝 Keil μ Vision IDE... - -- μ Vision 計畫檔 (project) 建立說明... - -- μ Vision 編輯器 (editor) 操作說明... - -- μ Vision 除錯器 (debugger) 操作說明... - Chapter 0 常用函數 - 延遲函數... - - 進轉 0 進函數... - - 0 進轉 進函數... - - 進碼轉 ASCII 碼函數... - - ASCII 碼轉 進碼函數... - - BCD 碼轉七段顯示碼函數... - - 除彈跳函數... - Chapter 0 輸出埠實習 - LED 單燈右移實習... - ix
目錄 - LED 廣告燈實習... - - LED 霹靂燈實習... - - LED 交通號誌實習... - - 七段顯示器 位計數實習... - - 七段顯示器 位計數實習... - Chapter 0 輸入埠實習 - 指撥開關控制 LED 實習... - - 按鍵開關控制 LED ON/OFF 實習... - - 按鍵開關控制 LED 移位實習... -0 - 矩陣鍵盤控制 LED ON/OFF 實習... - - 矩陣鍵盤控制 位七段顯示器實習... - Chapter 0 外部中斷實習 - 一個外部中斷實習... - - 兩個外部中斷實習... - Chapter 0 計時 / 計數器實習 - 計時模式 0 實習 秒計時器... - - 計時模式 實習 0 分計時器... - - 計時模式 實習 小時數字鐘... -0 - 計時模式 實習 可程式 小時數字鐘... - - 計時模式 實習 LED 移位速度控制... - Chapter 0 串列埠實習 0- 串列埠模式 0 實習 擴充輸入... 0-0- 串列埠模式 0 實習 擴充輸出... 0-0- 串列埠模式 實習 位元遠端遙控開關... 0-0- 串列埠模式 實習 遠端遙控顯示... 0-0- 串列埠模式 實習 位元遠端遙控開關... 0-0- PC 與 0 連線控制實習... 0- Chapter 矩陣型 LED 實習 - 矩陣型 LED 顯示實習 靜態字元顯示... - -- 掃描原理... - -- 掃描時間... - - 矩陣型 LED 顯示實習 0~ 計數器... - - 矩陣型 LED 顯示實習 00~ 計數器... - - 矩陣型 LED 顯示實習 動態字元顯示... - - 矩陣型 LED 顯示實習 動態字串顯示... - - 矩陣型 LED 顯示實習 靜態中文字元顯示... -0 x
目錄 - 矩陣型 LED 顯示實習 動態中文字元顯示... - - 矩陣型 LED 顯示實習 動態中文字串顯示... - Chapter 聲音產生實習 - 聲音產生器實習... - - 電子琴實習... - - 音樂盒實習... - Chapter LCD 介面實習 - 內建字型顯示實習... - -- LCM 接腳說明... - -- LCM 內部記憶體... - -- LCM 指令... - -- LCM 初始化... - -- LCM 讀寫週期... - - 自建字型顯示實習... - - 數字鐘實習... - Chapter 類比 / 數位 (A/D) 介面實習 - 數位電壓表實習... - -- 感測器... - -- 放大整形... - -- A/D 轉換器... - - AD0 數位溫度計實習... - - LM/0HV 數位溫 / 溼度計實習... - Chapter 步進馬達控制實習 - 步進馬達轉向控制實習... - -- 控制電路... - -- 驅動電路... - -- 直流電源... - -- 步進馬達... - - 步進馬達轉速控制實習... - - 步進馬達可程式步數 轉速 轉向控制實習... - Chapter 直流馬達控制實習 - 直流馬達轉向控制實習... - - 直流馬達轉速控制實習... - - 直流馬達應用 智慧型風扇實習... - - PWM 應用 LED 調光器實習... - xi
目錄 Chapter 伺服馬達控制實習 - 固定角度型伺服機控制 轉角控制實習 ( 一 )... - - 固定角度型伺服機控制 轉角控制實習 ( 二 )... - - 連續旋轉型伺服機控制 轉向控制實習... - Chapter 串列式 EEPROM C 應用實習 - C 基本應用實習... - - C 密碼鎖實習... - 附錄 A ASCII 碼 A- 不可見字元... A- A- 可見字元... A- A- 擴充字元... A- 附錄 B 記憶體接腳圖 B- RAM 記憶體... B- B- ROM 記憶體... B- 附錄 C 外部記憶體擴充 C- 外部程式記憶體擴充... C- C- 外部資料記憶體擴充... C- 附錄 D 實驗板設計說明 D- 電源電路... D- D- LED 電路... D- D- MCS- 電路... D- D- 七段顯示器電路... D- D- LCD 電路... D- D- 矩陣型 LED 電路... D- D- 指撥開關電路... D- D- 按鍵開關電路... D- D- ADC 電路... D- D-0 DAC 電路... D- D- 脈波產生電路... D- D- 聲音電路... D- D- RS- 電路... D- D- 步進馬達電路... D- D- 直流馬達電路... D-0 xii
- LED 實習目的瞭解 矩陣型 LED 靜態中文字元顯示原理 相關知識中文字有兩種不同的解析度, 一為 字型, 一為 字型, 如果是 字型, 則每一個字型佔用 0 個位元組 ( /=0) 的記憶體空間, 必須使用 個 矩陣型 LED; 如果是 字型, 則每一個字型佔用 個位元組 ( /=) 的記憶體空間, 必須使用 個 矩陣型 LED 本實習使用 個 矩陣型 LED 顯示單一個 中文字型 為了節省 MCS- 的 I/O 埠腳使用, 我們使用 LS 的閂鎖型 IC, 將兩個位元組的字元資料分別閂鎖在 IC 內, 並且使用 對 的解碼器產生行掃描信號 本實習顯示中文字型 光, 光 字的字型顯示如圖 -(a) 所示, 其字型資料如表 - 所示, 每一行兩個位元組資料, 共 個位元組 因為是使用 個 矩陣型 LED 顯示器, 所以必須將其連接起來如圖 -(b) 所示, 才能正常使用 列 0 0 行 0 0 0 列 0 0 行 0 0 0 (a) 顯示情形 (f) 連接情形 圖 - 中文字型 光 -0
chapter 矩陣型 LED 實習 表 - 中文字型 光 的字型資料定義 行 0 行 行 行 行 行 行 行 位元組 0 0xdf 0xdf 0xdf 0xdd 0xd 0xf 0xdf 0xc0 位元組 0xff 0xdf 0xef 0xf 0xf 0xfe 0xff 0xff 位元組 0 0xdf 0xf 0xd 0xdb 0xdd 0xcd 0xdf 0xff 位元組 0xff 0xe0 0xdf 0xdf 0xdf 0xdf 0xe 0xff 功能說明 電路圖 如圖 - 所示, 控制 矩陣型 LED 顯示器顯示靜態中文字型 光 0uF 0K MHZ +V 0P 0P 0 0 MCS- VCC EA/VP RESET X X VSS P0 P P P P P P P P0 P P P P P P P 0 0 A B C D 0 G G LS 0 N0X +V P. +V 0K D0 Q0 D Q D Q D Q D Q D Q D Q D Q LE OE LS 0X P. +V 0K D0 Q0 D Q D Q D Q D Q D Q D Q D Q LE OE LS 0X 圖 - 靜態中文字型顯示實習電路圖 -
流程圖 開始 計時器 0 函數 致能計時器 0 中斷設定工作模式 輸出掃描行第 位元組資料並閂鎖 計時器 0 初值設定每 000us 中斷 次 重設掃描信號 ScanLine=0 輸出掃描行第 位元組資料並閂鎖 輸出行掃描信號 重設列資料指標 i=0 掃描下一行 除能 閂鎖器 已掃描 行? 等待中斷 ( 動態掃描 ) 是 重設掃描信號 ScanLine=0 重設列資料指標 i=0 返回主程式 程式 :ch-.c #include "reg.h" /* 0 接腳定義 */ #define COLS /* 每個字 行 */ #define ROWS /* 每行個 位元組資料 */ char ScanLine=0; /* 掃描信號 */ char i=0; /* 列指標 */ char j; sbit P_=0x; /* 第 列致能信號 */ sbit P_=0x; /* 第 列致能信號 */ const unsigned char pattern[cols][rows]= /* 光 字型定義 */ { {0xdf,0xff},{0xdf,0xdf}, {0xdf,0xef},{0xdd,0xf}, -
chapter 矩陣型 LED 實習 {0xd,0xf},{0xf,0xfe}, {0xdf,0xff},{0xc0,0xff}, {0xdf,0xff},{0xf,0xe0}, {0xd,0xdf},{0xdb,0xdf}, {0xdd,0xdf},{0xcd,0xdf}, {0xdf,0xc},{0xff,0xff}}; main() { IE=0x; /* 致能計時器 0 中斷 */ TMOD=0x0; /* 計時器 0 工作於模式 */ TH0=(-000)/; /* 計時 000us */ TL0=(-000)%; TR0=; /* 啟動計時器 0 */ P_=0; /* 除能 */ P_=0; /* 除能 */ while() /* 等待計時器 0 中斷 */ ; } /* main */ void T0_int(void) interrupt /* 計時器 0 中斷 */ { TH0=(-000)/; /* 載入計時初值 */ TL0=(-000)%; j=0; /* 列指標指向第 0 列 */ P=pattern[i][j++]; /* 輸出第 0 列位元組資料 */ P_=; /* 致能 */ P_=0; P=pattern[i++][j]; /* 輸出第 列位元組資料 */ P_=; /* 致能 */ P_=0; P=ScanLine; /* 輸出掃描信號 */ ScanLine++; /* 掃描下一行 */ if(scanline==cols) /* 已至最後一行? */ { ScanLine=0; /* 重設掃描信號 */ i=0; /* 重設列指標 */ } } /* T0_int */ -
. 設計程式控制 矩陣 LED 顯示器閃爍顯示中文字元 光, 閃爍時間 秒. 設計程式控制 矩陣 LED 顯示器閃爍顯示中文字串 歡迎光臨 個字, 間隔 秒, 顯示情形如圖 - 所示 圖 -0 閃爍顯示 歡迎光臨 個中文字的顯示情形 -