Bài giảng Kỹ thuật vi điều khiển - Các thanh ghi chức năng đặc biệt
Tóm tắt Bài giảng Kỹ thuật vi điều khiển - Các thanh ghi chức năng đặc biệt: ...S0 - Các bit chọn dãy (bank) thanh ghi – Dùng để xác định dãy thanh ghi tích cực – Chúng được xóa khi reset MOV A,R7SETB RS0 SETB RS1 º SETB 0D4H Xung & Hoi 7 • OV (overflow flag) - Cờ tràn – Set bằng 1 sau phép toán cộng hoặc trừ nếu có xuất hiện 1 tràn số học. Khi các số có dấu được cộng...--- 67 01100111 C=0 AC=1 P=1 VD: MOV A,#88H ADD A,#93H 88 10001000 +93 +10010011 ---- -------------- 11B 00011011 C=1 AC=0 P=0 VD: MOV A,#9CH ADD A,#64H 9C 10011100 +64 +01100100 ---- -------------- 100 00000000 C=1 AC=1 P=0 VD: MOV A,#FFH ADD A,#1 A=00H; C=1; AC=1; Xung & Hoi...đầu tiên được thực thi Địa chỉ byte 81 Xung & Hoi 13 • Nếu không khởi động SP, nội dung mặc định là 07H (để duy trì sự tương thích với 8048) à thao tác cất vào stack đầu tiên sẽ lưu dữ liệu vào vị trí nhớ có địa chỉ 08H • Trong trường hợp này, nếu phần mềm ứng dụng không khởi động SP, dãy th...
Xung & Hoi 1 1. Giới thiệu 2. Sơ đồ khối và chân 3. Tổ chức bộ nhớ 4. Các thanh ghi chức năng đặc biệt (SFR) 5. Dao động và hoạt động reset 6. Tập lệnh 7. Các mode định địa chỉ 8. Lập trình IO 9. Tạo trễ 10.Lập trình Timer/Counter 11.Lập trình giao tiếp nối tiếp 12.Lập trình ngắt 13.Lập trình hợp ngữ Xung & Hoi 2 Xêm thêm Hình 2.6 trang 26 SFRs Xung & Hoi 3 CPU registers: - ACC : Accumulator. - B : B register. - PSW : Program Status Word. - SP : Stack Pointer. - DPTR : Data Pointer (DPH, DPL). Interrupt control: -IE : Interrupt Enable. -IP : Interrupt Priority. I/O Ports: - P0 : Port 0. - P1 : Port 1. - P2 : Port 2. - P3 : Port 3. Xung & Hoi 4 TImers: - TMOD : Timer mode. - TCON : Timer control. - TH0 : Timer 0 high byte. - TL0 : Timer 0 low byte. - TH1 : Timer 1 high byte. - TL1 : Timer 1 low byte. Serial I/O: - SCON : Serial port control. - SBUF : Serial data registers. Other: - PCON : Power control & misc. Xung & Hoi 5 4-1. Thanh ghi PSW • Thanh ghi PSW (bit addressable) C AC F0 RS1 OVRS0 P-- RS1 RS0 Register Bank Byte Address of R0-R7 0 0 0 00H-07H 0 1 1 08H-0FH 1 0 2 10H-17H 1 1 3 18H-1FH CPSW.7Cờ nhớ ACPSW.6Cờ nhớ phụ --PSW.5Available to user for general purpose RS1PSW.4Bit chọn dãy thanh ghi 1 RS0PSW.3Bit chọn dãy thanh ghi 0 OVPSW.2Cờ tràn --PSW.1Dự trữ - User define bit PPSW.0Cờ chẵn lẻ Địa chỉ bitD0D1D2D3D4D5D6D7 Xung & Hoi 6 • C (carry flag) - Cờ nhớ – Được set bằng 1 nếu có số nhớ từ phép cộng bit 7 hay có số mượn mang đến bit 7 • MOV A,#FFH • ADD A,#1 – Còn được dùng như 1 thanh ghi 1 bit đối với các lệnh logic thao tác trên các bit • ANL C,25H • AC (auxiliary carry) – Cờ nhớ phụ – Được set bằng 1 nếu có số nhớ từ bit 3 sang bit 4 • RS1, RS0 - Các bit chọn dãy (bank) thanh ghi – Dùng để xác định dãy thanh ghi tích cực – Chúng được xóa khi reset MOV A,R7SETB RS0 SETB RS1 º SETB 0D4H Xung & Hoi 7 • OV (overflow flag) - Cờ tràn – Set bằng 1 sau phép toán cộng hoặc trừ nếu có xuất hiện 1 tràn số học. Khi các số có dấu được cộng hoặc trừ, phần mềm có thể kiểm tra bit tràn OV để xác định KQ có nằm trong tầm hay không – Với các số có dấu, KQ nhỏ hơn -128 hoặc lớn hơn +127 sẽ set cờ OV = 1. Với các số không dấu, OV=1 khi KQ vượt quá 255 – VD: • 0F thập phân 15 • +7F +127 • ____ _____ • 8E 142 • 8EH biễu diễn -114 không đúng với KQ mong muốn là 142 nên OV = 1 Xung & Hoi 8 • P (parity) - Cờ chẵn lẻ – Kiểm tra chẵn lẻ cho thanh chứa A – Số các bit 1 trong thanh chứa A cộng với bit P luôn luôn chẵn • MOV A,#10101101B • àP=1 – Bit chẵn lẻ được sử dụng kết hợp với các chương trình xuất/nhập nối tiếp trước khi truyền dữ liệu hoặc để kiểm tra chẵn lẻ sau khi nhận dữ liệu VD4: MOV A,#FFH ADD A,#1 VD3: MOV A,#38H ADD A,#2FH VD2: MOV A,#9CH ADD A,#64H VD1: MOV A,#88H ADD A,#93H Xung & Hoi 9 VD: MOV A,#38H ADD A,#2FH 38 00111000 +2F +00101111 ---- -------------- 67 01100111 C=0 AC=1 P=1 VD: MOV A,#88H ADD A,#93H 88 10001000 +93 +10010011 ---- -------------- 11B 00011011 C=1 AC=0 P=0 VD: MOV A,#9CH ADD A,#64H 9C 10011100 +64 +01100100 ---- -------------- 100 00000000 C=1 AC=1 P=0 VD: MOV A,#FFH ADD A,#1 A=00H; C=1; AC=1; Xung & Hoi 10 Những lệnh ảnh hưởng đến các bit cờ X có thể là 1 hoặc 0 Xung & Hoi 11 • B được dùng với thanh chứa A trong các phép toán nhân, chia • MUL A,B ; nhân 2 số 8-bit không dấu chứa trong A & B, KQ 16-bit chứa vào cặp thanh ghi B:A (B chứa byte cao) • DIV AB ; chia A bởi B, thương số cất trong A, dư cất trong B • B còn được xử lý như thanh ghi nháp • B được định địa chỉ bit 4-2. Thanh ghi B F0F1F2F3F4F5F6F7 Xung & Hoi 12 4-3. Con trỏ ngăn xếp (SP) • SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack • Các lệnh liên quan đến stack bao gồm lệnh cất dữ liệu vào stack (làm tăng SP trước khi ghi dữ liệu) và lệnh lấy dữ liệu khỏi stack (giảm SP) • Muốn stack bắt đầu ở 60H: – MOV SP,#5FH – Thì vùng stack sẽ là 32 byte trên 8051 vì địa chỉ cao nhất của RAM nội là 7FH – 5FH được dùng vì SP tăng lên 60H trước khi thao tác cất vào stack đầu tiên được thực thi Địa chỉ byte 81 Xung & Hoi 13 • Nếu không khởi động SP, nội dung mặc định là 07H (để duy trì sự tương thích với 8048) à thao tác cất vào stack đầu tiên sẽ lưu dữ liệu vào vị trí nhớ có địa chỉ 08H • Trong trường hợp này, nếu phần mềm ứng dụng không khởi động SP, dãy thanh ghi 1 (và có lẽ 2, 3) sẽ không còn hợp lệ vì chúng được sử dụng làm stack • PUSH & POP cất dữ liệu vào stack và lấy dữ liệu từ stack • ACALL, LCALL, RET, RETI cất và phục hồi bộ đếm chương trình PC Xung & Hoi 14 VD: MOV R6,#25H MOV R1,#12H MOV R4,#0F3H PUSH 6 PUSH 1 PUSH 4 0BH 0AH 09H 08H Start SP=07H 25 0BH 0AH 09H 08H SP=08H F3 12 25 0BH 0AH 09H 08H SP=0AH 12 25 0BH 0AH 09H 08H SP=09H Xung & Hoi 15 4-4. Con trỏ dữ liệu (DPTR) • DPTR được dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài • VD: MOV A,#55H MOV DPTR,#1000H MOVX @DPTR,A DPH DPL 83H 82H Xung & Hoi 16 4-5. Các thanh ghi I/O port: P0, P1, P2, P3 • Tất cả port đều được định địa chỉ bit • VD: (điều khiển motor nối bit P1.0) SETB P1.0 CLR P1.0 • Đoạn chương trình kiểm tra trạng thái BUSY của thiết bị: WAIT: JB P1.5, WAIT Xung & Hoi 17 4-6. Các thanh ghi định thời • 8051 có 2 bộ đếm/định thời 16-bit để định các khoảng thời gian hoặc đếm các sự kiện • Hoạt động của bộ định thời được thiết lập bởi: – TMOD (Timer Mode Register) – TCON (Timer Control Register) Xung & Hoi 18 4-7. Các thanh ghi của port nối tiếp • 8051 có 1 port nối tiếp để truyền thông với các thiết bị nối tiếp • SBUF (Serial Data Buffer): lưu trữ dữ liệu truyền và nhận • SCON (Serial Port Control Register): chọn chế độ hoạt động Xung & Hoi 19 4-8. Các thanh ghi ngắt • IE (interrupt enable) • IP (interrupt priority)
File đính kèm:
- bai_giang_ky_thuat_vi_dieu_khien_cac_thanh_ghi_chuc_nang_dac.pdf