1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình vi xử lý vi điều khiển đh sao đỏ

108 272 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 3,37 MB

Nội dung

Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương MỤC LỤC Danh mục hình vẽ Danh mục bảng biểu CHƯƠNG TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1.1 Tổng quan 1.1.2 Vi xử lý vi điều khiển 1.1.3 Ứng dụng Vi xử lý – vi điều khiển 10 1.2 CẤU TRÚC CHUNG CỦA MỘT HỆ VI XỬ LÝ 11 1.2.1 Khối xử lý trung tâm (CPU) 12 1.2.2 Hệ thống bus 13 1.3 ĐỊNH DẠNG DỮ LIỆU VÀ BIỂU DIỄN THÔNG TIN TRONG HỆ VI XỬ LÝ – VI ĐIỀU KHIỂN 14 1.3.1 Các hệ đếm 14 1.3.2 Mã ký tự - Alphanumeric CODE (ASCII, EBCDIC) 16 1.3.3 Các phép toán số học hệ đếm nhị phân 17 CHƯƠNG VI ĐIỀU KHIỂN 19 2.2 ỨNG DỤNG CỦA VI ĐIỀU KHIỂN 20 2.3 HOẠT ĐỘNG CỦA VI ĐIỀU KHIỂN 20 2.4 CẤU TRÚC CHUNG CỦA VI ĐIỀU KHIỂN 21 2.4.1.Read Only Memory (ROM) 21 2.4.2 Random Access Memory (RAM) 22 2.4.3 Electrically Erasable Programmable ROM (EEPROM) 22 2.4.4 Các ghi chức đặc biệt (SFR) 23 2.4.5 Bộ đếm chương trình (PC:Program Counter) 23 2.4.6 Central Processor Unit (CPU) 23 2.4.7 Các cổng vào/ra (I/O Ports) 23 2.4.8 Bộ dao động (Oscillator) 24 2.4.9 Bộ định thời/đếm (Timers/Counters) 25 2.4.10 Truyền thông nối tiếp 25 CHƯƠNG KIẾN TRÚC VI ĐIỀU KHỂN 8051 27 3.1 CHUẨN 8051 27 3.2 CHÂN VI ĐIỀU KHIỂN 8051 28 3.3 CỔNG VÀO/ RA 29 3.4 TỔ CHỨC BỘ NHỚ 34 3.4.1 Tổ chức nhớ 35 4.2 Tổ chức nhớ 37 3.5 CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT (SFRs - Special Function Registers) 39 3.6 BỘ ĐẾM / BỘ ĐỊNH THỜI 43 3.7 TRUYỀN THÔNG KHÔNG ĐỔNG BỘ (UART) 44 3.8 NGẮT VI ĐIỀU KHIỂN 8051 44 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG LẬP TRÌNH HỢP NGỮ CHO 8051 45 4.1 CÁC CHẾ ĐỘ ĐỊA CHỈ 45 4.1.1 Địa tức thời 45 4.1.2 Địa theo ghi 45 4.1.3 Địa trực tiếp 46 4.1.4 Địa gián tiếp 47 4.1.5 Địa theo số 48 4.2 TẬP LỆNH TRONG 8051 48 4.2.1 Phân loại tập lệnh 48 4.2.2 Cấu trúc chung lệnh 48 4.2.3 Các lệnh toán học 49 4.2.4 Các lệnh logic 52 4.2.5 Các lệnh vận chuyển liệu 55 4.2.6 Các lệnh thao tác bit 55 4.2.7 Lệnh đọc cổng 56 4.2.8 Các lệnh điều khiển chương trình (rẽ nhánh) 56 4.3 CẤU TRÚC CHUNG CHƯƠNG TRÌNH HỢP NGỮ CHO 8051 61 4.3.1 Các thành phần ngôn ngữ Assembly 61 4.3.2 Khai báo lập trình hợp ngữ cho 8051 62 4.3.3 Cấu trúc chương trình hợp ngữ 64 CHƯƠNG BỘ ĐỊNH THỜI, BỘ ĐẾM 66 5.1 CÁC THANH GHI CƠ SỞ CỦA BỘ ĐỊNH THỜI 66 5.1.1 Các ghi Timer 66 5.1.2 Các ghi Timer 66 5.1.3 Thanh ghi TMOD (chế độ định thời) 66 5.2 CÁC CHẾ ĐỘ CỦA BỘ ĐẾM / ĐỊNH THỜI (Timer Mode) 69 5.3 NGẮT TIMER 72 CHƯƠNG TRUYỀN THÔNG NỐI TIẾP 73 6.1 CÁC CƠ SỞ CỦA TRUYỀN THÔNG NỐI TIẾP 73 6.2 CÁC THANH GHI ĐIỀU KHIỂN TRUYỀN THỒN 75 6.2.1 SBUF 75 6.2.2 SCON 75 6.3 LỰA CHỌN CHẾ ĐỘ TRUYỀN THÔNG 76 6.3.1 Mode 76 6.3.2 Mode 78 6.3.3 Mode 78 6.3.4 Mode 79 6.4 MỘT SỐ VÍ DỤ VÀ BÀI TẬP 80 CHƯƠNG XỬ LÝ NGẮT 82 7.1 TRÌNH PHỤC VỤ NGẮT 82 7.2 CÁC BƯỚC KHI THỰC HIỆN MỘT NGẮT 84 7.3 MỘT SỐ VÍ DỤ VÀ BÀI TẬP 85 7.4 THỨ TỰ ƯU TIÊN NGẮT 88 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG PHỐI GHÉP 8051 VỚI THẾ GIỚI THỰC 89 8.1 PHỐI GHÉP VỚI LCD 89 8.1.1 Hoạt động LCD 89 8.1.2 Mô tả chân LCD 89 8.1.3 Gửi lệnh liệu đến LCD với độ trễ 92 8.1.4 Gửi mã lệnh liệu đến LCD có kiểm tra cờ bận 93 8.2 PHỐI GHÉP VỚI ADC 95 8.2.1 Các thiết bị ADC 95 8.2.2 Chíp ADC 0804 95 8.2.3 Ghép nối 8051 với ADC 0804 99 PHỤ LỤC 102 Phụ lục A: Các ký hiệu sử dụng mô tả lệnh 102 Phụ lục B: Chi tiết ghi chức 8051 108 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Danh mục hình vẽ Hình 1-1 Bộ vi xử lý Intel 80486DX2 Hình 2-1 Cấu trúc chung họ VĐK 21 Hình 2-2 Giao tiếp nhớ 23 Hình 2-3 Vào với thiết bị ngoại vi 24 Hình 2-4 Ghép nối dao động 24 Hình 2-5 Bộ định thời/đếm 25 Hình 2-6 Truyền nhận nối tiếp 25 Hình 3-1.Kiến trúc vi điều khiển 8051 27 Hình 3-2 Sơ đồ chân VĐK AT89C51 28 Hình 3-3 Cổng vào/ra 30 Hình 3-4 Xuất mức 31 Hình 3-5 Trở treo nội chân 31 Hình 3-6 xuất mức 31 Hình 3-7 Sơ đồ kết nối thạch anh 34 Hình 3-8 Các vùng nhớ AT89C51 34 Hình 3-9 Thực thi nhớ chương trình 38 Hình 3-10 Thanh ghi PSW 40 Hình 3-11 Chọn bank ghi 40 Hình 3-12 Thanh ghi PCON 42 Hình 3-13 - Ghép nối RS232 với 8051 44 Hình 5-1 Các ghi Timer 66 Hình 5-2 Các ghi Timer 66 Hình 5-3 Timer TMOD 67 Hình 5-4 Timer – Mode 69 Hình 5-5 Timer – Mode 70 Hình 5-6 Timer – Mode 70 Hình 5-7 Timer – Mode 71 Hình 6-1 Truyền thông 73 Hình 6-2 Ghép nối RS232 với 8051 75 Hình 6-3 Thanh ghi SBUF 75 Hình 6-4 Thanh ghi SCON 75 Hình 6-5 Truyền thông nối tiếp – Mode 77 Hình 6-6 Giản đồ thời gian truyền nối tiếp – Mode 77 Hình 6-7 Giản đồ thời gian nhận nối tiếp – Mode 77 Hình 6-8 Truyền nhận nối tiếp – Mode 78 Hình 6-9 Giản đồ thời gian truyền nối tiếp – Mode 78 Hình 6-10 Giản đồ thời gian nhận nối tiếp – Mode 78 Hình 6-11 Giản đồ thời gian truyền nối tiếp – Mode 79 Hình 6-12 Giản đồ thời gian nhận nối tiếp – Mode 79 Hình 7-1 Các tín hiệu điều khiển ngắt 83 Hình 7-2 Thanh ghi điều khiển ngắt 83 Hình 7-3 Thanh ghi IP 88 Hình 8-1 Ghép Nối LCD 93 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Hình 8-2 Kiểm tra ADC 0804 chế độ chạy tự 97 Hình 8-3 Phân chia thời gian đọc ghi ADC 804 99 Hình 8-4 Nối ghép ADC 0804 100 Hình 8-5 Nối ghép ADC 804 với đồng hồ từ XTAL2 8051 101 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Danh mục bảng biểu Bảng 1-1 Giá trị tương ứng hệ số 15 Bảng 1-2 Bảng mã ASCII 16 Bảng 1-3 Bảng mã ASCII có ký tự phần mở rộng 17 Bảng 1-4 Phép cộng nhị phân phép trừ nhị phân 17 Bảng 3-1 Chức chân Port 33 Bảng 3-2 Các ghi chức đặc biệt 35 Bảng 3-3 Địa RAM nội 8051 36 Bảng 4-1: Tóm tắt phép nhân hai số không dấu (MUL AB) 51 Bảng 4-2 Tóm tắt phép chia không dấu (DIV AB) 52 Bảng 4-3 Lệnh đọc cổng 56 Bảng 4-4 Lệnh đọc cổng 56 Bảng 4-5 Các lệnh nhảy có điều kiện 58 Bảng 4-6 Các toán tử 63 Bảng 4-7 Một số từ khóa Assembly 64 Bảng 5-1 Chế độ hoạt động Timer/Counter 67 Bảng 6-1 Các bít SCON 76 Bảng 6-2 Lựa chọn chế độ làm việc 76 Bảng 6-3 Một số giá trị thường dùng truyền thông nối tiếp 80 Bảng 7-1 Các bít ghi diều khiển ngắt 84 Bảng 7-2 Bảng vector ngắt ví dụ 85 Bảng 8-1 Mô tả chân LCD 91 Bảng 8-2 Các mã lệnh LCD 91 Bảng 8-3 Điện áp Vref/2 liên hệ với dải Vin 98 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1.1 Tổng quan Vi xử lý (viết tắt µP hay uP), gọi vi xử lý, linh kiện điện tử chế tạo từ tranzito thu nhỏ tích hợp lên vi mạch tích hợp Khối xử lý trung tâm (CPU) vi xử lý nhiều người biết đến nhiều thành phần khác máy tính có vi xử lý riêng nó, ví dụ card hình (video card) có vi xử lý Hình 1-1 Bộ vi xử lý Intel 80486DX2 Trước xuất vi xử lý, CPU xây dựng từ mạch tích hợp cỡ nhỏ riêng biệt, mạch tích hợp chứa khoảng vào chục tranzito Do đó, CPU bảng mạch gồm hàng ngàn hay hàng triệu vi mạch tích hợp ngày nay, công nghệ tích hợp phát triển, CPU tích hợp lên vài vi mạch tích hợp cỡ lớn, vi mạch tích hợp cỡ lớn chứa hàng ngàn hàng triệu tranzito Nhờ công suất tiêu thụ giá thành vi xử lý giảm đáng kể Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển, thực chất, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi số sang tương tự tương tự sang số, Ở máy tính mô đun thường xây dựng chíp mạch Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v Hầu hết vi điều khiển ngày xây dựng dựa kiến trúc Harvard, kiến trúc định nghĩa bốn thành phần cần thiết hệ thống nhúng Những thành phần lõi CPU, nhớ chương trình (thông thường ROM nhớ ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Flash), nhớ liệu (RAM), vài định thời cổng vào/ra để giao tiếp với thiết bị ngoại vi môi trường bên - tất khối thiết kế vi mạch tích hợp Vi điều khiển khác với vi xử lý đa chỗ hoạt động với vài vi mạch hỗ trợ bên 1.1.2 Vi xử lý vi điều khiển Khái niệm “vi xử lý” (microprocessor) “vi điều khiển” (microcontroller) Về hai khái niệm không khác nhiều, “vi xử lý” thuật ngữ chung dùng để đề cập đến kỹ thuật ứng dụng công nghệ vi điện tử, công nghệ tích hợp khả xử lý theo chương trình vào lĩnh vực khác Vào giai đoạn đầu trình phát triển công nghệ vi xử lý, chip (hay vi xử lý) chế tạo tích hợp phần cứng thiết yếu CPU mạch giao tiếp CPU phần cứng khác Trong giai đoạn này, phần cứng khác (kể nhớ) thường không tích hợp chip mà phải ghép nối thêm bên Các phần cứng gọi ngoại vi (Peripherals) Về sau, nhờ phát triển vượt bậc công nghệ tích hợp, ngoại vi tích hợp vào bên IC người ta gọi vi xử lý tích hợp thêm ngoại vi “vi điều khiển” Vi xử lý có khối chức cần thiết để lấy liệu, xử lý liệu xuất liệu sau xử lý Và chức Vi xử lý xử lý liệu, chẳng hạn cộng, trừ, nhân, chia, so sánh.v.v Vi xử lý khả giao tiếp trực tiếp với thiết bị ngoại vi, có khả nhận xử lý liệu mà Để vi xử lý hoạt động cần có chương trình kèm theo, chương trình điều khiển mạch logic từ vi xử lý xử lý liệu cần thiết theo yêu cầu Chương trình tập hợp lệnh để xử lý liệu thực lệnh lưu trữ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ nhớ, giải mã lệnh thực lệnh sau giải mã Để thực công việc với thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự hình đòi hỏi phải kết hợp vi xử lý với mạch điện giao tiếp với bên gọi thiết bị I/O (nhập/xuất) hay gọi thiết bị ngoại vi Bản thân vi xử lý đứng nhiều hiệu sử dụng, phần máy tính, hiệu ứng dụng Vi xử lý lớn Vi xử lý kết hợp với thiết bị khác sử hệ thống lớn, phức tạp đòi hỏi phải xử lý lượng lớn phép tính phức tạp, có tốc độ nhanh Chẳng hạn hệ thống sản xuất tự động công nghiệp, tổng đài điện thoại, robot có khả hoạt động phức tạp v.v Bộ Vi xử lý có khả vượt bậc so với hệ thống khác khả tính ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương toán, xử lý, thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu toán hệ thống lớn Tuy nhiên ứng dụng nhỏ, tầm tính toán không đòi hỏi khả tính toán lớn việc ứng dụng vi xử lý cần cân nhắc Bởi hệ thống dù lớn hay nhỏ, dùng vi xử lý đòi hỏi khối mạch điện giao tiếp phức tạp Các khối bao gồm nhớ để chứa liệu chương trình thực hiện, mạch điện giao tiếp ngoại vi để xuất nhập điều khiển trở lại, khối liên kết với vi xử lý thực công việc Để kết nối khối đòi hỏi người thiết kế phải hiểu biết tinh tường thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo phức tạp, chiếm nhiều không gian, mạch in phức tạp vấn đề trình độ người thiết kế Kết giá thành sản phẩm cuối cao, không phù hợp để áp dụng cho hệ thống nhỏ Vì số nhược điểm nên nhà chế tạo tích hợp nhớ số mạch giao tiếp ngoại vi với vi xử lý vào IC gọi Microcontroller-Vi điều khiển Vi điều khiển có khả tương tự khả vi xử lý, cấu trúc phần cứng dành cho người dùng đơn giản nhiều Vi điều khiển đời mang lại tiện lợi người dùng, họ không cần nắm vững khối lượng kiến thức lớn người dùng vi xử lý, kết cấu mạch điện dành cho người dùng trở nên đơn giản nhiều có khả giao tiếp trực tiếp với thiết bị bên Vi điều khiển xây dựng với phần cứng dành cho người sử dụng đơn giản hơn, thay vào lợi điểm khả xử lý bị giới hạn (tốc độ xử lý chậm khả tính toán hơn, dung lượng chương trình bị giới hạn) Thay vào đó, Vi điều khiển có giá thành rẻ nhiều so với vi xử lý, việc sử dụng đơn giản, ứng dụng rộng rãi vào nhiều ứng dụng có chức đơn giản, không đòi hỏi tính toán phức tạp Vi điều khiển ứng dụng dây chuyền tự động loại nhỏ, robot có chức đơn giản, máy giặt, ôtô v.v Năm 1976 Intel giới thiệu vi điều khiển (microcontroller) 8748, chip tương tự vi xử lý chip họ MCS-48 Độ phức tạp, kích thước khả Vi điều khiển tăng thêm bậc quan trọng vào năm 1980 intel tung chip 8051, Vi điều khiển họ MCS-51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Sau nhiều họ Vi điều khiển nhiều nhà chế tạo khác đưa thị trường với tính cải tiến ngày mạnh Trong tài liệu này, ranh giới hai khái niệm “vi xử lý” “vi điều khiển” thực không cần phải phân biệt rõ ràng Chúng dùng thuật ngữ “vi xử lý” ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương đề cập đến khái niệm kỹ thuật vi xử lý nói chung dùng thuật ngữ “vi điều khiển” sâu nghiên cứu họ chip cụ thể 1.1.3 Ứng dụng Vi xử lý – vi điều khiển Vi xử lý, chip loại máy tính ngày nay, nên hẳn bạn biết rõ có ứng dụng Ở đây, nói đên ứng dụng vi điều khiển Vi điều khiển dùng thiết kế loại máy tính nhúng Máy tính nhúng có hầu hết thiết bị tự động, thông minh ngày Chúng ta dùng vi điều khiển để thiết kế điều khiển cho sản phẩm như: Trong sản phẩm dân dụng: Nhà thông minh: Cửa tự động Khóa số Tự động điều tiết ánh sáng thông minh (bật/tắt đèn theo thời gian, theo cường độ ánh sáng, ) Điều khiển thiết bị từ xa (qua điều khiển, qua tiếng vỗ tay, ) Điều tiết ẩm, điều tiết nhiệt độ, điều tiết không khí, gió Hệ thống vệ sinh thông minh, Trong quảng cáo: Các loại biển quảng cáo nháy chữ Quảng cáo ma trận LED (một màu, màu, đa màu) Điều khiển máy bạt quảng cáo, Các máy móc dân dụng Máy điều tiết độ ẩm cho vườn Buồng ấp trứng gà/vịt Đồng hồ số, đồng hồ số có điều khiển theo thời gian Các sản phẩm giải trí Máy nghe nhạc Máy chơi game Đầu thu kỹ thuật số, đầu thu set-top-box, Trong thiết bị y tế: Máy móc thiết bị hỗ trợ: máy đo nhịp tim, máy đo đường huyết, máy đo huyết áp, điện tim đồ, điện não đồ,… Máy cắt/mài kính Máy chụp chiếu (city, X-quang, ) Các sản phẩm công nghiệp ©khactoan.kshq@gmail.com 10 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương ; Kiểm tra cờ bận trước gửi liệu, lệnh LCD ; Đặt P1 cổng liệu ; Đặt P2.0 nối tới cổng RS ; Đặt P2.1 nối tới chân R/W ; Đặt P2.2 nối tới chân E ORG MOV A, # 38H ; Khởi tạo LCD hai dòng với ma trận  ACALL COMMAND MOV A, # 0EH ; Xuất lệnh ; Dịch trỏ sang phải ACALL COMMAND MOV A, # 01H ACALL COMMAND ; Xuất lệnh ; Xoá lệnh LCD ; Xuất lệnh MOV A, # 86H ACALL COMMAND ; Dịch trỏ sang phải ; Đưa trỏ dòng lệnh MOV A, # “N” ; Hiển thị chữ N ACALL DATA DISPLAY MOV A, # “0” ; Hiển thị chữ ACALL DATA DISPLAY HERE: SJMP HERE ; Chờ COMMAND:ACALL READY ; LCD sẵn sàng chưa? MOV P1, A ; Xuất mã lệnh CLR P2.0 ; Đặt RS = cho xuất lệnh CLR P2.1 ; Đặt R/W = để ghi liệu tới LCD SETB P2.2 ; Đặt E = xung cao xuống thấp CLR P2.2 ; Đặt E = chốt liệu RET DATA-DISPLAY: ACALL READY ; LCD sẵn sàng chưa? MOV P1, A ; Xuất liệu SETB P2.0 ; Đặt RS = cho xuất liệu CLR P2.1 ; Đặt R/W = để ghi liệu LCD SETB P2.2 ; Đặt E = xung cao xuống thấp CLR P2.2 ; Đặt E = chốt liệu RET DELAY: ©khactoan.kshq@gmail.com 94 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương SETB P1.7 CLR P2.0 ; Lấy P1.7 làm cổng vào ; Đặt RS = để truy cập ghi lệnh SETB P2.1 ; Đặt R/W = đọc ghi lệnh ; Đọc ghi lệnh kiểm tra cờ lệnh BACK: CLR P2.2 SETB P2.2 JB P1.7, BACK ; E = xung cao xuống thấp ; E = cho xung cao xuống thấp? ; Đợi cờ bận = RET END Lưu ý: Trong chương trình cờ bận D7 ghi lệnh Để đọc ghi lệnh ta phải đặt RS = 0, R/W = xung cao - xuống - thấp cho bít E để cấp ghi lệnh cho Sau đọc ghi lệnh, bít D7 (cờ bận) mức cao LCD bận thông tin (lệnh) xuất đến D7 = gửi liệu lệnh đến LCD Lưu ý phương phát không sử dụng độ trễ thời gian ta kiểm tra cờ bận trước xuất lệnh liệu lên LCD 8.2 PHỐI GHÉP VỚI ADC Phần khám phá ghép chíp ADC (bộ chuyển đổi tương tự số) cảm biến nhiệt với 8051 8.2.1 Các thiết bị ADC Các chuyển đổi ADC thuộc thiết bị sử dụng rộng rãi để thu liệu Các máy tính số sử dụng giá trị nhị phân, giới vật lý đại lượng dạng tương tự (liên tục) Nhiệt độ, áp suất (khí chất lỏng), độ ẩm vận tốc số trọng đại lượng vật lý giới thực mà ta gặp hàng ngày Một đại lượng vật lý chuyển dòng điện điện áp qua thiết bị gọi biến đổi Các biến đổi coi cảm biến Mặc dù có cảm biến nhiệt, tốc độ, áp suất, ánh sáng nhiều đại lượng tự nhiên khác chúng cho tín hiệu dạng dòng điện điện áp dạng liên tục Do vậy, ta cần chuyển đổi tương tự số cho vi điều khiển đọc chúng Một chíp ADC sử dụng rộng rãi ADC 804 8.2.2 Chíp ADC 0804 Chíp ADC 804 chuyển đổi tương tự số họ loạt ADC 800 từ hãng National Semiconductor Nó nhiều hãng khác sản xuất, làm việc với +5v có độ phân giải bít Ngoài độ phân giải thời gian chuyển đổi yếu tố quan trọng khác đánh giá ADC Thời gian chuyển đổi định ©khactoan.kshq@gmail.com 95 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương nghĩa thời gian mà ADC cần để chuyển đầu vào tương tự thành số nhị phân Trong ADC 804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ cấp tới chân CLK CLK IN nhanh 110s Các chân ADC 804 mô tả sau: Chân CS - chọn chíp: Là đầu vào tích cực mức thấp sử dụng để kích hoạt chíp ADC 804 Để truy cập ADC 804 chân phải mức thấp Chân RD (đọc): Đây tín hiệu đầu vào tích cực mức thấp Các ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với giữ ghi RD sử dụng để nhận liệu chuyển đổi đầu ADC 804 Khi CS = xung cao - xuống - thấp áp đến chân RD đầu số bít hiển diện chân liệu D0 - D7 Chân RD coi cho phép đầu Chân ghi WR (thực tên xác “Bắt đầu chuyển đổi”) Đây chân đầu vào tích cực mức thấp dùng để báo cho ADC 804 bắt đầu trình chuyển đổi Nếu CS = WR tạo xung cao - xuống - thấp ADC 804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin số nhị phân bít Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN CLK R Khi việc chuyển đổi liệu hoàn tất chân INTR ép xuống thấp ADC 804 Chân CLK IN CLK R Chân CLK IN chân đầu vào nối tới nguồn đồng hồ đồng hồ sử dụng để tạo thời gian Tuy nhiên 804 có máy tạo xung đồng hồ Để sử dụng máy tạo xung đồng hồ (cũng gọi máy tạo đồng hồ riêng) 804 chân CLK IN CLK R nối tới tụ điện điện trở hình 6.4 Trong trường hợp tần số đồng hồ xác định biểu thức: f 1,1RC Giá trị tiêu biểu đại lượng R = 10k C= 150pF tần số nhận f = 606kHz thời gian chuyển đổi 110s ©khactoan.kshq@gmail.com 96 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương ADC0804 +5V 10k POT 19 10k 150pF 10 20 Vin(+) Vcc D0 Vin(-) D1 A GND D2 Vref/2 D3 D4 CLK R D5 D6 CLK in D7 CS WR RD INTR D GND 18 17 16 15 14 13 12 11 to LEDs Nomally Open START Hình 8-2 Kiểm tra ADC 0804 chế độ chạy tự Chân ngắt INTR (ngắt hay gọi xác “kết thúc chuyển đổi’) Đây chân đầu tích cực mức thấp Bình thường trạng thái cao việc chuyển đổi hoàn tất xuống thấp để báo cho CPU biết liệu chuyển đổi sẵn sàng để lấy Sau INTR xuống thấp, ta đặt CS = gửi xung cao xuống - thấp tới chân RD lấy liệu 804 Chân Vin (+) Vin (-) Đây đầu vào tương tự vi sai mà Vin = Vin (+) - Vin (-) Thông thường Vin (-) nối xuống đất Vin (+) dùng đầu vào tương tự chuyển đổi dạng số Chân VCC Đây chân nguồn nuối +5v, dùng điện áp tham chiếu đầu vào Vref/2 (chân 9) để hở Chân Vref/2 Chân điện áp đầu vào dùng cho điện áp tham chiếu Nếu chân hở (không nối) điện áp đầu vào tương tự cho ADC 804 nằm dải đến +5v (giống chân VCC) Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp ©khactoan.kshq@gmail.com 97 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương đến Vin cần phải khác dải đến 5v Chân Vref/2 đượcdùng để thực thi điện áp đầu vào khác dải - 5v Ví dụ, dải đầu vào tương tự cần phải đến 4v Vref/2 nối với +2v Vref/ 2(V) Vin(V) Step Size (mV) Hở * đến 5/256 = 19.53 2.0 đến 4/255 = 15.62 1.5 đến 3/256 = 11.71 1.28 đến 2.56 2.56/256 = 10 1.0 đến 2/256 = 7.81 0.5 đến 1/256 = 3.90 Bảng 8-3 Điện áp Vref/2 liên hệ với dải Vin Ghi chú: - VCC = 5V - Khi Vref/2 hở đo khoảng 2,5V - Kích thước bước (độ phân dải) thay đổi nhỏ mà ADC phân biệt Các chân liệu D0 - D7 Các chân liệu D0 - D7 (D7 bít cao MSB D0 bít thấp LSB) chân đầu liệu số Đây chân đệm ba trạng thái liệu chuyển đổi truy cập chân CS = chân RD bị đưa xuống thấp Để tính điện áp đầu ta sử dụng công thức sau: D out  V in Với Dout đầu liệu số (dạng thập kich thuoc buoc phân) Vin điện áp đầu vào tương tự độ phân dải thay đổi nhỏ tính (2  Vref/2) chia cho 256 ADC bít 10 Chân đất tương tự chân đất số Đây chân đầu vào cấp đất chung cho tín hiệu số tương tự Đất tương tự nối tới đất chân Vin tương tự, đất số nối tới đất chân Vcc Lý mà ta phải có hai đất để cách ly tín hiệu tương tự Vin từ điện áp ký sinh tạo việc chuyển mạch số xác Trong phần trình bày chân nối chung với đất Tuy nhiên, thực tế thu đo liệu chân đất nối tách biệt ©khactoan.kshq@gmail.com 98 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Từ điều ta kết luận bước cần phải thực chuyển đổi liệu ADC 804 là: a) Bật CS = gửi xung thấp lên cao tới chân WR để bắt đầu chuyển đổi b) Duy trì hiển thị chân INTR Nếu INTR xuống thấp việc chuyển đổi hoàn tất ta sang bước Nếu INTR cao tiếp tục thăm dò xuống thấp c) Sau chân INTR xuống thấp, ta bật CS = gửi xung cao - xuống - thấp đến chân RD để lấy liệu khỏi chíp ADC 804 Phân chia thời gian cho trình trình bày hình 6.6 CS WR Data D0 – D7 INTR End Start RD Read Hình 8-3 Phân chia thời gian đọc ghi ADC 804 8.2.3 Ghép nối 8051 với ADC 0804 Chúng ta kiểm tra ADC 804 cách sử dụng sơ đồ mạch hình 76 thiết lập gọi chế độ kiểm tra chạy tự nhà sản xuất khuyến cao nên sử dụng Hình 6.4 trình bày biến trở dùng để cắp điện áp tương tự từ đến 5V tới chân đầu vào Vin(+) ADC 804 đầu nhị phân hiển thị đèn LED bảng huấn luyện số Cần phải lưu ý chế độ kiểm tra chạy tự đầu vào CS nối tới đất đầu vào WR nối tới đầu INTR Tuy nhiên, theo tài liệu hãng National Semiconductor “nút WR INTR phải tạm thời đưa xuống thấp kế sau chu trình cấp nguồn để bảo đảm hoạt động” ©khactoan.kshq@gmail.com 99 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương 8051 P2.5 P2.6 P1.0 ADC0804 RD WR D0 5V VCC CLK R CLK IN 10k 150pF Vin(+) Vin(-) 10k PO A GND Vref/2 GND P1.7 P2.7 D7 INTR CS Hình 8-4 Nối ghép ADC 0804 Ví dụ: Hãy thử nối ghép ADC 804 với 8051 theo sơ đồ 6.7 Viết chương trình để hiển thị chân INTR lấy đầu vào tương tự vào ghi A Sau gọi chương trình chuyển đổi mã Hex ASCII chương trình hiển thị liệu Thực điều liên tục Lời giải: ; Đặt P2.6 = WR (bắt đầu chuyển đổi cần xung thấp lên cao) ; Đặt chân P2.7 = kết thúc chuyển đổi ; Đặt P2.5 = RD (xung cao - xuống - thấp đọc liệu từ ADC) ; P1.0 – P1.7 ADC 804 MOV P1, # 0FFH ; Chọn P1 cổng đầu vào BACK: CLR P2.6 ; Đặt WR = SETB P2.6 ; Đặt WR = để bắt đầu chuyển đổi HERE: JB P2.7, HERE ; Chờ cho P2.7 to để kết thúc chuyển đổi CLR P2.5 ; Kết thúc chuyển đổi, cho phép đọc RD MOV A, P1 ; Đọc liệu vào ghi A ACALL CONVERSION ; Chuyển đổi số Hex mã ASCII ACALL DATA-DISPLAY ; Hiển thị liệu SETB P2.5 ; Đưa RD = lần đọc sau SJMP BACK ©khactoan.kshq@gmail.com 100 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương 8051 P2.5 P2.6 P1.0 D ADC0804 5V VCC RD CLK R WR CLK IN D0 Vin(+) Vin(-) Q Q PO A GND Vref/2 GND Q D 10k P1.7 P2.7 D0 INTR CS Q 74LS74 Hình 8-5 Nối ghép ADC 804 với đồng hồ từ XTAL2 8051 Trên hình 7-7 ta thấy tín hiệu đồng hồ vào ADC 804 từ tần số thạch anh 8051 Vì tần số cao nên ta sử dụng hai mạch lật Rlip - Flop kiểu D (74LS74) để chia tần số cho Một mạch lật chia tần số cho ta nối đầu Q tới đầu vào D Đối với tần số cao ta cần sử dụng nhiều mạch Flip - Plop ©khactoan.kshq@gmail.com 101 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương PHỤ LỤC Phụ lục A: Các ký hiệu sử dụng mô tả lệnh Ký hiệu Mô A: Thanh ghi chứa (Accumulator) B: Thanh ghi B Ri: Thanh ghi R0 R1 băng ghi băng ghi RAM Rn: Ký hiệu Rn: ghi băng ghi Mổ tả băng ghi RAM Dptr: ghi trỏ liệu (có độ rộng 16bit kết hợp từ ghi bit DPH DPL) Direct: Direct: biến bit(hay ô nhớ) RAM (trừ 32 ghi Rn đầu RAM) #data: số bit #data16: số 16 bit : địa nằm khoảng [PC-128 ; PC+127] : : : địa nằm khoảng – 2Kbyte tính từ địa lệnh địa không gian 64K (áp dụng cho không gian nhớ chương trình không gian nhớ liệu) bit đánh địa (không dùng cho bit không đánh địa chỉ) ©khactoan.kshq@gmail.com 102 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Phụ lục B: Tập lệnh 8051 Lệnh số học Cú pháp STT Số Mô tả Mã lệnh Toán hạng Số chu byte kỳ 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ADD ADD ADD ADD ADDC ADDC ADDC ADDC SUBB SUBB SUBB SUBB INC INC INC INC DEC DEC DEC DEC INC MUL DIV A, Rn A,direct A,@Ri A,#data A,Rn A,direct A,@Ri A,#data A,Rn A,direct A,@Ri A,#data A Rn Direct @Ri A Rn Direct @Ri Dptr AB AB DA A ©khactoan.kshq@gmail.com A = A + Rn A = A + direct A = A + @Ri A = A + #data A = A + Rn + C A = A + direct + C A = A + @Ri + C A = A + #data + C A = A – Rn – C A = A – direct – C A = A – @Ri – C A = A – #data – C A=A+1 Rn = Rn + direct = direct + @Ri = @Ri + A=A–1 Rn = Rn – direct = direct – @Ri = @Ri – dptr = dptr + B:A = A*B A/B = A(thương) + B (dư) Hiệu chỉnh thập phân số liệu ghi A 103 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Lệnh logic ©khactoan.kshq@gmail.com 104 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Các lệnh bít ©khactoan.kshq@gmail.com 105 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Lệnh dich chuyển liệu Cú pháp STT Mã lệnh Toán hạng 10 11 12 13 14 15 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV A,Rn A,direct A,@Ri A,#data Rn,A Rn,direct Rn,#data Direct,A Direct,Rn Direct,direct Direct,@Ri Direct,#data @Ri,A @Ri,direct @Ri,#data 16 MOV Dptr,#data16 17 MOVC A,@A+dptr 18 MOVC A,@A+PC 19 MOVX A,@Ri 20 MOVX A,@dptr Cú pháp STT 21 MOVX Mã lệnh @dptr,A Toán hạng 22 MOVX @dptr,A 23 PUSH Direct 24 25 26 POP Direct ©khactoan.kshq@gmail.com XCH XCH A,Rn A,direct Mô tả Copy giá trị toán hạng bên phải cho vào toán hạng bên trái (các toán hạng 8bit) Đưa giá trị 16bit vào ghi DPTR Đọc giá trị nhớ chương trình địa = A + DPTR, cất kết Đọc giá trị nhớ chương trình địa = A + PC, cất kết vào A Đọc vào A giá trị nhớ địa = Ri Đọc vào A giá trị nhớ địa = DPTR Ghi giá trị củaMô A vào tả nhớ địa = DPTR Ghi giá trị A vào nhớ địa = DPTR Cất nội dung biến RAM vào đỉnh ngăn xếp Lấy byte đỉnh ngăn xếp 106vào biến RAM cho Hoán đổi giá trị A giá trị lại 2 2 2 3 2 Số chu kỳ 1 1 1 2 2 1 2 2 Số 1byte Số 2chu kỳ 2 2 2 1 Số byte Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương ©khactoan.kshq@gmail.com 107 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Phụ lục B: Chi tiết ghi chức 8051 Thanh ghi IE: IE: Interrupt Enable, cho phép ngắt: ghi cho phép/cấm ngắt hoạt động Thanh ghi TCON: TCON Register - TCON (S:88h) TCON: Timer/Counter Control Register: ghi điều khiển đếm/bộ định thời Thanh ghi TMOD: TMOD Register - TMOD (S: 89h) TMOD: Timer/Counter and Modes: ghi đặt chế độ cho Timer/Counter Thanh ghi T2CON: T2CON Register - T2CON (S:C8h) Thanh ghi điều khiển Timer/Counter Thanh ghi T2MOD: T2MOD Register - T2MOD (S:C9h) Thanh ghi điều khiển Timer/Counter Thanh ghi SCON SCON: Serial Controller: ghi cấu hình truyền thông nối tiếp Thanh ghi PCON: PCON Register PCON - Power Control Register (87h): Thanh ghi điều khiển nguồn ©khactoan.kshq@gmail.com 108 [...]... ©khactoan.kshq@gmail.com 17 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Trường hợp kết quả âm: Phép nhân, phép chia, đề nghị sinh vi n tự nghiên cứu ©khactoan.kshq@gmail.com 18 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG 2 VI ĐIỀU KHIỂN 2.1 ĐẶT VẤN ĐỀ Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán, xử lý, và thay... phép vi điều khiển có thể kết nối với các thiết bị ngoại vi ©khactoan.kshq@gmail.com 29 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Hình 3-3 Cổng vào/ra ©khactoan.kshq@gmail.com 30 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Hình 3-4 Xuất mức 0 Chân vào/ra (I/O) Hình trên mô tả sơ đồ đơn giản của mạch bên trong các chân vi điều khiển. .. điều khiển đầu tiên của họ MCS-51 và là chuẩn công nghệ cho nhiều họ Vi điều khiển được sản xuất sau này Sau đó rất nhiều họ Vi điều ©khactoan.kshq@gmail.com 19 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương khiển của nhiều nhà chế tạo khác nhau lần lượt được đưa ra thị trường với tính năng được cải tiến ngày càng mạnh 2.2 ỨNG DỤNG CỦA VI ĐIỀU KHIỂN Về cơ bản, vi điều khiển. .. Vi t một chương trình bao gồm vi c vi t các câu lệnh đơn giản theo một thứ tự để chúng có thể thực thi Có rất nhiều phần mềm chạy trên môi trường Windows cho phép xây dựng các chương trình hoàn chỉnh cho các họ vi điều khiển ©khactoan.kshq@gmail.com 26 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG 3 KIẾN TRÚC VI ĐIỀU KHỂN 8051 3.1 CHUẨN 8051 Họ vi điều khiển MCS-51... Các cổng vào/ra (I/O Ports) Để vi điều khiển có thể hoạt động hữu ích, nó cần có sự kết nối với các thiết bị ngoại vi Mỗi vi điều khiển sẽ có một hoặc một số thanh ghi (được gọi là cổng) được kết nối với các chân của vi điều khiển ©khactoan.kshq@gmail.com 23 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Hình 2-3 Vào ra với thiết bị ngoại vi Chúng được gọi là cổng vào/ra... 6 111000 7 111111 8 111001 9 111110 A 001111 B 000110 C 011110 D 110111 E 100011 F Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương 1.3.2 Mã ký tự - Alphanumeric CODE (ASCII, EBCDIC) Bảng 1-2 Bảng mã ASCII ©khactoan.kshq@gmail.com 16 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Bảng 1-3 Bảng mã ASCII có cả ký tự trong phần mở rộng 1.3.3 Các.. .Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương Điều khiển động cơ Điều khiển số (PID, mờ, ) Đo lường (đo điện áp, đo dòng điện, áp suất, nhiệt độ, ) Cân băng tải, cân toa xe, cân ô tô, Máy cán thép: điều khiển động cơ máy cán, điều khiển máy quấn thép, Làm bộ điều khiển trung tâm cho RoBot Ổn định tốc độ động cơ Đếm... ĐỘNG CỦA VI ĐIỀU KHIỂN Mặc dù đã có rất nhiều họ vi điều khiển được phát triển cũng như nhiều chương trình điều khiển tạo ra cho chúng, nhưng tất cả chúng vẫn có một số điểm chung cơ bản Do đó nếu ta hiểu cặn kẽ một họ thì vi c tìm hiểu thêm một họ vi điều khiển mới là hoàn toàn đơn giản Một kịch bản chung cho hoạt động của một vi điều khiển như sau: 1 Khi không có nguồn điện cung cấp, vi điều khiển chỉ... một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller -Vi điều khiển Vi điều khiển có khả năng tương tự như khả năng của vi xử lý, nhưng cấu trúc phần cứng dành cho người dùng đơn giản hơn nhiều Vi điều khiển ra đời mang lại sự tiện lợi đối với người dùng, họ không cần nắm vững một khối lượng kiến thức quá lớn như người dùng vi xử lý, kết cấu mạch điện dành... trong vi điều khiển Toàn bộ vi điều khiển hoạt động theo chu kỳ của chuỗi xung chính ©khactoan.kshq@gmail.com 20 Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương 4 Thanh ghi bộ đếm chương trình (Program Counter) được xóa về 0 Câu lệnh từ địa chỉ này được gửi tới bộ giải mã lệnh sau đó được thực thi ngay lập tức 5 Giá trị trong thanh ghi PC được tăng lên 1 và toàn bộ quá trình ... dải Vin 98 ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ Công thương CHƯƠNG TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ... niệm vi xử lý vi điều khiển thực không cần phải phân biệt rõ ràng Chúng dùng thuật ngữ vi xử lý ©khactoan.kshq@gmail.com Giáo trình Vi xử lý – Vi điều khiển - Trường Đại học Sao Đỏ - Bộ... bị ngoại vi môi trường bên - tất khối thiết kế vi mạch tích hợp Vi điều khiển khác với vi xử lý đa chỗ hoạt động với vài vi mạch hỗ trợ bên 1.1.2 Vi xử lý vi điều khiển Khái niệm vi xử lý (microprocessor)

Ngày đăng: 06/12/2015, 18:48

TỪ KHÓA LIÊN QUAN

w