Tải bản đầy đủ (.pdf) (129 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.09 MB, 129 trang )

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


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


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. Ngun 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


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


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


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



- 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 tố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


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, ngồ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


Mô tả chân của P89V51RB2 :
Sơ đồ chân :

8


- 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 ngồi
hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngồ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


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 ngồ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



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


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 tố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 khn 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


Đƣợc hình sau:

13


Đá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


15


Đƣợc hình sau:

16


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



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


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


Để tạo 1 file code các bạn chọn File — New hoặc ấn Ctrl+N. Nhƣ sau:

20


Đƣợc cửa sổ nhƣ sau:

21


Cho cửa sổ Text 1 to ra đƣợc nhƣ sau:

22


Tiếp theo bạn chọn File — Save As… hoặc Ctrl+S. Để nhớ file mặc dù chƣa
có gì. Nhƣ sau:


23


24


×