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.
DuyTan University Kỹ thuật Vi xử lý ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN CHƯƠNG 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 điều khiển vi xử lý có ba điểm khác 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 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University VI ĐIỀU KHIỂN 8051 Hiện có 40 công ty sản xuất loại vi điều khiển khác họ 8051 Một số cơng ty có 40 version 8051 Các CORE 8051 tổ hợp FPGA hay ASIC Trên 100 triệu vi điều khiển 8051 bán năm Họ 8051 gặt hái nhiều thành cơng trực tiếp ảnh hưởng đến cấu trúc họ vi điều khiển 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 phát triển Intel nhà sản xuất khác (như Siemens, Philips) nhà cung cấp đứng thứ hai họ Tóm tắt số đặc điểm họ 8051: • • • • • • • 4K bytes ROM 128 bytes RAM cổng I/O 8-bit định thời 16 bit Giao diện nối tiếp Quản lý 64K nhớ code bên Quản lý 64K nhớ liệu bên 5-4 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University SƠ ĐỒ KHỐI 8051 External interrupts Interrupt Control On-chip ROM for program code Timer/Counter On-chip RAM Timer Timer Counter Inputs CPU OSC Bus Control Serial Port I/O Ports TxD RxD P0 P1 P2 P3 Address/Data 5-5 Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RXD)P3.0 (TXD)P3.1 (INT0)P3.2 (INT1)P3.3 (T0)P3.4 (T1)P3.5 (WR)P3.6 (RD)P3.7 XTAL2 XTAL1 GND 10 11 12 13 14 15 16 17 18 19 20 8051 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0(AD0) P0.1(AD1) P0.2(AD2) P0.3(AD3) P0.4(AD4) P0.5(AD5) P0.6(AD6) P0.7(AD7) EA/VPP ALE/PROG PSEN P2.7(A15) P2.6(A14) P2.5(A13) P2.4(A12) P2.3(A11) P2.2(A10) P2.1(A9) P2.0(A8) 5-6 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): 9Cung cấp nguồn cho chip 9+5V GND (chân 20): đất XTAL1 & XTAL2 (chân 19, 18) 92 chân cung cấp xung clock 9Cách 1: dao động dùng thạch anh 9Cách 2: dao động từ nguồn xung clock TTL bên 9Quan hệ chu kỳ máy XTAL 5-7 Nguyen Van Tho – Duy Tan University CÁC CHÂN CỦA 8051 RST (chân 9): reset 9input & kích hoạt mức cao 9Để đảm bảo hoạt động reset xảy ra, xung kích khởi phải kéo dài chu kỳ máy 9Giá trị ghi chịu tác động hoạt động reset, xem bảng phần giảng 9Mạch reset có chống rung 5-8 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 9/EA nối mass định code lưu nhớ 9/PSEN & ALE dùng cho ROM ngồi 9Với 8051, 8031, 8032 /EA nối Vcc 9“/”: định tác động mức thấp ¾ /PSEN (chân 29): Program Store Enable 9Output, cho phép truy xuất nhớ chương trình ngồi 9Nối tới chân /OE ROM/EPROM 9Khi thực thi chương trình ROM nội, /PSEN giữ mức 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 để giải đa hợp (demultiplexing) bus liệu bus địa ¾ALE xuất tín hiệu để chốt địa (byte thấp địa 16-bit) vào ghi suốt nửa đầu chu kỳ nhớ (memory cycle) Trong nửa chu kỳ nhớ lại, P0 xuất/nhập liệu ¾ALE có f=1/6fclock ¾Có ngoại lệ: thời gian thực thi lệnh MOVX, xung ALE bị bỏ qua ¾ Cổng I/O: P0, P1, P2, & P3 Mỗi cổng: chân 5-10 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University CÁC CỔNG I/O ¾ cổng I/O Port (chân 32-39) Port (chân 1-8) Port (chân 21-28) Port (chân 10-17) :P0 (P0.0~P0.7) :P1 (P1.0~P1.7) :P2 (P2.0~P2.7) :P3 (P3.0~P3.7) Mỗi cổng có chân Đánh tên P0.X (X=0,1, ,7), P1.X, P2.X, P3.X Ex:P0.0 bit (LSB) P0 Ex:P0.7 bit (MSB) P0 bits cấu thành byte Mỗi cổng dùng input hay output 5-11 Nguyen Van Tho – Duy Tan University TỔ CHỨC BỘ NHỚ Bộ nhớ chương trình Bộ nhớ liệu FFFFh FFFFh External (ngồi) External Internal (trong) External (ngoài) EA=0 0000h PSEN EA=1 FFh Internal 00h Kiến trúc Harvard 0000h RD 5-12 WR DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University KHÔNG GIAN BỘ NHỚ RAM NỘI Byte address 7F 7E 7D 7C 7B 7A 79 78 … 7FH 2F 2E RAM đa mục 30H 2FH đích RAM định địa bit 20H 1FH 18H 17H 10H 0FH 08H 07H 00H Bank … Bank 1F 1E 1D 1C 1B 1A 19 18 Bank (Stack) 17 16 15 14 13 12 11 10 Default Register Bank for R0-R7 R7 R6 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 20 R5 R4 Bit address R3 R2 R1 R0 5-13 Nguyen Van Tho – Duy Tan University GHÉP NỐI VÀ TRUY XUẤT ROM NGOÀI 5-14 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 cho phép xác định nguồn đích liệu theo nhiều cách khác tùy tình lập trình ¾ Định địa tức thời : MOV A, #65H ; đưa giá trị 65h vào ghi A ặ A=65h ắ nh a ch ghi MOV R1, A ; đưa liệu ghi A vo ghi R1 ặ R1=A ắ nh a trực tiếp MOV R0, 40H ; lấy liệu địa 40h đưa vào ghi R0 ¾ Định địa gián tiếp MOV A, @R1 ; lấy liệu địa chứa ghi R1 đưa vào ghi A 5-16 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 RS1 RS0 OV P Cờ nhớ Cờ nhớ phụ Available to user for general purpose Bit chọn dãy ghi Bit chọn dãy ghi Cờ tràn Dự trữ - User define bit Cờ chẵn lẻ PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 RS0 1 Byte Address of R0-R7 00H-07H 08H-0FH 10H-17H 18H-1FH RS1 0 1 D7 F0 D6 D5 Register Bank D4 D3 D2 D1 D0 C AC -RS1 RS0 OV -P Địa bit 5-18 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University THANH GHI B B dùng với chứa A phép toán nhân, chia MUL A,B ; nhân số 8-bit không dấu chứa A & B, KQ 16-bit chứa vào cặp ghi B:A (B chứa byte cao) DIV AB ; chia A B, thương số cất A, dư cất B B xử lý ghi nháp B định địa 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 liệu đỉnh stack ¾ Muốn stack bắt đầu 60H: • MOV SP,#5FH • Thì vùng stack 32 byte 8051 địa cao RAM nội 7FH • 5FH dùng SP tăng lên 60H trước thao tác cất vào stack thực thi ¾ Nếu khơng khởi động SP, nội dung mặc định 07H Ỉ thao tác cất vào stack lưu liệu vào vị trí nhớ có địa 08H 5-20 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 khơng khai báo liệu ORG 00H ; Bắt đầu vùng nhớ chương trình ; mã lệnh chương trình END ; kết thúc chương trình Dạng chương trình khơng ngắt có khai báo liệu ORG 00H LJMP Main ORG 20h ; khai báo số ORG 30h ; khai báo ô nhớ đệm (biến) ORG 100h Main ; Bắt đầu vùng nhớ chương trình ; mã lệnh chương trình END ; kết thúc chương trình 5-32 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University KHN DẠNG CHƯƠNG TRÌNH Dạng chương trình sử dụng ngắt ORG 0H LJMP MAIN ORG 03H JMP EXINTER0 ORG 0BH JMP COUNTER0 ORG 13H JMP EXINTER1 ORG 1BH JMP COUNTER1 MAIN: ; nhảy tới Main EXINTER0 ; external interrupt ; chương trình phục vụ ngắt RETI ; timer interrupt EXINTER1 ; chương trình phục vụ ngắt ; external interrupt RETI COUNTER0 ;timer interrupt ; chương trình phục vụ đếm RETI COUNTER1 ; chương trình phục vụ đếm RETI END 5-33 Nguyen Van Tho – Duy Tan University LẬP TRÌNH I/O ¾ Xuất liệu cổng : Xuất liệu ghi cổng tương ứng Ví dụ : MOV P1,#54H ; xuất giá trị 54h cổng P1 ¾Lấy liệu từ cổng : Đọc ghi cổng tương ứng Ví dụ : MOV A, P2 ; lấy liệu từ cổng P2 lưu vào A Chú ý : Một chân Input phải đưa giá trị chân trước thao tác với 5-34 DuyTan University Kỹ thuật Vi xử lý Nguyen Van Tho – Duy Tan University LẬP TRÌNH I/O Ví dụ : Viết chương trình đọc liệu từ cổng P2 vào A, sau cộng vào A mười lần? GIẢI : AGAIN: ORG 00H MOV P2,#FFH MOV A, P2 MOV R2, #10 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ụ : Viết chương trình so sánh R0, R1: Nếu R0>R1: gửi port Else if R0R1 ;R0