intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật vi xử lý: Chương 2 - Nguyễn Văn Thọ

Chia sẻ: Zcsdf Zcsdf | Ngày: | Loại File: PDF | Số trang:30

99
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung của bài giảng Kỹ thuật vi xử lý Chương 2 Vi điều khiển MCS51 nhằm giới thiệu các vi bộ điều khiển và các bộ vi xử lý có ba điểm khác nhau chính sau: kiến trúc phần cứng, phạm vi ứng dụng, đặc điểm tập lệnh, các họ vi điều khiển phổ biến.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật vi xử lý: Chương 2 - Nguyễn Văn Thọ

  1. DuyTan University Kỹ thuật Vi xử lý ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN CHƯƠNG 2 VI ĐIỀU KHIỂN MCS51 Nguyễn Văn Thọ Khoa Điện tử viễn thông Đại học Duy Tân – 2010 Nguyen Van Tho – Duy Tan University GIỚI THIỆU Các vi bộ điều khiển và các bộ vi xử lý có ba điểm khác nhau chính sau: Kiến trúc phần cứng Phạm vi ứng dụng Đặc điểm tập lệnh Các họ vi điều khiển phổ biến Intel 8051 PIC16C5x Motorola MC68xxx AVR PSoC 5-2
  2. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University VI ĐIỀU KHIỂN 8051 Hiện nay có hơn 40 công ty sản xuất các loại vi điều khiển khác nhau của họ 8051. Một số công ty có trên 40 version 8051. Các CORE 8051 có thể được tổ hợp trong các FPGA hay ASIC. Trên 100 triệu vi điều khiển 8051 được bán ra mỗi năm. Họ 8051 gặt hái được rất nhiều thành công và nó cũng trực tiếp ảnh hưởng đến cấu trúc của các họ vi điều khiển hiện nay. 5-3 Nguyen Van Tho – Duy Tan University VI ĐIỀU KHIỂN 8051 8051 thuộc họ vi điều khiển MCS-51. MCS-51 được phát triển bởi Intel và các nhà sản xuất khác (như Siemens, Philips) là các nhà cung cấp đứng thứ hai của họ này. Tóm tắt một số đặc điểm chính của họ 8051: • 4K bytes ROM trong • 128 bytes RAM trong • 4 cổng I/O 8-bit • 2 bộ định thời 16 bit • Giao diện nối tiếp • Quản lý được 64K bộ nhớ code bên ngoài • Quản lý được 64K bộ nhớ dữ liệu bên ngoài 5-4
  3. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University SƠ ĐỒ KHỐI 8051 External interrupts On-chip Timer/Counter Interrupt ROM for On-chip Timer 1 Counter Control program RAM Timer 0 Inputs code CPU Bus Serial 4 I/O Ports OSC Control Port P0 P1 P2 P3 TxD RxD Address/Data 5-5 Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 P1.0 1 40 Vcc P1.1 2 39 P0.0(AD0) P1.2 3 38 P0.1(AD1) P1.3 P1.4 4 5 8051 37 36 P0.2(AD2) P0.3(AD3) P1.5 6 35 P0.4(AD4) P1.6 7 34 P0.5(AD5) P1.7 8 33 P0.6(AD6) RST 9 32 P0.7(AD7) (RXD)P3.0 10 31 EA/VPP (TXD)P3.1 11 30 ALE/PROG (INT0)P3.2 12 29 PSEN (INT1)P3.3 13 28 P2.7(A15) (T0)P3.4 14 27 P2.6(A14) (T1)P3.5 15 26 P2.5(A13) (WR)P3.6 16 25 P2.4(A12) (RD)P3.7 17 24 P2.3(A11) XTAL2 18 23 P2.2(A10) XTAL1 19 22 P2.1(A9) GND 20 21 P2.0(A8) 5-6
  4. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 Vcc (chân 40): Cung cấp nguồn cho chip +5V GND (chân 20): đất XTAL1 & XTAL2 (chân 19, 18) 2 chân cung cấp xung clock ngoài Cách 1: dao động dùng thạch anh Cách 2: dao động từ nguồn xung clock TTL bên ngoài Quan hệ giữa chu kỳ máy và XTAL 5-7 Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 RST (chân 9): reset input & kích hoạt mức cao Để đảm bảo hoạt động reset xảy ra, xung kích khởi phải kéo dài ít nhất là 2 chu kỳ máy Giá trị các thanh ghi chịu tác động bởi hoạt động reset, xem bảng trong phần 5 bài giảng Mạch reset có chống rung 5-8
  5. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 /EA (chân 31): External Access /EA nối mass chỉ định rằng code lưu trên bộ nhớ ngoài /PSEN & ALE dùng cho ROM ngoài Với 8051, 8031, 8032 thì /EA nối Vcc “/”: chỉ định tác động mức thấp /PSEN (chân 29): Program Store Enable Output, cho phép truy xuất bộ nhớ chương trình ngoài Nối tới chân /OE của ROM/EPROM Khi thực thi chương trình ở ROM nội, /PSEN được giữ ở mức 1 5-9 Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 ALE (pin 30):Address Latch Enable Là chân output cho phép chốt địa chỉ để giải đa hợp (de- multiplexing) bus dữ liệu và bus địa chỉ ALE xuất tín hiệu để chốt địa chỉ (byte thấp địa chỉ 16-bit) vào 1 thanh ghi ngoài trong suốt nửa đầu của chu kỳ bộ nhớ (memory cycle). Trong nửa chu kỳ bộ nhớ còn lại, P0 sẽ xuất/nhập dữ liệu ALE có f=1/6fclock Có 1 ngoại lệ: trong thời gian thực thi lệnh MOVX, một xung ALE bị bỏ qua Cổng I/O: P0, P1, P2, & P3. Mỗi cổng: 8 chân. 5-10
  6. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC CỔNG I/O 4 cổng I/O Port 0 (chân 32-39) :P0 (P0.0~P0.7) Port 1 (chân 1-8) :P1 (P1.0~P1.7) Port 2 (chân 21-28) :P2 (P2.0~P2.7) Port 3 (chân 10-17) :P3 (P3.0~P3.7) Mỗi cổng có 8 chân Đánh tên P0.X (X=0,1,...,7), P1.X, P2.X, P3.X Ex:P0.0 là bit 0 (LSB) của P0 Ex:P0.7 là bit 7 (MSB) của P0 8 bits này cấu thành 1 byte Mỗi cổng có thể được dùng như input hay output 5-11 Nguyen Van Tho – Duy Tan University TỔ CHỨC BỘ NHỚ Bộ nhớ chương trình Bộ nhớ dữ liệu FFFFh FFFFh External (ngoài) External FFh External Internal Internal (ngoài) (trong) EA=0 EA=1 0000h 00h 0000h Kiến trúc Harvard 5-12 PSEN RD WR
  7. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University KHÔNG GIAN BỘ NHỚ RAM NỘI 7F 7E 7D 7C 7B 7A 79 78 2F Byte address … 7FH 2E RAM đa mục đích 30H 2FH RAM định địa chỉ bit 20H 1FH 18H Bank 3 17H … 10H Bank 2 1F 1E 1D 1C 1B 1A 19 18 0FH 17 16 15 14 13 12 11 10 08H Bank 1 (Stack) 0F 0E 0D 0C 0B 0A 09 08 07H R7 Default Register R6 07 06 05 04 03 02 01 00 20 00H Bank for R0-R7 R5 R4 Bit address R3 R2 R1 5-13 R0 Nguyen Van Tho – Duy Tan University GHÉP NỐI VÀ TRUY XUẤT ROM NGOÀI 5-14
  8. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University GHÉP NỐI VÀ TRUY XUẤT RAM NGOÀI 5-15 Nguyen Van Tho – Duy Tan University CÁC CHẾ ĐỘ ĐỊA CHỈ Các kiểu định địa chỉ cho phép xác định nguồn và đích của dữ liệu theo nhiều cách khác nhau tùy tình huống lập trình Định địa chỉ tức thời : MOV A, #65H ; đưa giá trị 65h vào thanh ghi A A=65h Định địa chỉ thanh ghi MOV R1, A ; đưa dữ liệu trong thanh ghi A vào thanh ghi R1 R1=A Định địa chỉ trực tiếp MOV R0, 40H ; lấy dữ liệu tại địa chỉ 40h đưa vào thanh ghi R0 Định địa chỉ gián tiếp MOV A, @R1 ; lấy dữ liệu tại địa chỉ được chứa trong thanh ghi R1 đưa vào thanh ghi A 5-16
  9. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC THANH GHI 5-17 Nguyen Van Tho – Duy Tan University THANH GHI PSW Thanh ghi PSW (bit addressable) C AC F0 RS1 RS0 OV -- P Cờ nhớ PSW.7 C Cờ nhớ phụ PSW.6 AC Available to user for general purpose PSW.5 -- Bit chọn dãy thanh ghi 1 PSW.4 RS1 Bit chọn dãy thanh ghi 0 PSW.3 RS0 Cờ tràn PSW.2 OV Dự trữ - User define bit PSW.1 -- Cờ chẵn lẻ PSW.0 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 D7 D6 D5 D4 D3 D2 D1 D0 Địa chỉ bit 5-18
  10. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University THANH GHI B 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 F7 F6 F5 F4 F3 F2 F1 F0 5-19 Nguyen Van Tho – Duy Tan University CON TRỎ NGĂN XẾP SP SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack 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 Nếu không khởi động SP, nội dung mặc định là 07H 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 5-20
  11. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University 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 Phần cao và phần thấp của DPTR cũng có thể được dùng như 2 thanh ghi 8bit (DPH và DPL) VD: MOV A,#55H MOV DPTR,#1000H MOVX @DPTR,A 83H DPTR (High) 82H DPTR (Low) 5-21 Nguyen Van Tho – Duy Tan University THANH GHI CỔNG I/O 8051 có 4 thanh ghi cổng I/O : P0, P1, P2, P3 Tất cả port đều được định địa chỉ bit Để truy cập đến các bit ta dùng cú pháp sau : . Ví dụ để xóa bit 4 của cổng P0 CLR P0.4 5-22
  12. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC THANH GHI KHÁ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) THANH GHI 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 THANH GHI NGẮT IE (interrupt enable) IP (interrupt priority 5-23 Nguyen Van Tho – Duy Tan University TẬP LỆNH Lệnh chuyển dữ liệu MOV dest, source ; dest = source Ví dụ : MOV A, #72H ;A=72H MOV A, R4 ;A=62H MOV B, 7EH MOV P1, A ;mov A to port 1 Chú ý : MOV A,#72 ≠ MOV A,72 MOV DPTR, A MOV #30,A dest và source không được đồng thời là Rn MOV R1,R2 5-24
  13. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University TẬP LỆNH Truy cập bộ nhớ ROM ngoài MOVC A, @A + DPTR MOVC A, @A + PC Truy cập bộ nhớ RAM ngoài MOVX A, @Ri MOVX A, @DPTR MOVA @Ri, A MOVX @DPTR, A Tráo đổi dữ liệu XCH A, Rn XCH A, mem XCH A, @Ri Thao tác ngăn xếp PUSH mem POP mem 5-25 Nguyen Van Tho – Duy Tan University TẬP LỆNH Nhóm lệnh số học ADD A,Rn ADD A,mem ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,mem ADDC A,@Ri ADDC A,#data SUBB A,Rn SUBB A,mem SUBB A,@Ri SUBB A,#data INC A INC Rn INC mem INC @Ri INC DPTR DEC A DEC Rn DEC mem DEC @Ri MUL AB ; Lấy giá trị trong thanh ghi A nhân với giá trị trong thanh ghi B ; byte thấp của kết quả chứa trong A, byte cao chứa trong B DIV AB ; Lấy A chia B ; kết quả thương A ; số dư B 5-26
  14. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University TẬP LỆNH Nhóm lệnh logic ANL A,Rn ANL A,mem ANL A,@Ri ANL A,#data ANL mem,A ANL mem,#data ORL A,Rn ORL A,mem ORL A,@Ri ORL A,#data ORL mem,A ORL mem,#data XRL A,Rn XRL A,mem XRL A,@Ri XRL A,#data XRL mem,A XRL mem,#data CLR A CPL A RL A RLC A RR A RRC A 5-27 Nguyen Van Tho – Duy Tan University TẬP LỆNH Nhóm lệnh xử lý bit SETB bit ; bit=1 CLR bit ; bit=0 Vi dụ : SETB C ; CY=1 SETB P0.0 ;bit 0 của port 0 =1 SETB ACC.2 ;bit 2 của Accumulator =1 CLRB P3.7 ;bit 7 của port 3 = 0 ANL C,bit ; AND cờ C với bit ORL C, bit ; OR cờ C với bit 5-28
  15. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University TẬP LỆNH Lệnh nhảy không điều kiện SJMP rel ; AJMP Addr11 ; LJMP Addr16 ; Lệnh gọi chương trình con ACALL addr11 ; LCALL adde16 ; Lệnh trở về từ chương trình con RET Lệnh trở về từ ngắt RETI 5-29 Nguyen Van Tho – Duy Tan University TẬP LỆNH Lệnh nhảy có điều kiện JZ rel Jump if A=0 JNZ rel Jump if A≠0 DJNZ byte, rel Decrement & jump if A≠0 CJNE dest, source, rel Jump if dest ≠ source JC rel Jump if CY=1 JNC rel Jump if CY=0 JB bit, rel Jump if bit=1 JNB bit, rel Jump if bit=0 JBC bit, rel Jump if bit=1 & clear bit 5-30
  16. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University LẬP TRÌNH HỢP NGỮ CHO 8051 5-31 Nguyen Van Tho – Duy Tan University KHUÔN DẠNG CHƯƠNG TRÌNH Dạng chương trình không có ngắt và không khai báo dữ liệu ORG 00H ; Bắt đầu vùng nhớ chương trình ; các mã lệnh của chương trình END ; kết thúc chương trình Dạng chương trình không ngắt và có khai báo dữ liệu ORG 00H LJMP Main ORG 20h ; khai báo các hằng số ORG 30h ; khai báo các ô nhớ đệm (biến) ORG 100h Main ; Bắt đầu vùng nhớ chương trình ; các mã lệnh của chương trình END ; kết thúc chương trình 5-32
  17. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University KHUÔN DẠNG CHƯƠNG TRÌNH Dạng chương trình sử dụng ngắt ORG 0H MAIN: LJMP MAIN ; nhảy tới Main EXINTER0 ORG 03H ; external interrupt 0 ; chương trình phục vụ ngắt 0 JMP EXINTER0 RETI ORG 0BH ; timer 0 interrupt EXINTER1 JMP COUNTER0 ; chương trình phục vụ ngắt 1 ORG 13H ; external interrupt 0 RETI JMP EXINTER1 COUNTER0 ORG 1BH ;timer 1 interrupt ; chương trình phục vụ bộ đếm 0 JMP COUNTER1 RETI COUNTER1 ; chương trình phục vụ bộ đếm 1 RETI END 5-33 Nguyen Van Tho – Duy Tan University LẬP TRÌNH I/O Xuất dữ liệu ra cổng : Xuất dữ liệu ra thanh ghi cổng tương ứng Ví dụ : MOV P1,#54H ; xuất giá trị 54h ra cổng P1 Lấy dữ liệu từ cổng : Đọc thanh ghi cổng tương ứng Ví dụ : MOV A, P2 ; lấy dữ liệu từ cổng P2 lưu vào A Chú ý : Một chân là Input thì phải đưa giá trị 1 ra chân đó trước khi thao tác với nó. 5-34
  18. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University LẬP TRÌNH I/O Ví dụ 1 : Viết chương trình đọc dữ liệu từ cổng P2 vào A, sau đó cộng 3 vào A mười lần? GIẢI : ORG 00H MOV P2,#FFH MOV A, P2 MOV R2, #10 AGAIN: ADD A, #03 DJNZ R2, AGAIN ;repeat until R2=0 (10 lần) MOV R5, A END 5-35 Nguyen Van Tho – Duy Tan University LẬP TRÌNH I/O Ví dụ 2 : Viết 1 chương trình so sánh R0, R1: Nếu R0>R1: gửi 1 ra port 2 Else if R0R1 R0_NHO_HON: … ;R0
  19. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University TẠO TRỄ (DELAY) CHU KỲ MÁY : Chy kỳ máy (machine cycle) là đơn vị đo thời gian thực thi các lệnh Tần số dao động của thạch anh cho họ 8051 có thể từ 4MHz đến 30 MHz, tùy thuộc nhà sản xuất. Song thông thường, loại 11.0592 MHz được dùng nhằm làm cho các hệ thống dựa trên 8051 tương thích với cổng nối tiếp của IBM PC. 1 Chu kỳ dao động = 1/f = 0.0904 µs Với họ 8051, một chu kỳ máy kéo dài 12 chu kỳ dao động 1 chu kỳ máy = 12 x 0.0904 µs = 1.085µs 5-37 Nguyen Van Tho – Duy Tan University TẠO TRỄ (DELAY) Tìm thời gian trễ cho chương trình con say đây, (với tần số dao động thạch anh là 11.0592 MHz) DELAY: MOV R3,#250 ; 1 MC HERE: NOP ; 1 MC NOP ; 1 MC NOP ; 1 MC NOP ; 1 MC DJNZ R3,HERE ; 2 MC RET ; 1 MC Answer: [250x(1+1+1+1+2)+2]x1.085 us=1629.67 us 5-38
  20. DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University TẠO TRỄ (DELAY) Đoạn chương trình tạo trễ 500ms MOV R1, #250 D1: MOV R0, #250 DJNZ R0, $ MOV R0, #250 DJNZ R0, $ DJNZ R1, D1 MOV R1, #250 D2: MOV R0, #250 DJNZ R0, $ MOV R0, #250 DJNZ R0, $ DJNZ R1, D2 5-39 Nguyen Van Tho – Duy Tan University TẠO TRỄ (DELAY) Ví dụ : Giả sử có 1 hệ thống gồm 8 đèn led ghép nối với port 0 của 8051. Đèn led sáng khi xuất tín hiệu mức 0, tắt khi xuất tín hiệu mức 1. Hãy lập trình sáng lần lượt từng Led 1 trong thời gian 1 giây 5-40
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2