7
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的記憶體結構 64Kbytes 256Bytes 64Kbytes 256Bytes 64Kbytes 128Bytes 64Kbytes 128Bytes 資料記憶體 64Kbytes 8 Kbytes 64Kbytes 0 64Kbytes 4 Kbytes 64Kbytes 0 程式記憶體 外部 內部 外部 內部 外部 內部 外部 內部 8x52 8032 8x51 8031 2011/9/22 例說8051 2-4 yiher 程式記憶體 若使用80318032,由於內部沒有程式記憶體, 一定要使用外部程式記憶體,所以其接腳必須接 地。 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 資料記憶體

yiher 本章內容 輸出埠之應用 - ntut.edu.tljkau/Course/101/1012/1012mpbs/Ch2-P... · 2014. 9. 24. · 1 2011/9/22 例說8051 2-1 yiher 輸出埠之應用 第二章 2011/9/22

  • 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……