Lập trình I/O port

Chia sẻ: Nguyễn Thị Giỏi | Ngày: | Loại File: PDF | Số trang:34

0
203
lượt xem
131
download

Lập trình I/O port

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Port 1 được ký hiệu P1 -Các chân: P1.0-P1.7Ta sửdụng P1 trong các vídụ sau đây đểchỉra hoạt động của chúng -P1 làcổng ra (ghi dữliệu CPU ra chân bên ngoài) -P1 làcổng vào (đọc dữliệu từchân vào CPU bus)

Chủ đề:
Lưu

Nội dung Text: Lập trình I/O port

  1. NỘI DUNG 1. Giới thiệu 7. Các mode định địa chỉ 2. Sơ đồ khối và chân 8. Lập trìình IO 8. Lập tr nh IO 3. Tổ chức bộ nhớ 9. Tạo trễ 4. Các thanh ghi chức năng đặc biệt 10. Lập trình Timer/Counter 5. Dao động và hoạt động reset 11. Giao tiếp nối tiếp 6. Tập lệnh 12. Lập trình ngắt 13. Lập trình hợp ngữ 1
  2. 8. Lập trình I/O Port I/O Port Programming
  3. 8-1. Port 1 Port 1 (chân 1-8) Port 1 được ký hiệu P1 Các chân: P1.0-P1.7 Ta sử dụng P1 trong các ví dụ sau đây để chỉ ra hoạt động của chúng P1 là cổng ra (ghi dữ liệu CPU ra chân bên ngoài) P1 là cổng vào (đọc dữ liệu từ chân vào CPU bus) 3
  4. Cấu trúc phần cứng của chân P1.x Read DFF Vcc TB2 Tải Bus nội D Q P1.x P1.x Write to DFF Clk Q M1 TB1 Read pin 8051 IC 4
  5. Mỗi chân của cổng I/O: a. Bus nội: giao tiếp với CPU b. Bộ chốt dữ liệu DFF: lưu trữ giá trị của chân. Khi “Write to DFF” = 1: ghi dữ liệu vào DFF c. Hai bộ đệm 3 trạng thái (tri-state buffers): - TB1: điều khiển bởi “Read pin”. Khi “Read pin” = 1: đọc giá trị tại chân ngoài - TB2: điều khiển bởi “Read DFF”. Khi “Read DFF” = 1: đọc giá trị từ DFF nội d. Transistor M1 5
  6. Bộ đệm 3 trạng thái (Tri-state Buffer) Output Input Trở kháng cao (hở mạch) Tri-state control (kích hoạt 0 mức cao) 0 0 1 1 1 1 6
  7. P1 là output (ghi ra cổng) Vd: MOV A,#55H BACK: MOV P1,A ACALL DELAY CPL A SJMP BACK 7
  8. Ghi “1” ra chân output P1.x Read DFF Vcc TB2 Tải 2. Chân ra là 1. ghi 1 Vcc 1 P1.x Bus nội D Q P1.x 0 output 1 Write to DFF Clk Q M1 TB1 Read pin 8051 IC 8
  9. Ghi “0” ra chân output P1.x Read DFF Vcc TB2 Tải 2. Chân ra nối đất 1. ghi 0 0 P1.x Bus nội D Q P1.X 1 output 0 Write to DFF Clk Q M1 TB1 Read pin 8051 IC 9
  10. Đọc từ chân input & bộ chốt Khi đọc chân, có hai khả năng sau: Đọc trạng thái của chân input (bên ngoài) MOV A,Px JNB P2.1,Label JB P2.1,Label Đọc dữ liệu bộ chốt của chân output (bên trong) ANL P1,A ORL P1,A INC P1 Đọc-Sửa đổi-Ghi 10
  11. Cổng 1 là input (đọc từ cổng) Để P1 là input, P1 phải được lập trình bằng cách ghi “1” vào tất cả các bit của P1 MOV A,#0FFH ;A=11111111B MOV P1,A ; P1 là input BACK: MOV A,P1 MOV P2,A SJMP BACK tương tự cho P0, P2, P3 11
  12. Đọc “1” tại chân input Read DFF 2. MOV A,P1 Vcc Chân ngoài=“1” TB2 1. ghi 1 MOV P1,#0FFH Tải 1 1 Bus nội D Q P1.x P1.x 0 M1 Write to DFF Clk Q 3. Read pin=1 Read DFF=0 Write to DFF=1 TB1 Read pin 8051 IC 12
  13. Đọc “0” tại chân input Read DFF Vcc 2. MOV A,P1 1. Ghi 1 TB2 Tải Chân ngoài=“0” MOV P1,#0FFH 1 0 P1.x Bus nội D Q P1.x Clk Q 0 M1 Write to DFF 3. Read pin=1 Read DFF=0 Write to DFF=1 TB1 Read pin 8051 IC 13
  14. Các lệnh đọc chân input Lệnh Ví dụ Mô tả MOV A,PX MOV A,P2 Đọc P2 vào A JNB PX.Y,.. JNB P2.1,TARGET Nhảy nếu P2.1 = 0 JB PX.Y,.. JB P1.3,TARGET Nhảy nếu P1.3 = 1 Copy trạng thái chân P2.4 MOV C,PX.Y MOV C,P2.4 vào CY 14
  15. Đọc bộ chốt MOV P1,#55H; P1=01010101 ORL P1,#0F0H; P1=11110101 “Read DFF” kích hoạt TB2 và chuyển dữ liệu từ Q của DFF vào CPU đọc được P1.7 = 0 CPU thực hiện OR dữ liệu này với bit 1 được 1 D của DFF bị thay đổi thành 1 Ghi KQ ra chân P1.7 = 1 15
  16. 1. Đọc bộ chốt Read pin = 0 Read DFF = 1 Write to DFF = 0 (ban đầu P1.7=0) Read DFF Vcc TB2 Tải 2. CPU tính (P1.7 OR 1 ) 4. P1.7 = 1 0 1 0 1 Bus nội D Q P1.7 1 P1.7 0 Write to DFF Clk Q M1 3. Ghi KQ vào DFF Read pin=0 Read DFF=0 Write to DFF=1 TB1 Read pin 8051 IC 16
  17. Đọc-Sửa đổi-Ghi Đặc điểm này bao gồm 3 hành động trong 1 lệnh đơn: 1. CPU đọc bộ chốt 2. CPU thực hiện tính toán sửa đổi bộ chốt 3. Ghi ra chân Chú ý: 8 chân của P1 làm việc độc lập nhau 17
  18. Các lệnh có đặc điểm Đọc-Sửa đổi-Ghi Lệnh Ví dụ ANL ANL P1,A ORL ORL P1,A XRL XRL P1,A JBC PX.Y, TARGET JBC P1.1, TARGET CPL CPL P1.2 INC INC P1 DEC DEC P1 DJNZ PX, TARGET DJNZ P1,TARGET MOV PX.Y,C MOV P1.2,C CLR PX.Y CLR P1.3 SETB PX.Y SETB P1.4 18
  19. Tóm lại • 1 chân là output thì có thể ghi dữ liệu trực tiếp ra chân đó • 1 chân là output thì đọc trạng thái của nó nghĩa là đọc bộ chốt • 1 chân là input thì phải set chân đó lên “1” trước khi thao tác với nó • 1 chân là input thì đọc trạng thái trực tiếp từ chân 19
  20. ? Lập trình I/O Cách ghi dữ liệu ra chân? Cách đọc dữ liệu từ chân? Đọc giá trị từ chân bên ngoài •Tại sao phải set chân trước khi tiến hành đọc? Đọc giá trị từ bộ chốt •Lệnh như thế nào gọi là có tính chất Đọc-Sửa đổi-Ghi? 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản