第五章 實作
5.3 組合語言程式
5.4 實作–VTEC微電腦家電控制
-53-
□ 單晶片可以使用 89C51 系列晶片及 LO51晶片( ISP型 8051 晶 片,線上即時規劃功能)
□ 使用LO51 晶片可以擴充簡易ICE 模擬器功能
□ 使用LO51 晶片免燒錄,免ICE 可由串列介面下載程式碼來執行
□ 電源指示 LED及工作指示燈
□ 4 個按鍵輸入及一組4X4 鍵盤輸入
□ 2組 5V 繼電器
□ 壓電喇叭或一般喇叭輸出
□ RS232 通訊介面
□ 斷電資料保存介面 93C46/24C16 IIC
□ 含文字型LCD 介面(16X2)
□ 紅外線接收模組介面
□ DALLAS 溫度介面 DS1821
□ 中文字型 LCD 介面
□ 語音介面使用 ISD 1420(錄音 20 秒),25120(錄音 120 動作秒)
□ 無線電遙控發射及接收模組
□ HT12D 解碼控制
-54-
□ 含洞洞孔可做額外的硬體擴充
連接座:
J1 2P MOLAX 腳座 +5V/GND 電源輸入
J2 2P MOLAX 腳座,壓電喇叭輸出,可外接小型喇叭 J3 2P MOLAX 腳座 語音喇叭輸出,外接小型喇叭 J4 2P MOLAX 腳座 麥克風輸入
J5 4P 電話插座輸入
J6 4P 電話插座輸入,與 J5 並聯 J7 8P 針座,連接 RF310
J8 2P MOLAX 腳座 磁磺開關輸入 J9 8P 母座,插入 4X4 按鍵組 J0 8P 排針,與 J9 並聯
J11 7x2 母座 插入 LCD 16X2 英文字型 LCD J12 8x2 母座 插入中文字型 LCD
J13 3P 9V DC 接頭,中間為 +9V J14 2P MOLAX 腳座,9V DC 接頭
-55-
J16 3P MOLAX 腳座,繼電器2 界面 NC COM NO 連接座,兼具電話迴 路控制功能
J17 3P MOLAX 腳座,8051 串列介面信號 RXD/TXD/GND J18 3P MOLAX 腳座,PC 串列介面信號 RXD/TXD/GND J19 PIN RS232 連接頭(D 9 PIN 公接頭 90 度)
跳線:
JP1 2 PIN 使用 ISD 25120 致能控制 JP2 2 PIN TXD、/IP2 致能控制
JP3 3 PIN RING/SWIP 由 P3.2 切換控制選擇 JP4 3 PIN TEN/RFEN 由 P3.3 切換控制選擇
JP5 3 PIN 語音 IC 錄音輸入選擇,TAN 為選擇答錄機功能
JP6 2 PIN 啟動繼電器 2 界面 NC COM NO 連接座,兼具電話迴路控 制功能
JP7 2 PIN /IP2 直接接地致能控制
JP8 3 PIN 93C46 8 BIT /16 BIT(接 VCC) 控制選擇 JP9 2 PIN 中文字型 LCD RS 信號由 P3.4 控制致能
-56-
效,必須設為 OFF JP11 同JP10
JP12 2 PIN DS1821 致能控制,ON 時有效 JP13 中文字型 LCD 背光控制致能
零件表:
積體電路 IC: IC 座 編號 規格
J11 LCD 16X2 文字型 LCD
U1 89C51 或 ISP LO51 晶片 40P IC 座 U2 ISD 1420 或 ISD 25120 28P IC 座 U3 LM386 8P IC 座
U4 93C46 ATMEL 8P IC U5 7805 加散熱片
U6 DS1821 DALLAS 3P 圓孔針座 U7 PC817 8P IC 座
U8 HT9170 18P IC 座
-57-
U10 74LS244 20P IC 座 U11 HT12D 18P IC 座 U12 ICL 232 16P IC 座
U13 紅外線接收模組 3P 圓孔針座 U14 24C16 8P IC 座
電阻 :
SIP1 10K 9 PIN排列電阻 標記'.'為 PIN1 對應電路板上標記為 'X'接點
碳膜電組 1/4 W
R1 1K R11 4.7K R21 10K R31 10K R2 1K R12 470K R22 100K R32 1K R3 1K R13 1K R23 300K R33 10K R4 10K R14 10K R24 470K R34 1K R5 10K R15 10K R25 100K R35 10K R6 10K R16 33K R26 10K
R7 1K R17 10K R27 10K -58-
R9 100 R19 10K R29 100 R10 10K R20 10K R30 10K
電容 : 電解電容有極性(長腳為正),陶瓷電容無極性 C1 20 pF 陶瓷電容
C2 20 pF 陶瓷電容 C3 10 uF 電解電容 C4 0.1 uF 陶瓷電容 C5 100 uF 電解電容 C6 100 uF 電解電容 C7 0.1 uF 陶瓷電容 C8 10 uF 電解電容 C9 100 uF 電解電容 C10 0.1uF 陶瓷電容 C11 0.1 uF 陶瓷電容 C12 0.1 uF 陶瓷電容 C13 0.1 uF 陶瓷電容
-59-
C15 10 uF 電解電容 C16 20 pF 陶瓷電容 C17 20 pF 陶瓷電容 C18 20 pF 陶瓷電容 C19 20 pF 陶瓷電容 C20 0.1 uF 陶瓷電容 C21 0.1 uF 陶瓷電容 C22 10 uF 電解電容 C23 100 uF 電解電容 C24 100 uF 電解電容 C25 10 uF 電解電容 C26 10 uF 電解電容 C27 10 uF 電解電容 C28 10 uF 電解電容
電晶體 : Q1--Q4 2SC945 X4 有極性 (底視圖 由左至右 ECB) 二極體 : D4 1N4001 有極性
-60-
D1 D2 D3 LED X3 有極性(長腳為正)
其他 :
X1 石英振盪晶體 11.0592 MHz X2 石英振盪晶體 3.58 MHz X3 石英振盪晶體 3.58 MHz RY1 RY2 5V 繼電器 X2
SW1 6 P 按鍵開關
K0--K5 TACO SW 按鍵開關 X6 BE 壓電喇叭
4X4 鍵盤
PT1 電話耦合變壓器 PT1 ST71
M51 控制板 I/O 分配如下:
<1> P0 設計: LCD 及語音晶片 1420 或是 25120 地址線控制文字 LCD 及 中文 LCD ,所以二者只能二選一,不能同時 使用
-61-
計來控制 HT12 信號輸入及控制電話按鍵信號解碼 P2.0--P2.3 控制4X4 鍵盤的掃描碼(任何時候只有一位元為低
電位)
P2.4--P2.7 為輸入 4X4 鍵盤的返回碼 P2.4: K1 輸入,按下時低電位
P2.5: K2 輸入,按下時低電位 P2.6: K3 輸入,按下時低電位 P2.7: K4 輸入,按下時低電位
P2 由 74LS244 緩衝器/隔離器切換來做 HT12 信號輸入,及電 話按鍵信號解碼用
P2.0--P2.3 控制 HT12 信號輸入 P2.4--P2.7 控制電話按鍵信號解碼
<3> P1 設計: 控制信號
P1.0: WLED 工作指示燈輸出,低電位 LED 亮
P1.0: 可由 JP12 控制來做 U6 DALLAS DS1821 溫度控制
P1.1: BEEP 喇叭或是壓電喇叭控制輸出,送出脈波會發出聲音 P1.2: REL 繼電器1 控制輸出,高電位導通
-62-
P1.4: VCE 語音晶片致能
P1.5: EOM 語音晶片播放完畢脈衝輸出
P1.6: A6/A8 語音晶片地址線 1420 A6、25120 A8 P1.7: A7/A9 語音晶片地址線 1420 A7、25120 A9
<4> P3 設計: 特殊 I/O 位元控制
P3.0: RXD 串列介面輸入, LO51 ISP 下載程式碼時控制 RS232 通訊介面
P3.1: TXD 串列介面輸出, LO51 ISP 下載程式碼時控制 RS232 通訊介面
P3.2: 電話振鈴 RING 輸入/磁磺開關 SWIP 輸入/ 紅外線接收 模組接收資料輸入
P3.3: TEL EN/HT12 VT 93C46 CS 控制輸出,低電位動作 P3.4: 93C46 CS /24C16 SDA 控制
P3.5: CE92 電話撥號致能控制 P3.6: LCD_EN LCD 致能控制 P3.7: REC 語音晶片錄音致能
-63-
U2 ISD 1420 或 ISD 25120 U3 LM386 聲頻放大器
U4 93C46 斷電資料保存晶片 U5 7805 5V 穩壓IC
U6 DS1821 DALLAS 1 WIRE 溫度感知晶片 U7 PC817 光隔離器
U8 HT9170 電話 DTMF 解碼晶片 U9 HT9200A 電話 DTMF 撥號晶片 U10 74LS244 緩衝隔離器
U11 HT12D 無線遙控解碼控制晶片 U12 ICL 232 RS232 通訊介面準位轉換 U13 38KHz 濾波紅外線接收模組 U14 24C16 IIC 介面控制晶片
由 RS232 下載程式碼
M51 單晶片可以使用 89C51 系列晶片及 LO51晶片,使用LO51晶片免 ICE,可由串列介面下載 64KB程式碼來執行,開發測試 8051 程式最
-64-
ISP 電路焊接
步驟 1: 焊接 SW1 6 P 按鍵開關
*關閉電源,焊接 SW1 6 P 按鍵開關,此開關有方向性,將開關 OFF,
可以看到缺口朝上,此開關是 LO51 ISP 功能下載控制用。ON (下壓) 是做載入用,OFF 是程式執行。
注意: 若插入方向錯誤則動作會相反。
步驟 2: 焊接 ISP 致能控制
*焊接 JP10 及 JP11 ,放入短路座,二者皆 ON 步驟 3: 焊接 RS232 通訊介面
*焊接 J19 9 PIN RS232 連接頭(D 9 PIN 公接頭 90 度)
*焊接 U12 ICL 232 16 PIN IC 座, C25 至 C28 4個 10 uF 電解質 電容器,注意極性
*裝上 ICL 232
ISP 操作方式
1. 準備 9 PIN RS232 連接線(D 9 PIN雙邊母接頭),連接 M51 板 -65-
2. 輸入 +9V 電源,連至 J13,中間為 +9V,外面為接地
3. PC 請開機在 DOS 下、或是 WIN 98 模式的 DOS 下、或是 XP DOS 下皆可
執行 PLO 1 *.TSK : RS232 連接線連至 COM 1 或是 PLO 2 *.TSK : RS232 連接線連至 COM 2 *.TSK 為所要下載的二進位執行檔 .TSK
4. 下載二進位檔:( 將 JP10 JP11 ON 啟動 LO51 ISP 功能) 8051 控制板上按鍵開關 SW1 ON (下壓) ,按下 8051 RESET 按
鍵,系統會先將 LO51內部程式清除為空白,再自動下載 *.TSK 二進位執行檔到 LO51 晶片內。
[注意] 核對碼 SUM 與 SUM1 二者應該一樣,則程式順利下載完成 5. 執行 8051 控制程式:
將按鍵開關 SW1 OFF ,按下 8051 RESET 按鍵即可。
6. 相關執行結果說明如下:(以下載 PLO.TSK 為例 ) PLO.EXE 64KB <--- 版本區分
PC RS232<-->LO51_PCB loader COM1 <9600 N 8 1> <----使用 COM1 連線
-66-
SUM0=1449H <--核對碼
Wait ...Please push SW to [LOAD] then RESET to load code < --下載操作方法
Then ...Please push SW to [RUN] then RESET to run code < --執行操作方法
LO51 PROGRAM 64K V1.0
BLANK CHECK... <--- 空白檢查 PROGRAM... < --- 燒錄程式碼
@ DOWNLOAD 46 BYTES TO LO51 CHIP... <--- 程式碼下載中 BYTE:46 < --- 已傳送位元組
TIME elapse : 0.2 second <--- 下載計時 SUM : 14H 49H VERIFY...<--- 接收核對碼 SUM1: 14H 49H RESET...<--- 燒錄核對碼
[注意] 核對碼 SUM 與 SUM1 二者應該一樣,則程式順利下載完成
-67-
89CXX 燒錄模擬器EPM89 說明
1. 系統特性 2. 系統配件 3. 檔案說明 4. 快速安裝說明 5. 注意事項 6. 快速燒錄模擬說明 7. 模擬40/20 PIN 8051 單晶片 8. 完整操作說明 1. 系統特性
□ 專門燒錄ATMEL 公司生產的89CXX 系列IC。
□ 可以燒錄89C51(4K)、89C52(8K)、89C55(20K)、89C1051(1K)、
89C2051(2K) 單晶片。
□ 燒錄後可以直接模擬40 PIN 或20 PIN 8051 單晶片。
□ 使用印表機並列埠連接,不需連接I/O 介面卡,可以用於筆記 型電腦。
□ 檔案格式為可執行的二進位檔。
□ 交談式的軟體控制程式,單鍵指令完成燒錄及模擬的動作。
□ 可以做一般印表機並列埠實驗,提供16 BIT 輸出,8 BIT 輸入,
並含有TURBO C 的控制範例程式。
□ 成品配件齊全: 含40 PIN 排線,20 PIN 排線,電源供給器,
-68-
□ 提供選擇性套件供使用者DIY 用。
2. 系統配件
□ 燒錄模擬器控制板一片
□ 印表機排線一條
□ +12V 直流電源供給器一個
□ 20 PIN、40 PIN 模擬排線各一條
□ AT89C51 一顆
□ 系統工作磁片
□ 使用說明書 3. 檔案說明
□ EPM89.EXE : 89C51、89C52、89C55 燒錄模擬程式 89C1051、89C2051 模擬程式
□ EP2051.EXE : 89C1051、89C2051 燒錄程式
□ IR.ROM : 8051 紅外線信號分析程式(配合紅外線介面實驗板 IR_PCB )
□ LED.TSK : 8051 P1 8 LED 走馬燈範例執行檔
□ LPD.PRJ : 印表機I/O 範例程式計劃檔 -69-
□ LPD.C : 印表機I/O 範例程式
□ LPIO.OBJ : 印表機I/O 驅動程式
□ EP89.DOC : 本文件檔 4. 快速安裝說明
a. 電腦關機。
b. 連接印表機排線至PC 印表機埠,另一端連至J8 腳座,紅線標 示為PIN 1。
c. 燒錄器接上+12V 直流電源供給器,則D1 電源指示燈亮起。
d. 打開電腦電源。
e. 安裝系統燒錄模擬程式。
f. 執行EPM89.EXE,則D2 工作指示燈閃動。
g. 系統會自動讀取測試檔IR.ROM 其核對碼為8CA6H (SUM0)。
h. 按控白鍵可以自動燒錄並讀回其內容,核對碼應仍為8CA6H (SUMS),表是燒錄成功。
5. 注意事項
a. 連至印表機的排線請勿自行加長,否則會有燒錄不穩定的現象 發生。
-70-
c. U0 及U2 的IC 座上不可同時放上IC。
d. 為了方便測試及燒錄,可以自行在U0 及U2 的IC 座上加上測試 座。
e. 20 PIN 及40 PIN 測試座在加入時,請自行在U0 及U2 的IC 座 上再套上另一IC 座。
f. 本燒錄模擬的動作是以89C51(4K)、89C52(8K)、89C55(20K) 晶 片來模擬8051 或是89C1051(1K)、89C2051(2K) 單晶片。
g. 放入欲燒錄的IC 時請注意PIN1 位置。
h. JP1 為+5V VCC 輸出開關ON 時,由燒錄器上送出+5V 至8051 目 標板上,當8051 目標板上負載大時,或是燒錄不穩定時,請將 其OFF,自行在8051 目標板上加上5V 電源。
6. 快速燒錄模擬說明
執行EPM89 ?,系統會告知線上的快速燒錄模擬說明:
┌──────────────────────-──--──┐
│EPM89 (89C51/C52/C55) |
│help : EPM89 ? │
│direct EMU : EPM89 test.rom d │ -71-
│Select 89c52 : EPM89 test.rom d 2 --> 8192 BYTES │
│Select 89c55 : EPM89 test.rom d 5 --> 20480 BYTES │
└─────────────────────────---─┘
□ EPM89 ? : 線上燒錄模擬說明。
□ EPM89 test.rom d : 快速載入檔案、燒錄、直接模擬89C51。
□ EPM89 test.rom d 1 : 快速載入檔案、燒錄、直接模擬89C51。
□ EPM89 test.rom d 2 : 快速載入檔案、燒錄、直接模擬89C52。
□ EPM89 test.rom d 5 : 快速載入檔案、燒錄、直接模擬89C55。
執行EP2051 ?,系統會告知線上的快速燒錄模擬說明。
┌───────────────────────────┐
│EP2051.EXE (89C1051/2051) │
│help : EP2051 ? │
│direct EMU : EP2051 test.rom d │
│Select 89c1051 : EP2051 test.rom d 1 --> 1024 BYTES │
│Select 89c2051 : EP2051 test.rom d 2 --> 2048 BYTES │
└───────────────────────────┘
□ EP2051 ? : 線上燒錄說明。
-72-
□ EP2051 test.rom d 1 : 快速載入檔案、燒錄89C1051。
□ EP2051 test.rom d 2 : 快速載入檔案、燒錄89C2051。
7. 模擬40/20 PIN 8051 單晶片
a. 連接20 PIN 或40 PIN 模擬排線至發展中的目標板上IC 座上,
20 PIN 連至J4 腳座,紅線標示為PIN 1。40 PIN 連至J3 腳座,
紅線標示為PIN 1。
b. 若8051 目標板的+5V 耗電不大,可以將JP1 短路,由燒錄器上 直接供應+5V 電源。
c. 若8051 目標板的+5V 耗電過大,請務必將JP1 OFF,以免影響 燒錄器正常工作。
d. EPM89 test.rom d : 快速載入檔案、燒錄、直接模擬89C51。
8. 完整操作說明
□ EPM89.EXE : 89C51、89C52、89C55 燒錄模擬程式 89C1051、89C2051 模擬程式
□ EP2051.EXE : 89C1051、89C2051 燒錄程式 執行EPM89.EXE,工作畫面出現:
-73-
│ EPM89 (89C51/C52/C55) │
│ quick EMU : EPM89 T.TSK D │
│ Printer port1 I/O =378H 379H 37AH │
│ Program voltage : 12V │
│ Chip NO : 89C51 SIZE : 4096 BYTES │
│ file name : t0.rom file size : 397 bytes │
│ file check sum : SUMS=0000H SUM0=8CA6H │
│ NO EMULATING ... │
│ t --> Type set g --> Read sign │
│ b --> Blank check e --> Erase Chip │
│ R --> Read CHIP all r --> Read CHIP x bytes to buffer │
│ p --> Program x bytes SPACE --> auto │
│ 1 2 3 --> lock bit h --> Help │
│ o --> Dir *.tsk d --> DUMP buffer data │
│ s --> Save code l --> Load code │
│ x --> Emulate/No Emulate ESC --> exit │
│ Select ? │ -74-
功能鍵說明如下:
□ esc : 結束程式執行。
□ t : 燒錄晶片編號選擇89C51/89C52/89C55。
□ g : 讀取IC 型態識別碼。
□ b : 晶片空白檢查。
□ e : 將晶片清洗為空白。
□ e : 將晶片清洗為空白。