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

Giáo trình Điều khiển hệ thống cơ điện tử sử dụng vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận

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

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

Giáo trình "Điều khiển hệ thống cơ điện tử sử dụng vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng)" bao gồm các bài học về: Giới thiệu về vi điều khiển 8051; Giao tiếp với led ma trận; Giao tiếp với phím bấm; Giao tiếp LCD; Giao tiếp với ma trận phím;...

Chủ đề:
Lưu

Nội dung Text: Giáo trình Điều khiển hệ thống cơ điện tử sử dụng vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận

  1. UBND TỈNH NINH THUẬN TRƢỜNG CAO ĐẲNG NGHỀ NINH THUẬN GIÁO TRÌNH MÔ ĐUN: ĐIỀU KHIỂN HỆ THỐNG CƠ ĐIỆN TỬ SỬ DỤNG VI ĐIỀU KHIỂN NGHỀ: CƠ ĐIỆN TỬ TRÌNH ĐỘ CAO ĐẲNG (Ban hành kèm theo Quyết định số: /QĐ-... ngày ..... tháng.... năm 2019 của Trƣờng Cao đẳng nghề Ninh Thuận) Ninh Thuận - 2019 0
  2. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. 1
  3. MỤC LỤC BÀI 1 : GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 ....................................................5 1. Giới thiệu về vi điều khiển ...............................................................................5 2. Giới thiệu các loại chip 8051............................................................................7 3. Giới thiệu về P89V51RB2................................................................................7 4. Lập trình cho P89V51RB2 ............................................................................ 12 5. Nạp chƣơng trình ........................................................................................... 34 BÀI 2 : GIAO TIẾP VÀO RA I/O.......................................................................... 37 1. Giới thiệu giao tiếp vào ra I/O....................................................................... 37 2. Ví dụ chƣơng trình nhấp nháy led ................................................................. 38 BÀI 3 : GIAO TIẾP VỚI LED 7 THANH ............................................................. 42 1. Cơ bản về led 7 thanh .................................................................................... 42 2. Nguyên lí lập trình cho led 7 thanh ............................................................... 44 3. Ví dụ minh họa .............................................................................................. 45 BÀI 4 : GIAO TIẾP VỚI LED MA TRẬN............................................................ 49 1. Cơ bản về led ma trận.................................................................................... 49 2. Tạo font cho led ma trận................................................................................ 50 3. Ví dụ minh họa. ............................................................................................. 52 BÀI 5 : GIAO TIẾP VỚI PHÍM BẤM................................................................... 54 1. Cơ bản về phím bấm...................................................................................... 54 2. Chƣơng trình ví dụ......................................................................................... 55 3. Kĩ thuật chống rung bàn phím ....................................................................... 57 BÀI 6 : GIAO TIẾP LCD ....................................................................................... 59 1. Giới thiệu về LCD 16x2 ................................................................................ 59 2. Cách cấu hình để giao tiếp với LCD cho P89V51RB2................................. 65 2
  4. 3. Ví dụ .............................................................................................................. 67 BÀI 7 : TIMER ....................................................................................................... 70 1. Giới thiệu về timer......................................................................................... 70 2. Cách cấu hình timer trong Keil C cho P89V51RB2 ..................................... 74 3. Ví dụ minh họa .............................................................................................. 75 BÀI 8 : NGẮT......................................................................................................... 78 1. Giới thiệu về ngắt .......................................................................................... 78 2. Các bƣớc cấu hình cho ngắt hoạt động ......................................................... 79 3. Ví dụ minh họa .............................................................................................. 82 BÀI 9 : ĐỘNG CƠ BƢỚC ..................................................................................... 84 1. Cơ bản về động cơ bƣớc................................................................................ 84 2. Các mạch điều khiển động cơ bƣớc .............................................................. 85 3. Ví dụ .............................................................................................................. 88 BÀI 10 : ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU ................................................ 90 1. Giới thiệu về động cơ một chiều ................................................................... 90 2. Ví dụ minh họa .............................................................................................. 92 BÀI 11 : GIAO TIẾP VỚI MA TRẬN PHÍM ................................................... 94 1. Cơ bản về ma trận phím ................................................................................ 94 2. Ví dụ minh họa .............................................................................................. 95 BÀI 12 : GIAO TIẾP VỚI CỔNG LPT ................................................................. 98 1. Cơ bản về cổng LPT ...................................................................................... 98 2. Ví dụ minh họa ............................................................................................ 102 BÀI 13 : GIAO TIẾP MÁY TÍNH ....................................................................... 104 1. Cơ bản về giao tiếp RS232 .......................................................................... 104 2. Cách cấu hình module UART ..................................................................... 106 3. Ví dụ. ........................................................................................................... 107 BÀI 14 : GIAO TIẾP VỚI GLCD ........................................................................ 114 3
  5. 1. Cơ bản về GLCD ......................................................................................... 114 2. Ví dụ minh họa ............................................................................................ 120 BÀI 15 : GIAO TIẾP VỚI ADC........................................................................... 123 1. Cơ bản về ADC ........................................................................................... 123 2. Ví dụ minh họa ............................................................................................ 127 4
  6. BÀI 1 : GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 - Giới thiệu chung về vi điều khiển. - Giới thiệu về vi điều khiển 8051, P89V51RB2. - Lập trình cho P89V51RB2. 1. Giới thiệu về vi điều khiển Khái niệm vi điều khiển (microcontroller – MC) đã khá quen thuộc với các sinh viên CNTT, điện tử, điều khiển tự động cũng nhƣ Cơ điện tử… Nó là một trong những IC thích hợp nhất để thay thế các IC số trong việc thiết kế mạch logic. Ngày nay đã có những MC tích hợp đủ tất cả các chức năng của mạch logic. Nói nhƣ vậy không có nghĩa là các IC số cũng nhƣ các IC mạch số lập trình đƣợc khác nhƣ PLC… không cần dùng nữa. MC cũng có những hạn chế mà rõ ràng nhất là tốc độ chậm hơn các mạch logic… MC cũng là một máy tính – máy tính nhúng vì nó có đầy đủ chức năng của một máy tính. Có CPU, bộ nhớ chƣơng trình, bộ nhớ dữ liệu, có I/O và các bus trao đổi dữ liệu. Cần phân biệt khái niệm MC với khái niệm vi xử lý (microprocessor – MP) nhƣ 8088 chẳng hạn. MP chỉ là CPU mà không có các thành phần khác nhƣ bộ nhớ I/O, bộ nhớ. Muốn sử dụng MP cần thêm các chức năng này, lúc này ngƣời ta gọi nó là hệ vi xử lý (microprocessor system). Do đặc điểm này nên nếu để lựa chọn giữa MC và MP trong một mạch điện tử nào đó thì tất nhiên ngƣời ta sẽ chọn MC vì nó sẽ rẻ tiền hơn nhiều do đã tích hợp các chức năng khác vào trong chip. Vậy để một vi điều khiển chạy đƣợc thì cần những điều kiện gì : 5
  7. - Thứ nhất là nguồn cấp, nguồn cấp là cái đầu tiên, cơ bản nhất trong các mạch điện tử, và vấn đề về nguồn là 1 trong những vấn đề rất đau đầu. Không có nguồn thì không thể gọi là 1 mạch điện đƣợc. Nguồn cấp cho vi điều khiển là nguồn 1 chiều. - Thứ hai là mạch dao động, mạch dao động để làm gì ? Giả sử các bạn lập trình cho con 8051 : đến thời điểm A làm 1 công việc gì đó, thế thì nó lấy cái gì để xác định đƣợc thời điểm nào là thời điểm A ? Đó chính là mạch dao động. Ví dụ nhƣ mọi ngƣời đều thống nhất vào một giờ chuẩn để làm việc. Cả hệ thống vi điều khiển cũng vậy, cả hệ thống khi đó đều lấy xung nhịp clock – xung nhịp mạch dao động làm xung nhịp chuẩn để hoạt động. - Thứ ba là ngoại vi, ngoại vi ở đây là các thiết bị để giao tiếp với vi điều khiển để thực hiện 1 nhiệm vụ nào đó mà vi điều khiển đƣa ra. Ví dụ nhƣ các bạn muốn điều khiển động cơ 1 chiều, nhƣng vì vi điều khiển chỉ đƣa ra các mức điện áp 0-5V, và dòng điều khiển cỡ mấy chục mA, với nguồn cấp này thì ko thể nối trực tiếp động cơ vào vi điều khiển để điều khiển, mà phải qua 1 thiết bị khác gọi là ngoại vi, chính xác hơn ở đây là driver, ngƣời ta dùng driver để có thể điều khiển đƣợc các dòng điện lớn từ các nguồn điện nhỏ. Các bàn phím, công tắc… là các ngoại vi. - Thứ 4 là chƣơng trình, ở đây là file .hex để nạp cho vi điều khiển, chƣơng trình chính là thuật toán mà bạn triển khai thành các câu lệnh rồi biên dịch thành mã hex để nạp vào vi điều khiển. Các công cụ để học 8051 : - Ngôn ngữ lập trình : C, ASM… - Phần mềm lập trình : Keil C, Read51… - Mạch nạp : STK200, Burn-E… - Mạch phát triển : Board trắng, phần mềm mô phỏng, kit… 6
  8. 2. Giới thiệu các loại chip 8051 - 8051 đƣợc lần đầu tiên đƣợc sản xuất bởi Intel năm 1980. - Cho đến nay, 8051 đã đƣợc phát triển bởi nhiều nhà sản xuất nhƣ Atmel, Philip… thành nhiều phiên bản khác nhau, dựa trên core 8051 : AT89C51, AT89C52, P89V51Rx… - Dòng P89V51RB2 đƣợc sản xuất bởi Philips. 3. Giới thiệu về P89V51RB2 Đây là dòng vi điều khiển đƣợc sản xuất bởi Philips (NXP), mang tất cả các đặc điểm của dòng 8051, ngoài ra, còn có thêm một số tính năng khác mà 8051 không có. Sau đây là các tính năng của P89V51RB2 : - Có 16KB Flash, 1024B Ram. - Cho phép chọn lựa 2 chế độ clock, ở chế độ bình thƣờng, chip chạy với tốc độ nhƣ 8051 (12 chu kì clock trên một chu kì máy), ở chế độ X2, chip chạy với tốc độ 6 chu kì clock trên 1 chu kì máy. - Hỗ trợ cả chế độ nạp nối tiếp (ISP) và nạp song song. - Hỗ trợ chế độ IAP : Cho phép cấu hình lại bộ nhớ flash trong khi chip đang chạy. - Điện áp hoạt động từ 0 đến 5V, tần số hoạt động lên tới 40MHz. - Hỗ trợ giao tiếp UART và SPI. - Có module Capture/Compare/PWM. - Có 4 cổng, mỗi cổng 8 bit. - Ba timer/counter 16 bit. - Hỗ trợ watdog. - 8 nguồn ngắt với 4 mức ƣu tiên. - Hai thanh ghi DPTR Sau đây là sơ đồ khối của P89V51RB2 : 7
  9. Mô tả chân của P89V51RB2 : Sơ đồ chân : 8
  10. - Cổng P0: Bình thƣờng đây là cổng ra. Để có thể vừa làm đầu ra, vừa làm đầu vào thì mỗi chân của P0 phải đƣợc nối tới một điện trở treo 10 kΩ bên ngoài. Sở dĩ nhƣ vậy là vì cổng P0 có dạng cực máng hở, đây là điểm khác với các cổng P1, P2 và P3. Khi nối 8051 tới bộ nhớ ngoài, P0 trở thành bus địa chỉ và bus dữ liệu dồn kênh để tiết kiệm số chân [byte thấp của bus địa chỉ nếu là địa chỉ]. - Cổng P1: P1 chỉ có một công dụng là vào/ra. - Cổng P2: P2 có 2 công dụng, hoặc làm nhiệm vụ vào/ra hoặc là byte địa chỉ cao của bus địa chỉ 16-bit cho các thiết kế có bộ nhớ chƣơng trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài. - Cổng P3: P3 có 2 công dụng. Khi không hoạt động vào/ra, các chân của P3 có nhiều chức năng riêng (mỗi chân có chức năng riêng liên quan đến các đặc trƣng cụ thể của 8051). Bit Tên Địa chỉ Chức năng bit P3.0 RxD B0H Nhận dữ liệu của cổng nối tiếp P3.1 TxD B1H Phát dữ liệu của cổng nối tiếp 9
  11. P3.2 INT0 B2H Ngắt ngoài 0 P3.3 INT1 B3H Ngắt ngoài 1 P3.4 T0 B4H Chân vào của bộ định thời/đếm 0 P3.5 T1 B5H Chân vào của bộ định thời/đếm 1 P3.6 WR B6H Điều khiển ghi bộ nhớ dữ liệu ngoài P3.7 RD B7H Điều khiển đọc bộ nhớ dữ liệu ngoài Chức năng các chân của cổng P3. - Chân cho phép bộ nhớ chƣơng trình PSEN : 8051 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ chƣơng trình PSEN (Program Store Enable) là tín hiệu xuất. Đây là tín hiệu cho phép ta truy xuất bộ nhớ chƣơng trình ngoài. Chân này thƣờng nối với chân cho phép xuất OE (Output Enable) của EPROM (hoặc ROM) để cho phép đọc các byte lệnh. - Chân cho phép chốt địa chỉ ALE: Chân xuất tín hiệu cho phép chốt địa chỉ ALE (Address Latch Enable) để phân kênh (demultiplexing) bus dữ liệu và bus địa chỉ. - Chân truy xuất ngoài EA (External Access): Chân vào này có thể đƣợc nối với 5V (logic 1) hoặc với GND (logic 0). + Nếu chân này nối lên 5V, 8051 thực thi chƣơng trình trong ROM nội (chƣơng trình nhỏ hơn 4K/8K). + Nếu chân này nối với GND (và chân PSEN cũng ở logic 0), chƣơng trình cần thực thi chứa ở bộ nhớ ngoài. - Chân RESET (RST): Khởi động lại. Đây là chân vào, mức tích cực cao, bình thƣờng ở mức thấp. Khi có xung cao đặt tới chân này thì bộ vi điều khiển sẽ kết thúc mọi hoạt động hiện tại và tiến hành khởi động lại. Khi reset, mọi giá 10
  12. trị trên các thanh ghi sẽ bị xoá. Lƣu ý, để reset có hiệu quả, chân RST cần duy trì trạng thái tích cực mức cao tối thiểu 2 chu kỳ máy. - Các chân XTAL1 và XTAL2: Mạch dao động bên trong chip 8051 đƣợc ghép nối với thạch anh bên ngoài ở hai chân XTAL1 và XTAL2. 11
  13. 4. Lập trình cho P89V51RB2 Giới thiệu Để lập trình cho P89V51RB2, chúng ta có thể sử dụng 2 ngôn ngữ cơ bản là C và ASM. Nhìn chung, 2 ngôn ngữ này có những ƣu và nhƣợc điểm riêng. Ngôn ngữ ASM có ƣu điểm là gọn nhẹ, giúp ngƣời lập trình nắm bắt sâu hơn về phần cứng. Tuy nhiên lại có nhƣợc điểm là phức tạp, khó triển khai về mặt thuật toán, không thuận tiện để xây dựng các chƣơng trình lớn. Ngƣợc lại ngôn ngữ C lại dễ dung, tiện lợi, dễ debug, thuận tiện để xây dựng các chƣơng trình lớn. Nhƣng nhƣợc điểm của ngôn ngữ C là khó giúp ngƣời lập trình hiểu biết sâu về phần cứng, các thanh ghi, tập lệnh của vi điều khiển, hơn nữa, xét về tốc độ, chƣơng trình viết bằng ngôn ngữ C chạy chậm hơn chƣơng trình viết bằng ngôn ngữ ASM. Tùy vào từng bài toán, từng yêu cầu cụ thể mà ta chọn lựa ngôn ngữ lập trình cho phù hợp. Giới thiệu phần mềm Keil C Có rất nhiều phần mềm lập trình cho P89V51RB2, Keil C là một trong những phần mềm khá nổi tiếng và phổ biến. Trong khuôn khổ giáo trình này, chúng ta sẽ sử dụng phần mềm Keil C để lập trình cho P89V51RB2. Tạo Project mới trong Keil C : Để tạo 1 project mới chọn Project — New project nhƣ sau: 12
  14. Đƣợc hình sau: 13
  15. Đánh tên và chuyển đến thƣ mục bạn lƣu project. Bạn nên tạo mỗi một thƣ mục cho 1 project. Rồi chọn Save. 14
  16. 15
  17. Đƣợc hình sau: 16
  18. Trong này có 1 loạt các hãng điện tử sản xuất 8051. Bạn lập trình cho con nào thì chọn con đấy, kích chuột vào các dấu + để mở rộng các con IC của các hãng. Ở đây ta lập trình cho P89V51RB2 của hãng Philips nên ta chọn nhƣ sau: 17
  19. Khi chọn chip thì ngay lập tức cái bảng hiện ra 1 số tính năng của chíp các bạn có thể nhìn thấy. Nhập OK đƣợc cửa sổ nhƣ sau: 18
  20. Chúng ta sẽ chọn No. Vì nếu chọn Yes chỉ làm cho file lập trình của bạn thêm nặng . Chúng ta đƣợc cửa sổ sau: 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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