Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1
2011/9/22 例說8051 2-1
yiher
輸出埠之應用
第二章
2011/9/22 例說8051 2-2
yiher
本章內容
• 硬體部分:8051的記憶體架構、輸出入埠、輸出電路的設計等。
• 指令部分:指令格式、定址模式,以及資料搬移指令等 。
• 程式與實作部分:單燈左移、霹靂燈,以及延遲副程式的計算 。
2011/9/22 例說8051 2-3
yiher
認識MCS-51的記憶體結構
64Kbytes256Bytes64Kbytes256Bytes64Kbytes128Bytes64Kbytes128Bytes資料記憶體
64Kbytes8 Kbytes64Kbytes064Kbytes4 Kbytes64Kbytes0程式記憶體
外部內部外部內部外部內部外部內部
8x5280328x518031
2011/9/22 例說8051 2-4
yiher
程式記憶體
• 若使用8031或8032,由於內部沒有程式記憶體,一定要使用外部程式記憶體,所以其接腳必須接地。
• 當EA接腳接高準位時,CPU將使用內部程式記憶體,若程式超過4K Bytes(8x51)或8K Bytes(8x52)時,則CPU會自動從外部程式記憶體裡,讀取超過部分的程式碼。
• 當EA接腳接地時,CPU將自外部程式記憶體讀取所要執行的指令碼,而CPU內部的程式記憶體形同虛設。
2011/9/22 例說8051 2-5
yiher
MCS-51之程式記憶體結構
2011/9/22 例說8051 2-6
yiher
資料記憶體
2
2011/9/22 例說8051 2-7
yiher
暫存器庫
0018H~001FHRB311
0010H~0017HRB201
0008H~000FHRB110
0000H~0007HRB000
位 址暫存器庫RS0RS1
2011/9/22 例說8051 2-8
yiher
內部資料記憶體
2011/9/22 例說8051 2-9
yiher
特殊功能暫存器
76543210
87PCONDPHDPLSPP080
8FTH1TH0TL1TL0TMODTCON88
97P190
9FSBUFSCON98
A7P2A0
AFIEA8
B7P3B0
BFIPB8
C7C0
CFTH2TL2RCAP2HRCAP2LT2CONC8
D7PSWD0
DFD8
E7ACCE0
EFE8
F7BF0
FFF8
FEDCBA98
2011/9/22 例說8051 2-10
yiher
程式狀態字組暫存器
POVRS0RS1F0ACCYPSW
01234567
2011/9/22 例說8051 2-11
yiher
8051的輸出入埠PORT 0
2011/9/22 例說8051 2-12
yiher
8051的輸出入埠PORT 1
3
2011/9/22 例說8051 2-13
yiher
8051的輸出入埠PORT 2
2011/9/22 例說8051 2-14
yiher
8051的輸出入埠PORT 3
2011/9/22 例說8051 2-15
yiher
8051的輸出入埠PORT 3
讀取外部記憶體控制接腳RDP3.7
寫入外部記憶體控制接腳WRP3.6
Timer 1輸入T1P3.5
Timer 0輸入T0P3.4
INT1中斷輸入INT1P3.3
INT0中斷輸入INT0P3.2
串列埠的傳送接腳TXDP3.1
串列埠的接收接腳RXDP3.0
說 明其它功能PORT 3
2011/9/22 例說8051 2-16
yiher
輸出電路設計
VD
ID
逆向飽和電流PIV
0 1.7V
10mA
驅動LED
LED特性曲線
2011/9/22 例說8051 2-17
yiher
輸出LED之連接
2011/9/22 例說8051 2-18
yiher
驅動繼電器
4
2011/9/22 例說8051 2-19
yiher
使用電晶體驅動繼電器
2011/9/22 例說8051 2-20
yiher
使用7405/7406驅動繼電器
2011/9/22 例說8051 2-21
yiher
驅動喇叭
2011/9/22 例說8051 2-22
yiher
指令格式
2011/9/22 例說8051 2-23
yiher
指令格式
2011/9/22 例說8051 2-24
yiher
定址模式
• 直接定址• 間接定址• 暫存器定址• 立即定址• 索引定址
ADD A, 40H
INC @R0
ANL A, R5
ORL A, #0FH
MOVC A, @A+PC
5
2011/9/22 例說8051 2-25
yiher
資料轉移指令
• 資料複製指令
2011/9/22 例說8051 2-26
yiher
資料轉移指令
• 查表法指令
2011/9/22 例說8051 2-27
yiher
資料轉移指令
• 外部資料存取指令
2011/9/22 例說8051 2-28
yiher
資料轉移指令
• 堆疊存取指令
PUSH direct
POP direct
2011/9/22 例說8051 2-29
yiher
資料轉移指令
• 資料互換指令
2011/9/22 例說8051 2-30
yiher
實例演練(2-7-1)
• 連接電路
6
2011/9/22 例說8051 2-31
yiher
實例演練(2-7-1)
• 單燈左移
2011/9/22 例說8051 2-32
yiher
實例演練(2-7-1)
• 設計要點
2011/9/22 例說8051 2-33
yiher
實例演練(2-7-1)
• 設計要點
2011/9/22 例說8051 2-34
yiher
實例演練(2-7-1)
• 設計要點
2011/9/22 例說8051 2-35
yiher
實例演練(2-7-1)
• 流程圖
2011/9/22 例說8051 2-36
yiher
Ch2-1.asmORG 0 ;程式從0位址開始
START: MOV A, #FEH ;讓ACC的內容為11111110LOOP: MOV P2, A ;從Port 2輸出ACC的內容
RL A ;將ACC的內容左移CALL DELAY ;呼叫延遲副程式JMP LOOP ;跳到LOOP處執行
;============================================DELAY: ;延遲副程式(0.1秒)
MOV R7, #200;R7暫存器載入200次數D1: MOV R6, #250;R6暫存器載入250次數
DJNZ R6, $ ;本列執行R6次DJNZ R7, D1 ;D1迴圈執行R7次RET ;返回主程式END ;結束程式
7
2011/9/22 例說8051 2-37
yiher
實例演練(2-7-2)
• 霹靂燈
2011/9/22 例說8051 2-38
yiher
實例演練(2-7-2)
• 流程圖
2011/9/22 例說8051 2-39
yiher
Ch2-2.asmORG 0 ;程式從0位址開始
;單燈左移=========================================START: MOV A, #FEH ;讓ACC的內容為11111110LOOP: MOV R0, #7 ;以R0為左移的計次計數器LOOPL: MOV P2, A ;從Port 2輸出ACC的內容
RL A ;將ACC的內容左移CALL DELAY ;呼叫延遲副程式DJNZ R0, LOOPL ;LOOPL迴圈執行R0次
;單燈右移=========================================MOV R0, #7 ;以R0為右移的計次計數器
LOOPR: MOV P2, A ;從Port 2輸出ACC的內容RR A ;將ACC的內容右移CALL DELAY ;呼叫延遲副程式DJNZ R0, LOOPR ;LOOPR迴圈執行R0次JMP LOOP ;從頭開始
2011/9/22 例說8051 2-40
yiher
Ch2-2.asm(續);延遲副程式==================================================DELAY: ;延遲副程式(0.1秒)
MOV R7, #200 ;R7暫存器載入200次數D1: MOV R6, #250 ;R6暫存器載入250次數
DJNZ R6, $ ;本列執行R6次DJNZ R7, D1 ;D1迴圈執行R7次RET ;返回主程式END ;結束程式
41412011/9/222011/9/22
輸出埠之應用輸出埠之應用
Bye Bye ByeBye……