Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 195 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
195
Dung lượng
1,63 MB
Nội dung
Vi điều khiển 8051 Th.S Nguyễn Bá Hội Trường ĐHBK, ĐHĐN ngbahoi@yahoo.com Sách tham khảo • I Scott Mackenzie, Họ Vi điều khiển 8051, Dịch: Tống Văn On Hồng Đức Hải, 2001 • Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, 2000 • Ngơ Diên Tập, Đo lường điều khiển máy tính, 1998 • Đỗ Xuân Tiến, Kỹ thuật Vi xử lý lập trình Assembly cho hệ vi xử lý, 2003 Giới thiệu Sơ đồ khối chân Tổ chức nhớ Các ghi chức đặc biệt (SFR) Dao động hoạt động reset Tập lệnh Các mode định địa Lập trình IO Tạo trễ 10.Lập trình Timer/Counter 11.Giao tiếp nối tiếp 12.Lập trình ngắt 13.Lập trình hợp ngữ Nộ i du ng LED LED Hiển thị với LED đoạn Keypad Đo thời gian Tạo sóng vng Đồng hồ số Cảm biến quang Cảm biến quang & gửi tới PC 10 Cảm biến nhiệt & xuất LED đoạn 11 ADC 12 Âm 13 PWM La bs Vi xử lý • CPU cho máy tính • Khơng có RAM, ROM, I/O CPU chip • Vd: Intel’s x86, Motorola’s 680x0 Nhiều chips bo mạch chủ Data Bus CPU Vi xử lý RAM ROM I/O Port Timer Cổng nối tiếp Address Bus Hệ thống vi xử lý Vi điều khiển • Là máy tính mini • Có RAM, ROM, I/O ports CPU chip • Vd: Motorola’s 6811, Intel’s 8051, Zilog’s Z80, & PIC 16X CPU RAM ROM I/O Port Cổng Timer nối tiếp tất bên chip Vi điều khiển Vi xử lý & Vi điều khiển Vi xử lý Vi điều khiển CPU chip riêng biệt RAM, ROM, I/O, Timer bên CPU, RAM, ROM, I/O & Timer nằm chip Lượng ROM, RAM, I/O Ports tùy ý Cố định lượng ROM, RAM, I/O Ports chip Giá thành cao Thích hợp cho ứng dụng: Đa giá thấp Đa mục đích lượng tiêu thụ thấp khơng gian hạn chế Đơn mục đích Embedded System Bộ xử lý gắn (embedded) vào ứng dụng cụ thể Một sản phẩm embedded sử dụng VXL VĐK để thực thi công việc Chỉ có phần mềm ứng dụng & thông thường nộp ROM vd:printer, keyboard, video game player tiêu chí chọn vi điều khiển Đáp ứng yêu cầu nhiệm vụ giá thành thi công Tốc độ, lượng nhớ, cổng I/O, timers, kích cỡ, đóng gói, lượng tiêu thụ Dễ nâng cấp Giá thành Các công cụ phát triển phần mềm Assember, sửa lỗi, trình dịch C, mơ phỏng, hỗ trợ kỹ thuật Thị trường cung cấp sản phẩm tin cậy Giới thiệu Sơ đồ khối chân (block and pin diagrams) Tổ chức nhớ Các ghi chức đặc biệt (SFR) Dao động hoạt động reset Tập lệnh Các mode định địa Lập trình IO Tạo trễ 10.Lập trình Timer/Counter 11.Giao tiếp nối tiếp 12.Lập trình ngắt 13.Lập trình hợp ngữ 13-3 Đánh giá biểu thức thời gian dịch Cơ số: binary - B, octal - O or Q, decimal - D or nothing, hexa - H Chuỗi ký tự: ‘ ‘ Các toán tử số học: +, -, *, /, MOD Các toán tử logic: OR, AND, XOR, NOT Các toán tử đặc biệt: SHR, SHL, HIGH, LOW, ( ) Các toán tử quan hệ: EQ, NE, LT, LE, GT, GE Ưu tiên tốn tử 18 13-4 Các dẫn • Điều khiển trạng thái trình dịch hợp ngữ (ORG, END, USING) • Định nghĩa ký hiệu (SEGMENT, EQU, SET, DATA, IDATA, XDATA, BIT, CODE) • Khởi động/Dành trước vùng nhớ (DS, DBIT, DB, DW) • Liên kết chương trình (PUBLIC, EXTRN, NAME) • Lựa chọn segment (RSEG, CSEG, DSEG, ISEG, BSEG, XSEG) 19 13-4-1 Chỉ dẫn điều khiển trạng thái ORG (Set origin) ORG expression • Chỉ dẫn thay đổi nội dung đếm vị trí để thiết lập gốc chương trình cho phát biểu theo sau • ORG 100H ;Bộ đếm vị trí = 100H • ORG ($+1000H) END Phát biểu cuối chương trình nguồn USING expression thơng báo cho ASM51 dãy ghi tích cực hành, AR0-7 thay cho R0-7 • USING • PUSH AR7 ;dịch thành PUSH 1FH • USING • PUSH AR7 ;dịch thành PUSH 0FH 20 13-4-2 Chỉ dẫn định nghĩa ký hiệu Symbol SEGMENT segment_type Các loại segment (các không gian nhớ) cho 8051: • CODE (segment chương trình hay mã) • XDATA • DATA • IDATA • BIT VD: EPROM SEGMENT CODE Note: khai báo đơn giản khai báo EPROM Cịn để sử dụng, ta phải dùng RSEG 21 symbol EQU expression Gán giá trị số cho tên ký hiệu VD: N27 EQU 27 HERE EQU $ CR EQU 0DH ; xuống dòng MESSAGE DB ‘this is a message’ LENGTH EQU $ - MESSAGE 22 Chú ý: FLAG1 FLAG2 SETB SETB MOV MOV EQU 05H BIT 05H FLAG1 FLAG2 FLAG1,#0 FLAG2,#0 error ”data segment address expected” 23 13-4-3 Khởi động/dành trước vùng nhớ DS (define storage): khn dạng: [Label:] DS expression • Dành trước vùng nhớ tính byte, dẫn dùng cho loại segment nào, trừ BIT DSEG AT 30H ;đặt segment liệu LENGTH EQU 40 ; BUFFER DS LENGTH ;dành trước 40 bytes Xóa vùng đệm trên: MOV R7, #LENGTH MOV R0, #BUFFER LOOP: MOV @R0, #0 DJNZ R7, LOOP 24 • Tạo vùng đệm 1000 bytes nhớ ngồi địa bắt đầu 4000H; xóa vùng đệm vừa tạo 25 [Label:] DBIT expression • Dành trước vùng nhớ tính bit, dẫn dùng cho segment BIT KBFLAG: PRFLAG: DKFLAG: BSEG DBIT DBIT DBIT ;segment bit tuyệt đối ;trạng thái keyboard ;trạng thái printer ;trạng thái disk 26 DB (define byte) [Label:] DB expression [,expression] […] • khởi động vùng nhớ mã với giá trị byte, segment CODE phải tích cực SQUARES: MESSAGE: CSEG AT 0100H DB 0, 1, 4, 9, 16, 25 DB ‘Login:’,0 ; binh phuong ; chuoi ky tu kt boi Khi hợp dịch tạo KQ gán cho nhớ chương trình ngồi dạng HEX sau: ĐC 100 101 102 103 104 105 106 107 108 109 10A 10B 10C ND 00 01 04 09 10 19 4C 6F 67 69 6E 3A 00 27 13-4-4 Liên kết chương trình PUBLIC EXTRN NAME symbol [,symbol][…] segment_type (symbol [,symbol][…]…) module_name MAIN.SRC EXTRN CODE (HELLO, GOOD_BYTE) … CALL HELLO … CALL GOOD_BYTE … END MESSAGES.SRC PUBLIC HELLO, GOOD_BYTE … HELLO: (start subroutine) … RET GOOD_BYTE: (start subroutine) … RET 28 13-4-5 Lựa chọn segment RSEG (relocatable segment): CSEG [AT address] DSEG [AT address] ISEG [AT address] BSEG [AT address] XSEG [AT address] RSEG segment_name 29 13-5 Các điều khiển trình dịch • Các đk ảnh hưởng đến cách trình bày tập tin liệt kê, khơng ảnh hưởng đến thân chương trình • Vị trí chúng: – Đưa vào dịng lệnh hợp dịch – Đặt tập tin nguồn (đứng trước $) Vd: $DEBUG $TITLE() … 30 13-6 Trình liên kết RL51 Lập trình theo module - Modular Programming: • Phát triển module độc lập • Các module thuộc loại tái định vị obj EDITOR PROGRAM obj obj obj Myfile.asm ASSEMBLER PROGRAM Myfile.lst RL51 - Liên kết định vị Other obj file Myfile.obj LINKER PROGRAM Myfile.abs OH PROGRAM Myfile.hex myfile.abs & myfile.m51 31 Bài tốn Phân tích ví dụ tổng hợp trang 161 171 32 ... Z80, & PIC 16X CPU RAM ROM I/O Port Cổng Timer nối tiếp tất bên chip Vi điều khiển Vi xử lý & Vi điều khiển Vi xử lý Vi điều khiển CPU chip riêng biệt RAM, ROM, I/O, Timer bên CPU, RAM, ROM, I/O... PSW.1 PSW.0 RS0 1 Byte Address of R0-R7 00H-07H 08H-0FH 10H-17H 18H-1FH Register Bank D7 D6 D5 D4 D3 D2 D1 D0 C AC -RS1 RS0 OV -P Địa bit • C (carry flag) - Cờ nhớ – Được set có số nhớ từ phép... Mackenzie, Họ Vi điều khiển 8051, Dịch: Tống Văn On Hoàng Đức Hải, 2001 • Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, 2000 • Ngơ Diên Tập, Đo lường điều khiển máy tính, 1998 • Đỗ Xn Tiến, Kỹ thuật Vi xử