Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy Bai giang Vi điều khiển 8051 thầy Nguyễn Danh Huy
CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ BÀI 1: Giới thiệu CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Máy tính số, vi xử lý, vi điều khiển • Máy tính số điển hình loại thiết bị xử lý liệu, tín hiệu số có ba phận chính: – Bộ xử lý trung tâm (Central Processing Unit - CPU) – Bộ nhớ (memory) gồm: • Bộ nhớ chương trình (program memory - PM) • Bộ nhớ liệu (data memory - DM) – Bộ nhớ máy tính: • Bộ nhớ sơ cấp (primary memory – ROM, RAM) • Bộ nhớ thứ cấp(secondary memory – FDD, HDD, CD …) – Hệ thống vào/ (Input/Output - I/O) – Sự giao tiếp phận thực hệ thống đường dẫn gọi bus CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu CPU • Là thành phần quan trọng – trung tâm hệ thống • Chịu trách nhiệm điều khiển tồn luồng thơng tin phận máy tính, xử lý liệu cách thực phép toán số (digital) CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Các kiểu CPU máy tính • Single board CPU - gồm modul xây dựng mạch đơn – Máy tính xây dựng Single board CPU gọi máy tính nhỏ: minicomputer • One chip CPU - xây dựng (tích hợp) chíp đơn gọi vi xử lý : microprocessor – Máy tính xây dựng với vi xử lý gọi máy vi tính: micro computer – máy tính cực nhỏ – Tuỳ theo ứng dụng, máy vi tính tích hợp thiết bị vào/ra nhớ, ví dụ máy tính cá nhân (PC) có thiết bị vào/ra điển hình bàn phím/chuột hình/máy in CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Các kiểu CPU máy tính (tiếp) • Hệ thống gồm CPU + memory + I/O tích hợp chíp đơn gọi vi điều khiển : microcontroller • Microcontroller - One-chip computer: – Có khả ghép nối trực tiếp với phần cứng thực điều khiển chức ứng dụng – Khơng cần cần thiết bị hỗ trợ - ứng dụng nhúng – embedded – Khả xử lý số mạnh – Khả lập trình điều khiển mạnh – Khả thực ứng dụng mức độ cao điều khiển ôtô, thiết bị số… CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Đặc điểm ứng dung với microcontroller • Các hệ thống “nhúng” thường đòi hỏi khả thực real–time (thời gian thực) multi-task (đa nhiệm): • Thực real-time tức điều khiển phải có khả nhận, xử lý đưa thông tin nhanh hệ thống cần hay nói cách khác khơng tạo thành nút cổ chai thơng tin hệ thống • Đa nhiệm khả thực nhiều công việc lúc CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Q trình phát triển (tiếp) • 1854: George Boolse phát minh đại số lôgic tức thực quy luật lơgic tốn học, sở máy tính số • 1890: Phát minh máy tính khí chạy điện • 1906: Phát minh bóng chân khơng hay đèn chân khơng ba cực – Các phép tốn thực điện tử khơng phải khí – Thời gian thực phép toán giảm từ giây xuống miligiây • 1938: Máy tính số điện tử CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Q trình phát triển (tiếp) • 1946: Máy tính số cỡ lớn xuất hiện: Với tên gọi ENIAC Electronic Numerical Intergration and Calculation quân đội Mỹ sử dụng • Kích thước: 30 tấn, 18000 bóng chân khơng • Cơng suất tiêu hao:130kW • Tốc độ: nhân số hết ms • 1947: Transistor bán dẫn phát minh • 1954: Phát triển máy tính dùng Transistor • 1957: Xuất ngơn ngữ cấp cao FORTRAN, COBOL,… CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Quá trình phát triển (tiếp) • 1959: Mạch tích hợp (IC- Integrated Circuit) phát minh: mạch tổ hợp từ nhiều Tranzitor mảnh silicon có kích thước nhỏ • 1964: Máy tính từ mạch tích hợp IBM phát triển • 1970: Phát triển mạch tích hợp cỡ lớn (LSI – Large scale - IC) – SSI: mật độ vài trăm transistor chip silicon – MSI: mật độ vài ngàn transistor chip silicon – LSI: mật độ vài chục ngàn transistor chip silicon • 1971: Bắt đầu thời kỳ vi xử lý: – Bộ vi xử lý 4004 Intel chế tạo Đây loại vi xử lý bit với công nghệ LSI CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu Lịch sử phát triển vi xử lý (Intel) 4004 1971 First microprocessor 4040 1972 Enhanced version of the Intel 4004 processor 8008 1972 First 8-bit microprocessor 8080 1974 Successor to Intel 8008 CPU 8085 1976 Enhanced version of Intel 8080 CPU 8086 1978 16 First generation of Intel 80x86 processors 8088 1979 8/16 bit (external) version of Intel 8086 CPU 80186 1982 16 Next generation of 80x86 processors Used mostly as embedded processor 80188 1982 8/16 Next generation of 80x86 processors Used mostly as embedded processor 80286 1982 16 CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Second generation of 80x86 processors: new instructions, protected mode, support for 16MB of memory Bài 1: Giới thiệu 10 Lịch sử phát triển vi xử lý (Intel) 80376 1989 32 Embedded 32-bit microprocessor based on Intel 80386 80386 1985 32 Third generation of 80x86 processors: 32 bit architecture, new processor modes 80486 1989 32 Fourth generation of 80x86 processors: integrated FPU, internal clock multiplier 80486 overdrive 19?? 32 Overdrive/Upgrade processors for Intel 80486 family Pentium 1993 32 Fifth generation of x86 processors: superscalar architecture, MMX Pentium II 1997 32 Sixth generation of x86 processors Celeron 1998 32 Low-cost version of Pentium II, Pentium III and Pentium processors 32 Low-cost microprocessor with integrated peripherals (never released) Timna CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 11 Lịch sử phát triển vi xử lý (Intel) Pentium III 1999 32 Pentium 2000 32, 64 Pentium M 2003 32 Pentium microprocessor specifically designed for mobile applications Celeron D 2004 32, 64 Low-cost version Pentium desktop processors Celeron M 2004 32 Low-cost microprocessor specifically designed for mobile applications Pentium D 2005 64 Dual-core CPUs based on Pentium architecture Pentium Extreme Edition 2005 64 Dual-core CPUs based on Pentium architecture Xeon 200? 32, 64 80860 1989 32 Embedded 32-bit microprocessor with integrated 3D graphics 80960 1988? 32 Embedded 32-bit microprocessor CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Enhanced and faster version of Pentium II New generation of Pentium processors High-performance version of Pentium CPU Bài 1: Giới thiệu 12 Lịch sử phát triển vi xử lý (Intel) Itanium 2001 64 High-performance 64-bit microprocessor Core Solo 2006 32 32-bit single-core microprocessor Core Duo 2006 32 32-bit dual-core microprocessor Core 2006 64 64-bit microprocessor Pentium Dual-Core 2007 64 64-bit low-cost microprocessor Celeron Dual-Core 2008 64 64-bit low-cost microprocessor Atom 2008 32, 64 Ultra-low power microprocessor Core i7 2008 32, 64 64-bit microprocessor Core i5 2009 32, 64 64-bit microprocessor CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 13 Một số vi xử lý Intel điển hình Intel 4004 microprocessor family • • • • • • • 4-bit microprocessor 740 KHz KB program memory 640 bytes data memory 3-level deep stack No interrupts 16-pin DIP CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 14 Một số vi xử lý Intel điển hình Intel 8085 microprocessor family • • • • • • • • 8-bit microprocessor Up to MHz 64 KB RAM Single voltage On-chip peripherals 256 I/O ports 8080 object-code compatible 40-pin DIP 44-pin PLCC CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 15 Một số vi xử lý Intel điển hình Intel 8085 microprocessor family AMD AM8085A-2DC / C8085A-2 • MHz • 40-pin ceramic DIP • Purple ceramic/gold top/gold pins CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 16 Một số vi xử lý Intel điển hình Intel 8085 microprocessor family NEC8085 die CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 1: Giới thiệu 17 jhkhgjkgjhkh CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ BÀI 2: Cơ sở toán học CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 2: Cơ sở toán học Các hệ thống số - Numeric systems Hệ số 10 • Hệ số 10 – Hệ thập phân - Deximal – Cơ số: 10 – Chữ số bản: 0,1,…9 – Hệ đếm số 10 hệ đếm thường dùng tính toán hiển thị kỹ thuật – Để phân biệt với hệ khác viết thường kèm theo theo ký hiệu D • Ví dụ: 2004D – Các trọng số hệ 10: …1000; 100; 10; 1; 0,1; 0,01; 0,001; 0,0001;… CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 2: Cơ sở toán học jhkhgjkgjhkh Sơ đồ cấu trúc chip điều khiển CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD Nguyên lý điều khiển • HD44780U có ghi bit: – Thanh ghi lệnh - instruction register (IR) – Thanh ghi liệu - data register (DR) • IR chứa mã lệnh (điều khiển): – – – – Xóa hiển thị: Dịch trỏ Địa DDR - display data RAM Địa CGRAM – character generator RAM (CGRAM) • IR ghi từ MPU CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 10 jhkhgjkgjhkh Nguyên lý điều khiển • DR chứa liệu tạm thời đọc/ghi với DDRAM CGRAM • Sau ghi địa vào IR, liệu ghi vào DR từ MPU tự động ghi vào DDRAM CGRAM • Khi đọc DDRAM CGRAM tương tự • Sau lần đọc, dự liệu địa DDRAM hay CGRAM tự động chuyển vào DR để swanx sạng cho MPU đọc tiếp • Việc lựa chọn giao tiếp với IR hay DR thực tín hiệu RS - register selector (RS) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 11 Nguyên lý điều khiển • Busy Flag (BF) – cờ báo bận – Khi LCD thực thao tác bên trong, BF = – Lệnh không nhận – Chỉ ghi lệnh BF = • Address Counter (AC) – Thanh ghi địa – – – – Xác định địa DDRAM CGRAM Địa MPU ghi vào IR tự động chuyển vào AC Địa DDRAM hay CGRAM xác định mã lệnh Sau thao tác đọc ghi DDRAM hay CGRAM, AC tự động tăng giảm CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 12 jhkhgjkgjhkh Cấu trúc điều khiển (tiếp) • Display Data RAM (DDRAM): – Display data RAM (DDRAM) chứa liệu hiển thị thể dạng mã ký tự 8-bit – Có dung lượng tới 80 x bits, tức chứa tới 80 ký tự – Địa DDRAM đặt ghi địa - address counter (AC) số hexadecimal • Character Generator ROM (CGROM): – CGROM tạo mẫu tự 5x8 dot 5x10 dot từ mã ký tự 8-bit ASCCI – Có thể tạo 208 ký tự 5x8 dot 32 ký tự 5x10 dot • Character Generator RAM (CGRAM): – Trong CGRAM, người dùng tự tạo lưu trữ ký tự riêng – CGRAM lưu ký tự 5x8 ký tự 5x10 CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 13 DDRAM (display data RAM) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 14 jhkhgjkgjhkh Bảng ký tự ASCII CGROM CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 15 Bảng ký tự ASCII CGROM (tiếp) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 16 jhkhgjkgjhkh Bảng lệnh CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 17 Bảng lệnh (tiếp) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 18 jhkhgjkgjhkh Bảng lệnh (tiếp) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 19 Các mã lệnh thường dùng CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 20 10 jhkhgjkgjhkh Nguyên tắc điều khiển LCD • Đường EN: nhịp điều khiển – Khởi động đặt mức – Sau kết thúc việc gửi liệu trở mức • Đường RS: chọn ghi – Khi RS mức 0, gửi lệnh đặc biệt, ví dụ xóa hình, trả trỏ đầu dòng – Khi RS mức 1, gửi liệu cần hiển thị gửi vào bus liệu • Đường R/W: Lệnh điều khiển đọc ghi – Khi R mức cao đọc từ LCD – Khi R mức thấp ghi vào LCD • Nguyên tắc chung: nên viết sẵn chương trình (funtion) để đọc/ghi IR DR CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 21 Biểu đồ thời gian hoạt động CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 22 11 jhkhgjkgjhkh Biểu đồ thời gian ghi LCD CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 23 Biểu đồ thời gian đọc LCD CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 24 12 jhkhgjkgjhkh Đặc tính thời gian CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 25 Các bước điều khiển LCD • Thiết lập chế độ: – Chọn chức năng: • Ghép nối bit hay bit • Kiểu ký tự 5x7 hay 5x10 • Loại dòng hay dòng – Đặt điều khiển ON/OFF: • Bật hiển thị • Bật tắt trỏ chức nhấp nháy trỏ – Đặt chế độ: • Tăng địa DDRAM (viết từ trái sang) hay giảm (viết từ phải sang) • Dịch hiển thị (con trỏ cố định, ký tự dịch) khơng dịch hiển thị – Đặt kiểu dịch: • Dịch trỏ dịch hiển thị • Dịch trái phải (chữ chạy) CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 26 13 jhkhgjkgjhkh Các bước điều khiển LCD • • • • • • Xóa LCD: hệ thống bắt đầu hoạt động (nếu cần) Gửi lệnh Gửi liệu Đọc BF (hoặc trễ) Lặp lại tiếp tục ghi nội dung khác LCD … CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 27 Nguyên tắc chung điều khiển LCD • • • • • • Xóa LCD: hệ thống bắt đầu hoạt động (nếu cần) Gửi lệnh Gửi liệu Đọc BF (hoặc trễ) Lặp lại tiếp tục ghi nội dung khác LCD … CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 28 14 jhkhgjkgjhkh Ví dụ điều khiển LCD dòng 16 ký tự với 8051 CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 29 Gửi lệnh tới LCD (ghi IR) write_IR: CLR CLR SETB MOV CLR RET CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ RS RW EN DATA,A EN ; chon ghi IR ; chon thao tac ghi ; dat EN = high ; ghi du lieu can thiet ; bus du lieu ; xoa EN = low Bài 4: Điều khiển LCD 30 15 jhkhgjkgjhkh Gửi liệu tới LCD (ghi DR) write_DR: SETB CLR SETB MOV CLR RET RS RW EN DATA,A EN CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ ; chon ghi DR ; chon thao tac ghi ; dat EN = high ; ghi du lieu can thiet ; bus du lieu ; xoa EN = low Bài 4: Điều khiển LCD 31 Đọc trạng thái LCD (đọc IR) read_IR: CLR SETB SETB MOV MOV CLR RET CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ RS RW EN DATA,#0ffh A,DATA EN ; chon ghi IR ; chon thao tac doc ; dat EN = high ; dat data bus la cong vao ; nhan du lieu tu bus du lieu ; xoa EN = low Bài 4: Điều khiển LCD 32 16 jhkhgjkgjhkh Đọc BF (đọc IR) read_BF: ACALL JB read_IR acc.7,read_BF RET CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ ; goi CTC doc IR ; neu BF = tiep tuc ;doc BF ; trở Bài 4: Điều khiển LCD 33 Ví dụ gửi chuỗi ký tự tới LCD write_text: CLR MOVC doan text) MOV rewrite: CLR INC MOVC ACALL ACALL DJNZ RET CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ A A,@A+DPTR ; xoa A = ; lay so n tu bo nho (n la so ky tu cua R3,A ; chuyen n sang R3 A DPTR A,@A+DPTR write_DR read_BF R3,rewrite ; lay ma ASCII cua ky tu ; goi CTC ghi ky tu manhinh ; xu ly co BF ; neu chua viet het so ky tu cua doan ; text thi quay lai viet tiep ; trở kết thúc Bài 4: Điều khiển LCD 34 17 jhkhgjkgjhkh Ví dụ ghép nối LCD theo địa nhớ CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 35 LCD chế độ bit • Lý chọn bit: để tiết kiệm số chân VXL CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 36 18 jhkhgjkgjhkh Phương pháp khởi tạo chế độ bit • • • • • • • • • Trễ 20mS Gửi lệnh (0x30) Trễ 10mS Gửi lệnh (0x30) Trễ 1mS Gửi lệnh (0x30) Trễ 1mS Chọn mode (0x30 - for 8-bit and 0x20 for 4-bit) Trễ 1mS CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 37 Cờ busy chế độ bit • Trong chế độ 4bit người ta khơng đọc cờ chờ phải đọc lần bit (4bit cao bit thấp) • Thay đó, có th tr thi gian ch t 300 ti 600àS Tùy thuộc vào loại LCD, thời gian chờ khác nhau, 400µS hợp lý CHƯƠNG 6: ĐIỀU KHIỂN CÁC THIẾT BỊ Bài 4: Điều khiển LCD 38 19 ... cứng thực điều khiển chức ứng dụng – Không cần cần thiết bị hỗ trợ - ứng dụng nhúng – embedded – Khả xử lý số mạnh – Khả lập trình điều khiển mạnh – Khả thực ứng dụng mức độ cao điều khiển ôtô,... KỸ THUẬT VI XỬ LÝ Bài 3: Các mạch số Các cổng logic bán dẫn • Transistors , làm vi c giới hạn hai trạng thái, “tắt – khoá” (khi khơng có dòng điều khiển) “mở bão hồ” (khi dòng điều khiển cực... thông dụng: #, $, &, @, – Dấu cách (mã 2016) 33 mã điều khiển: mã từ 0016 ÷ 1F16 7F16 dùng để mã hóa cho chức điều khiển CHƯƠNG 1: CƠ SỞ KỸ THUẬT VI XỬ LÝ Bài 2: Cơ sở toán học 16 jhkhgjkgjhkh Các