Rèn luyện kĩ năng lập trình trên các hệ thống sử dụng vi điều khiển trong các hệ thống công nghiệp và các ứng dụng trong sinh hoạt và sản xuất.. Công việc thực tế của đồ án sử dụng các
Trang 1Trường Đại Học Trà Vinh 1
LỜI CẢM ƠN
Trước hết chúng em xin cảm ơn Khoa Kỹ Thuật – Công nghệ đã tạo điều kiện
để chúng em có thể cọ xát với thực tế cũng như đánh giá được năng lực và trình độ của bản thân mình
Chúng em xin gửi lời cảm ơn chân thành đến Thầy VŨ THẾ ĐẢNG đã tận tình
hướng dẫn chỉ bảo chúng em trong suốt quá trình thực hiện đồ án
Và chúng em cũng xin gửi đến các Thầy Cô, bạn bè, và đồng nghiệp đã chân tình giúp đỡ và đóng góp ý kiến trong quá trình thực hiện đồ án này
Chúng em xin chân thành cảm ơn!
Bình Dương, tháng 05 năm 2012
Sinh viên thực hiện
Lê Duy Tân
Võ Duy Khánh
Trang 2LỜI NHẬN XÉT CỦA GIÁO VIÊN
Bình Dương, ngày tháng năm 2012
Ký tên
Vũ Thế Đảng
Trang 3Trường Đại Học Trà Vinh 3
MỤC LỤC LỜI CẢM ƠN 1
MỤC LỤC 3
LỜI NÓI ĐẦU 4
PHẦN GIỚI THIỆU 5
Chương I Đặt vấn đề 5
1 Tình hình nghiên cứu 5
2 Công việc thực tế của đồ án 5
3 Sơ đồ khảo sát, mô tả thực tế 6
PHẦN NỘI DUNG 7
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 7
A PHẦN CỨNG 7
I VI ĐIỀU KHIỂN 7
Tổng quan về vi điều khiển AT89S52 7
II CÁC THIẾT BỊ KHÁC TRONG MẠCH 20
2.1 Động cơ bước: 20
2.2 Optical encoder: 22
2.3 IC L298: 23
2.4 IC tạo ổn áp 7805( IC ổn áp 5v) 24
B PHẦN MỀM 26
1 Phần mềm mô phỏng mạch: Phần mềm Proteus 7 Professional 26
2 Phần mềm lập trình: KeilC compiler 27
CHƯƠNG 2 THIẾT KẾ TỔNG QUÁT PHẦN CỨNG 28
I HỆ THỐNG ĐIỀU KHIỂN 28
1 Sơ đồ khối tổng quát 28
2 Sơ lược chức năng của từng khối 28
2.1 Khối nguồn 28
2.2 Khối Reset 29
2.3 Khối điều khiển: 29
2.4 Khối tạo xung dao động: Sử dụng thạch anh 12MHz 30
2.5 Khối điều khiển trung tâm 30
2.6 Khối hiện thị LCD 30
2.7 Khối khuếch đại công suất 31
2.8 Khối chấp hành: động cơ DC 31
II CHƯƠNG TRÌNH ĐIỀU KHIỂN 32
1 Sơ đồ giải thuật của chương trình 32
2 Code lập trình cho vi điều khiển 35
3 Nguyên lý hoạt động của mạch 35
4 Sơ đồ mạch in 36
5 Board mạch hoàn chỉnh 37
PHẦN 3 KẾT LUẬN 38
I KẾT QUẢ ĐẠT ĐƯỢC 38
II HẠN CHẾ CỦA ĐỀ TÀI: 38
III HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI: 38
TÀI LIỆU THAM KHẢO 39
Trang 4LỜI NÓI ĐẦU
Công cuộc công nghiệp hóa hiện đại hóa đất nước đang diễn ra theo sự tiến
bộ của khoa học kĩ thuật Trước tình hình đó đã có khá nhiều yêu cầu cấp bách và cũng có những thách thức đặt ra cho giới trí thức
Điện tử và đặc biệt là vi xử lý là một lĩnh vực mới mà ở nước ta đang nghiên cứu và từng bước phát triển để ứng dụng vào quá trình sản xuất góp phần nâng cao năng suất lao động
Do vậy là sinh viên với chuyên ngành kỹ thuật điện tử cần phải nắm vững kiến thức và kĩ năng từ đơn giản đến phức tạp như trong các hệ thống điều khiển đóng mở cửa xe hơi, máy bay, robot, Rèn luyện kĩ năng lập trình trên các hệ thống sử dụng vi điều khiển trong các hệ thống công nghiệp và các ứng dụng trong sinh hoạt và sản xuất
Tuy nhiên do thời gian và kiến thức chúng em còn hạn chế nên không tránh khỏi
sự thiếu sót, mong Thầy Cô và các bạn thông cảm
Em xin chân thành cảm ơn !
Bình Dương, tháng 05 năm 2012
Nhóm sinh viên thực hiện !!!
Lê Duy Tân
Võ Duy Khánh
Trang 5Trường Đại Học Trà Vinh 5
Chính vì những lý do đó, nên nhóm em quyết định chọn đề tài “ Điều khiển động
cơ DC servo” để phát huy thêm khả năng của mình và góp phần nhỏ vào cho đời sống
xã hội
2 Công việc thực tế của đồ án
sử dụng các phần tử cơ bản như:
o Dùng mạch cầu H để khuếch đại công suất điều khiển động cơ (vì ngõ ra của vi điều khiển chỉ ở mức logic ≤ 5V không đủ để cấp cho động cơ hoạt đông) Người sử dụng sẽ điều chỉnh tốc độ của động cơ thông qua nút nhấn vào vi điều khiển, vận tốc của động cơ sẽ được hiển thị lên LCD thông qua encorder
Trang 63 Sơ đồ khảo sát, mô tả thực tế
BTN4
SW302 BUTTON
+
C101 10uF
U101 7805
SW301 BUTTON
VCC
D5
SW303 BUTTON
+
C102 10uF
MCU201
AT89S52
29 40
1 3 5 7
21 23 25 27
10 12 14 16
PSEN ALE/PROG VCC
T2/P1.0 T2X/P1.1 P1.2 P1.4 (MOSI) P1.5 (SCK) P1.7
A8/P2.0 A10/P2.2 A12/P2.4 A14/P2.6
P3.0/RXD P3.1/TXD P3.2/INT0 P3.4/T0 P3.6/WR P3.7/RD
BUTTON
U401 L298
9 4
5 10 6 11 1 15
2 3 13 14
V V
IN1 IN3 ENA SENSA
OUT1 OUT2 OUT3 OUT4
Trang 7Trường Đại Học Trà Vinh 7
PHẦN NỘI DUNG
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
I VI ĐIỀU KHIỂN
Tổng quan về vi điều khiển AT89S52
Vi điều khiển 89S52 là một vi điều khiển của hãng Atmel, dung CMOS có công suất thấp, hiệu suất cao Với
8 KB Flash Memory
256 Byte RAM nội
4 Port xuất nhập I/O 8 bit
2 con trỏ dữ liệu, 3 bộ định thời timer/counter 16 bit
1 kiến trúc 6 vector ngắt với 2 mức, 1 bộ dao động và 1 mạch xung clock Giao tiếp nối tiếp
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoài
Xử lý Boolean ( hoạt động trên bit đơn)
210 vị trí nhớ có thể định vị bit
4µs cho hoạt động nhân hoặc chia
Thêm vào đó, vi điều khiển 89S52 còn được thiết kế với logic tĩnh để có thể hoạt động đến tần số 0Hz và được hổ trợ 2 chế độ tiết kiệm năng lượng có thể lựa chọn được bằng phần mềm Chế độ không tải (Idle mode) dừng CPU trong khi cho phép RAM, Timer/Counter, Port nối tiếp và hệ thống ngắt tiếp tục hoạt động Chế độ tắt nguồn ( Power down mode) lưu trữ dữ liệu trong RAM nhưng đóng băng bộ dao động, dừng hoạt động các chức năng khác của Chip cho đến khi ngắt xảy ra hoặc phần cứng được Reset
Trang 82.1 Sơ đồ chân AT89S52
XTAL2 18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P1.1/T2EX 2
P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
Trang 9Trường Đại Học Trà Vinh 9
Hình 4 Sơ đồ khối của bộ vi điều khiển AT 89S52
Trang 10Chức năng các chân IC AT89S52:
Chân 29 (PSEN – Program Store Enable): là chân tín hiệu ngỏ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến
chân OE của Eprom, cho phép đọc các byte mã lệnh
Chân 30 (ALE: Adress Latch Enable) là tín hiệu điều khiển xuất ra, nó cho phép phân kênh bus địa chỉ và bus dữ liệu của port 0
Chân 31 (EA: Eternal Acess) được đưa xuống thấp cho phép chon bộ nhớ
mã ngoài
32 chân còn lại chia làm 4 cổng vào ra:
Vào ra tức là có thể dùng chân đó để đọc mức logic
Port 0: từ chân 32 đến chân 39 tương ứng là các chân P0_0 đến P0_7, có 2
chức năng:
• Trong thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng, có chức năng như đường I/O
byte thấp vừa là bus dữ liệu để truy cập bộ nhớ ngoài
Port 1: từ chân 1 đến chân 9 tương ứng là các chân P1_0 đến P1_7
Port 2: từ chân 21 đến chân 28 tương ứng là các chân P2_0 đến P2_7: là
Port có tác dụng kép như các đường I/O hoặc là byte cao (A8 – A15) của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng
Port 3: từ chân 10 đến chân 17 tương ứng là các chân P3_0 đến P3_7P3.0 –
RxD : chân nhận dữ liệu nối tiếp khi giao tiếp RS232(Cổng COM) P3.1 _ TxD : phần truyền dữ liệu nối tiếp khi giao tiếp RS232
P3.2 _ INTO : interrupt 0 , ngắt ngoài 0
P3.3 _ INT1: interrupt 1, ngắt ngoài 1
P3.4 _T0 : Timer0 , đầu vào timer0
P3.5_T1 : Timer1, đầu vào timer 1
P3.6_ WR: Write, điều khiển ghi dữ liệu
P3.7 _RD: Read , điều khiển đọc dữ liệu
Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK Tần
số thạch anh thường được dùng trong các ứng dụng là : 11.0592Mhz(giao tiếp với cổng com máy tính) và tần số tối đa 24Mhz Tần số càng lớn VĐK xử lý càng nhanh
Chân 9 (RST – Reset): Khi tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điện cho hệ thống thì mạch tự động reset
Trang 11Trường Đại Học Trà Vinh 11
Trạng thái tất cả các thanh ghi của 8051 sau khi reset:
Đếm chương trình Tích lũy
B PSW
SP DPTR Port 0-3
IP
IE Các thanh ghi định thời SCON
SBUF PCON(HMOS) PCON(CMOS)
0000H 00H
00H
00H 07H 0000H FFH XXX00000B 0XX00000B 00H
00H 00H 0XXXXXXB 0XXX0000B
Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt lại 0000H Khi Reset trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ đầu tiên trong bộ nhớ chương trình: địa chỉ 0000H, nội dung của RAM trên chip không bị thay đổi bởi lệnh Reset
Chân 18, 19(XTAL1,XTAL2): nối với thạch anh tạo thành mạch tạo dao động cho VĐK Tần số thạch anh thường dùng trong các ứng dụng là : 11.0592Mhz(giao tiếp với cổng com máy tính) và 12Mhz Tần số tối đa 24Mhz Tần số càng lớn VĐK xử lí càng nhanh
+5V
+5V
100
8,2K 10UF
Hình 5 Mạch Reset hệ thống
Trang 12Chân 40, 20 ( VCC, GND): cấp nguồn và nối đất cho vi điều khiển
2.2 Tổ chức bộ nhớ bên trong vi điều khiển 89S52
RAM bên trong 89S52 được phân chia như sau:
Các bank thanh ghi có địa chỉ tử 00H đến 1FH
RAM truy xuất từng bit có địa chỉ 20H đến 2FH
RAM đa dụng từ 30H đến 7FH
Các thanh ghi có chức năng đặc biệt tử 80H đến FFH bao gồm:
Hình 6 Xung dao động thạch anh
Trang 13Trường Đại Học Trà Vinh 13
Bảng tóm tắt các vùng nhớ của 8051
F0 F7 F6 F5 F4 F
3 F2 F1 F0 B
RAM đa dụng
E0 E7 E6 E5 E4 E
3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58
23 1F 1E 1D 1C 1B 1A 19 18 8D không được địa chỉ hóa bit TH1
22 17 16 15 14 13 12 11 10 8C không được địa chỉ hóa bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B không được địa chỉ hóa bit TL1
20 07 06 05 04 03 02 01 00 8A không được địa chỉ hóa bit TL0
10
00 ( mặc định cho R0-R7) 80 87 86 85 84 83 82 81 80 P0
Địa chỉ
Địa chỉ Byte
Trang 143 Hoạt động định thời
3.1 Giới thiệu
Các bộ định thời (Timer) được sử dụng rộng rãi trong các ứng dụng đo lường và điều khiển Tùy thuộc vào ứng dụng đầu vào của bộ định thời có thể là nguồn xung lấy
từ xung nhịp của vi điều khiển hoặc nguồn xung từ bên ngoài đưa đến
Vi điều khiển họ 8051 có ba bộ định thời 16 bit trong đó hai bộ Timer 0 và Timer 1
có bốn chế độ hoạt động, còn Timer 2 có ba chế độ hoạt động
3.2 Các thanh ghi của bộ định thời
3.2.1 Các thanh ghi của Timer 0 và Timer 1
dùng để đặt chế độ làm việc cho Timer 0 và Timer 1
C/T = 1: Đếm sự kiện C/T = 0: Ghi giờ đều đặn
điều khiển cho Timer 0 và Timer 1
Address
Description
cứng khi có tràn, được xóa bởi phần mềm hoặc bởi phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt
xóa bằng phần mềm để điều khiển cho Timer chạy/dừng
Trang 15Trường Đại Học Trà Vinh 15
3.2.2 Các thanh ghi của Timer 2
giá trị đếm của Timer 2, còn RCAP2H và RCAP2L chứa giá trị cần nạp lại của Timer
2
3.3 Chế độ của bộ định thời
3.3.1 Các chế độ của Timer 0 và Timer 1
- Mode 0 (mode Timer 13 bit): là chế độ định thời 13 bit, chế độ này tương thích
với các bộ vi điều khiển trước đó, trong các ứng dụng hiện nay, chế độ này không còn thích hợp
- Mode 1 (Mode Timer 16 bit): trong chế độ 1, bộ Timer dùng cả 2 thanh ghi TH
và TL để chứa giá trị đếm, vì vậy chế độ này còn được gọi là chế độ định thời 16 bit
Trang 16- Mode 2(chế độ 8 bit tự nạp lại): Timer dùng TL để chứa giá trị đếm và TH để
chứa giá trị nạp lại vì vậy chế độ này được gọi là chế độ tự nạp lại 8 bit Cách điều
khiển giống chế độ 1
- Mode 3(Chế độ tách Timer): Timer 0 được tách thành 2 bộ Timer hoạt động
độc lập, chế độ này sẽ cung cấp cho vi điều khiên thêm một Timer nữa
3.3.2 Các chế độ của Timer 2: có 3 chế độ hoạt động là chế độ thu nhận, tự nạp
lại và cung cấp tốc độ baud cho cổng nối tiếp
chế độ thu nhận (capture):
Trang 17Trường Đại Học Trà Vinh 17
chế độ tự nạp lại
- Chế độ cung cấp tốc độ Baud
Trang 184 Hoạt động truyền dữ liệu của Vi điều khiển 89S52
4.1 Giới thiệu
Truyền dữ liệu nối tiếp của MCS 51 có thể hoạt động ở nhiều kiểu riêng biệt trong phạm vi cho phép của tần số Dữ liệu dạng song song được chuyển thành nối tiếp
để truyền đi và nhận về dạng nối tiếp được chuyển thành song song
Chân TXD (P3.1) là ngõ xuất dữ liệu đi và chân RXD (P3.1) là ngõ nhận dữ liệu
4.2 Các thanh ghi cổng nối tiếp
Có 2 thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến cổng nối tiếp
là SBUF và SCON
chỉ 98H, là thanh ghi có định địa chỉ bit, chứa các bit trạng thái và các bit điều khiển liên quan tới cổng nối tiếp Các bit điều khiển đặt chế độ hoạt động cho cổng nối tiếp, các bit trạng thái báo cáo kết thúc việc phát hoặc thu một ký tự
khi chúng được nhận về từ cổng nối tiếp hoặc được truyền đi từ cổng nối tiếp, việc truyền nhận qua cổng nối tiếp thực chất là việc truy xuất thanh ghi này
4.3 Các chế độ hoạt động
- Chế độ 0: chế độ mà cổng nối tiếp được dùng như một hanh ghi dịch 8 bit Dữ
- Chế độ 1: Cổng nối tiếp hoạt động như bộ UART 8 bit có tốc độ thay đổi Dữ
liệu truyền nhận trên chân RXD và TXD, chế độ này cung cấp cho vi điều khiển một
công cụ giao tiếp với máy tính qua cổng COM
- Chế độ 2: Cổng nối tiếp hoạt động như bộ UART 9 bit, chế độ này thường
được dùng khi cần chèn thêm bit kiểm tra chẵn lẻ vào trong khung truyền để giảm bớt
lỗi trên đường truyền
- Chế độ 3: Là sự kết hợp của chế độ 1 và chế độ 2
4.4 Trao đổi dữ liệu qua cổng nối tiếp
Bao gồm các thao tác chính như sau:
Khởi tạo cổng nối tiếp
Kiểm tra cờ TI khi truyền và cờ RI khi nhận
Ghi đọc byte dữ liệu ở SBUF
5 Hoạt động ngắt và xử lý ngắt:
Trong thực tế người ta muốn tận dụng khả năng của CPU để làm thêm nhiều công việc khác nữa, chỉ khi nào có cần trao đổi dữ liệu mới cần yêu cầu CPU tạm dừng công việc hiện tại để phục vụ việc trao đổi dữ liệu Vì vậy 1 hệ thống sử dụng ngắt có thể đáp ứng nhanh các yêu cầu trao đổi dữ liệu trong khi vẫn có thể làm được các công việc khác
Tổ chức ngắt ở AT89S52 bao gồm:
Trang 19Trường Đại Học Trà Vinh 19
- Ngắt ngoài đến từ chân #INT0
- Ngắt ngoài đến từ chân #INT1
- Ngắt do bộ Timer0
- Ngắt do bộ Timer1
- Ngắt do bộ Timer2
- Ngắt do Port nối tiếp
Sáu nguồn ngắt này được xóa khi reset và được đặt riêng bằng phần mềm bởi các bit trong thanh ghi cho phép ngắt IE và thanh ghi ưu tiên ngắt IP
6 Phương pháp điều chế độ rộng xung (PWM)
chỉnh điện áp ra tải hay nói cách khác là phương pháp điều chế dựa trên sự thay đổi độ
rộng của chuỗi xung vuông dẫn đến sự thay đổi điện áp ngõ ra
rộng như mong muốn
7 Giải thuật điều khiển PID
- PID là viết tắt của Propotional (tỉ lệ), Integral (tích phân) và Derivative (đạo hàm)
Kp = hệ số tỉ lệ
Ki = hệ số tích phân
Kd = hệ số vi phân
Trang 20- Biến “e” là thành phần sai lệch, là hiệu giữa tín hiệu vào mong muốn và tín hiệu
ra thực tế Tín hiệu sai lệch (e) sẽ đưa tới bộ PID và bộ điều khiển tính toán cả thành phần tích phân lẫn vi phân của (e)
Thành phần tỉ lệ (Kp) có tác dụng làm tăng tốc độ đáp ứng của hệ thống, và
làm giảm chứ không triệt tiêu sai số xác lập của hệ
Thành phần tích phân (Ki) có tác dụng triệt tiêu sai số xác lập nhưng có thể
cực, động cơ hai cực và động cơ nhiều pha
(C), khi sử dụng thì đầu nối chung (C) được nối vào dương nguồn và các cuộn
được kích theo thứ tự
đồ (hình bên dưới), với 1 đầu nối trung tâm trên các cuộn Khi dùng, các đầu nối trung tâm thường được nối vào cực dương nguồn và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều tử trường bởi cuộn đó
Hình 7 Động cơ biến từ trở