Đồ án Thiết kế, chế tạo và điều khiển tay máy

MỤC LỤC

Lời cảm ơn.i

Tóm tắt đề tài.ii

Mục lục .iii

Chương 1 TỔNG QUAN.1

1.1 Định nghĩa.1

1.2 Phân loại và ứng dụng.2

1.2.1 Robot thế hệ thứ nhất.2

1.2.2 Robot thếhệ thứ hai.2

1.2.3 Robot thếhệ thứ ba.2

1.2.4 Robot thếhệ thứ tư.3

1.2.5 Robot thếhệ thứnăm.3

Chương 2 NHIỆM VỤ CỦA LUẬN VĂNTỐT NGHIỆP.5

Chương 3 ĐỘNG HỌC TAY MÁY.6

3.1 Giới thiệu về tay máy.6

3.1.1 Phânloại tay máy theo chuyển động .6

3.1.2 Các công thức toán học liênquan.7

3.1.2.1 Hệ tọa độ.7

3.1.2.2 Chuyển đổi hệ tọa độ.8

3.1.3 Phântích động học tay máy bằngphương pháp ma trận.8

3.1.4 Mô tả chuyển động với phương pháp tọa độthuần nhất .11

3.1.4.1 Giới thiệu phương pháp tọa độ thuần nhất .11

3.1.4.2 Ma trận DH tuyệtđối.12

3.1.4.3 Ma trận DH tương đối.13

3.1.4.4 Ma trận DH quay.13

3.1.4.5 Ma trận DH tịnh tiến.13

3.2 Bài toán động học thuận .14

3.3 Bài toán động học ngược. 15

3.4 Kết luận.15

Chương 4 THIẾT KẾ TAY MÁY .16

4.1 Giới thiệu.16

4.1.1 Các góc của tay máy.18

4.1.2 Các giới hạn củagóc.18

4.1.3 Khônggian làm việc của tay máy.18

4.1.4 Các ma trận DH liênquan.19

4.2 Các phương pháp vẽ.20

4.2.1 Vẽ điểm trên mặt phẳng XY.20

4.2.2 Vẽ điểm trên mặtphẳng nghiêng một góc?.22

4.2.3 Vẽ điểm trong không gian.24

4.3 Kết luận.25

Chương 5 ĐỘNG CƠ RC SERVO.26

5.1 Giới thiệu về động cơ RC Servo.26

5.2 Cấu tạo động cơ RC Servo.27

5.3 Nguyên lý hoạt động của động cơ RC Servo.29

5.4 Kết luận.30

Chương 6 VI XỬ LÝ AVR-AT90S2313.31

6.1 Giới thiệu chung về họ vi xử lý AVR.31

6.1.1 Đặc tính kỹ thuật của AVR-AT90S2313.31

6.1.2 Sơ đồchân.32

6.2 Cấu trúc của AVR.32

6.2.1 Thanh ghi(register).34

6.2.2 Bộ định thời (timer).35

6.2.3 UART.35

6.2.3.1 Bộ truyền dữ liệu.36

6.2.3.2 Bộ nhận dữ liệu.37

6.2.4.3 Các thanh ghiliên quan.38

6.2.4.4 Cách địnhtốcđộ BAUD.40

6.3 Các lệnh của AT90S2313 sử dụng trong luận văn.41

6.4 Nạp dữ liệu nối tiếp.48

6.5 Kết luận.50

Chương 7 VI XỬ LÝ AT89C2051.51

7.1 Giới thiệu về AT89C2051.51

7.2 Mô tả các chân của AT89C2051.52

7.3 Sơ đồ và nguyên lý nạp chương trìnhcho AT89C2051.53

7.3.1 Sơ đồ mạch nạp cho AT89C2051.53

7.3.2 Nguyên lý nạp chương trình cho AT89C2051.54

7.4 Kết luận.55

Chương 8 THIẾT BỊ HIỂN THỊ LCD.56

8.1 Giới thiệu về LCD 1602A.56

8.2 Bảng mã lệnh để lập trìnhLCD 1602A.58

8.3 Sơ đồ khối giải thuật lập trình LCD 1602A.62

8.3.1 Giải thuật lập trình với 8-bit data.62

8.3.2 Giải thuật lập trình với 4-bit data.63

8.4 Kết luận.66

Chương 9 ĐIỀU KHIỂN BẰNG CỔNG NỐI TIẾP.67

9.1 Giới thiệu.67

9.2 Giao tiếp với máy vi tính.67

9.2.1 Chuẩn giao tiếp RS-232.68

9.2.1.1 Các yêu kỹ thuật của chuẩn RS-232 .68

9.2.1.2 Sơ đồ chân ra trên PC.68

9.2.2 Các thanh ghivà địa chỉ.70

9.2.2.1 Thanh ghi cho phép ngắt(IER).70

9.2.2.2 Thanh ghi điều khiển đường dẫn (LCR).71

9.2.3 Giao tiếp giữa PC với AT89C2051.72

9.2.3.1 Khung truyền dữ liệu.72

9.2.3.2 Sơ đồ mạch nối AT89C2051 vớiRS-232.72

9.3 Giao tiếp nối tiếp giữa AT89C2051 và AT90S2313 .73

9.3.1 Thiết lập tốc độ BAUD 4800.73

9.3.1.1 Thiết lập tốc độ BAUD cho AT89C2051.73

9.3.1.2 Thiết lập tốc độ BAUD cho AT90S2313.73

9.3.2 Chương trình truyền (AT89C2051) và nhận (AT90S2313) dữ liệu .73

9.3.2.1 Chương trình con truyền dữ liệu viết cho AT89C2051.73

9.3.2.2 Chương trình con nhận dữ liệu viếtcho AT90S2313.74

9.4 Kết luận.74

Chương 10 TRUYỀN NHẬN DỮ LIỆU BẰNG HỒNG NGOẠI .75

10.1 Giới thiệu về hồng ngoại (IR).75

10.1.1 Định nghĩa.75

10.1.2 Ưu và nhược điểm.75

10.2 Truyền tín hiệu hồng ngoại.76

10.2.1 Giới thiệu.76

10.2.2 Nguyên lý truyền dữ liệu bằng hồng ngoại.76

10.2.3 Khung truyền dữ liệu.77

10.2.3.1 Khung truyền 1 bytedữ liệu.77

10.2.3.2 Thời gian của khung truyền.77

10.2.4 Tạo tần số mangbằng AT89C2051.77

10.2.5 Sơ đồ nguyênlý mạch phát .78

10.2.6 Sơ đồ khối của truyền một byte dữ liệu (10 bit).79

10.3 Nhận dữ liệu bằng hồng ngoại.80

10.3.1 Cảm biến thu nhận tín hiệu hồng ngoại.80

10.3.1.1 Các đặc tính về cảmbiến.80

10.3.1.2 Sơ đồ khối bên trong củacảm biến.82

10.3.2 Xử lý dữ liệu nhận được.82

10.4 Sơ đồ khối tổng quát củaviệc truyền nhận dữ liệu.84

10.5 Kết luận.84

Chương 11 GIAO TIẾP VỚI BÀN PHÍMAT.85

11.1 Khái quát về lý thuyết của bàn phím giao tiếp với PC.85

11.2 Các mã lệnh để giao tiếp với bàn phím.86

11.2.1 Các mã lệnh được gửi tớibàn phím.86

11.2.2 Các mã lệnh được gửi đi từ bàn phím.86

11.3 Các mã quét của bàn phím AT.86

11.4 Cổngnối của bàn phím .87

11.5 Lập trình giao tiếp với bàn phím.88

11.5.1 Lập trình gửi lệnh từ bàn phím đến bộđiều khiển.88

11.5.2 Lập trình gửi lệnh từ bộđiều khiển đếnbàn phím.88

11.6 Kết luận.89

Chương 12 ĐIỀU KHIỂN IDE.90

12.1 Giới thiệu về đĩa cứng.90

12.1.1 Lịchsử phát triển của đĩa cứng.90

12.1.2 Cấutrúc vật lýcủa một đĩa cứng.91

12.1.3 Hoạt động.92

12.1.4 Chuẩn IDE.92

12.2 Giải thuật điều khiển.93

12.3 Chương trình điều khiển và sơđồ nguyên lý mạch điều khiển .96

12.4 Kết luận.96

Chương 13 CHƯƠNG TRÌNH ĐIỀU KHIỂN.97

13.1 Giới thiệu về chương trình điều khiển.97

13.2 Cấu trúc của chương trình.99

13.2.1 Chương trình con vẽ điểm.101

13.2.2 Hàmtính toáncác góc củatay máy .102

13.2.3 Hàmgởi các dữ liệu ra port nối tiếp.103

13.2.4 Hàmhiển thị tay máy ra mànhình.104

13.3 Kết luận.104

Chương 14 THIẾT KẾ MẠCH ĐIỀU KHIỂN TAY MÁY.105

14.1 Thiết kế mạch điều khiển tay máy.105

14.1.1 Phương án một.105

14.1.2 Phương án hai.106

14.1.3 Phương án ba.107

14.1.4 Phương án bốn.108

14.1.5 Kết luận .108

14.2 Phần lập trình cho AT90S2313 để điều khiển RC Servo.108

14.3 Kết luận.113

Chương 15 KẾT LUẬN.114

15.1 Những vấn đề đã giải quyết được.114

15.2 Hướng phát triển của đề tài.115

TÀI LIỆUTHAM KHẢO.116

 

pdf115 trang | Chia sẻ: maiphuongdc | Lượt xem: 1633 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế, chế tạo và điều khiển tay máy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ddd KKKK Cú pháp CPI Rd, K (16 ≤ d ≤ 31, 0 ≤ K ≤ 255) Hoạt động Rd - K Các cờ ảnh hưởng Z, C, N, V, H. ™ CPSE – So sánh và bỏ qua nếu bằng So sánh nội dung thanh ghi Rd và Rr, và bỏ qua lệnh kế tiếp nếu Rd=Rr. Lệnh này không làm thay đổi nội dung thanh ghi. Số byte 2 Số chu kỳ 1/2 Mã đối tượng 0001 00rd dddd rrrr Cú pháp CPSE Rd, Rr (0 ≤ d ≤ 31, 0 ≤ r ≤ 31) Hoạt động If Rd = Rr then PC ← PC + 2 (hoặc 3), else PC ← PC + 1 GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 44 ™ IN – Lưu giá trị của một vị trí I/O vào thanh ghi Lưu dữ liệu từ một thiết bị xuất nhập (như Port, Timer…) vào thanh ghi Rd. Số byte 2 Số chu kỳ 1 Mã đối tượng 1011 0AAd dddd AAAA Cú pháp IN Rd,A (0 ≤ d ≤ 31, 0 ≤ A ≤ 63) Hoạt động Rd ← I/O(A) ™ LD – Nạp gián tiếp nội dung vào thanh ghi thông qua thanh ghi con trỏ (X, Y, Z). Nội dung các thanh ghi con trỏ X, Y, Z có thể không đổi hoặc có thể tăng hoặc giảm một đơn vị sau khi lệnh được thực thi. Chú ý rằng chỉ có nội byte thấp của thanh ghi được cập nhật, còn byte cao thì không. Số byte 2 Số chu kỳ 2 Mã đối tượng Khi sử dụng thanh ghi con trỏ X (1) 1001 000d dddd 1100 (2) 1001 000d dddd 1101 (3) 1001 000d dddd 1110 Khi sử dụng thanh ghi con trỏ Y (4) 1000 000d dddd 1000 (5) 1001 000d dddd 1001 (6) 1001 000d dddd 1010 Khi sử dụng thanh ghi con trỏ Z (7) 1000 000d dddd 0000 (8) 1001 000d dddd 0001 (9) 1001 000d dddd 0010 Cú pháp (1) LD Rd, X ( 0 ≤ d ≤ 31) (2) LD Rd, X+ ( 0 ≤ d ≤ 31) (3) LD Rd, -X ( 0 ≤ d ≤ 31) GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 45 (4) LD Rd, Y ( 0 ≤ d ≤ 31) (5) LD Rd, Y+ ( 0 ≤ d ≤ 31) (6) LD Rd, -Y ( 0 ≤ d ≤ 31) (7) LD Rd, Z ( 0 ≤ d ≤ 31) (8) LD Rd, Z+ ( 0 ≤ d ≤ 31) (9) LD Rd, -Z ( 0 ≤ d ≤ 31) Hoạt động (1) Rd ← (X) (2) Rd ← (X) X ← X+1 (3) X ← X-1 Rd ← (X) Cơ chế hoạt động tương tự với Y và Z ™ LDI – Nạp giá trị trực tiếp Nạp một hằng số 8-bit trực tiếp vào thanh ghi từ 16 đến 31 Số byte 2 Số chu kỳ 1 Mã đối tượng 1110 KKKK dddd KKKK Cú pháp LDI Rd, K (16 ≤ d ≤ 31, 0 ≤ K ≤ 255) Hoạt động Rd ← K ™ MOV – Sao chép thanh ghi Lệnh này sao chép nội dung của thanh ghi Rr vào thanh ghi Rd. Thanh ghi Rr không thay đổi trong khi thanh ghi Rd được lưu giá trị của thanh ghi Rr. Số byte 2 Số chu kỳ 1 Mã đối tượng 0010 11rd dddd rrrr Cú pháp MOV Rd,Rr (0 ≤ d ≤ 31, 0 ≤ r ≤ 31) Hoạt động Rd ← Rr ™ ORI – Or với một hằng số Thực hiện phép OR logic giữa một thanh ghi Rd và một hằng số, kết quả lưu vào thanh ghi Rd. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 46 Số byte 2 Số chu kỳ 1 Mã đối tượng 0110 KKKK dddd KKKK Cú pháp ORI Rd,K (16 ≤ d ≤ 31, 0 ≤ K ≤ 255) Hoạt động Rd ← Rd v K Các cờ ảnh hưởng: Z, N, V. ™ RJMP – Nhảy không điều kiện Nhảy đến một địa chỉ trong khoảng PC – 2K + 1 đến PC + 2K (Word). Với ngôn ngữ Assembler, thì K được thay bằng một nhãn. Số byte 2 Số chu kỳ 1 Mã đối tượng 1100 kkkk kkkkk kkkkk Cú pháp RJMP k (-2K ≤ k ≤ 2K) Hoạt động PC ← PC + k + 1 ™ SBIS – Bỏ qua nếu bit trong thanh ghi I/O được set Lệnh này kiểm tra một bit lẻ trong một thanh ghi I/O và bỏ qua lệnh kế tiếp nếu bit đó được set. Lệnh này chỉ thực hiện với các thanh ghi I/O thấp. Số byte 2 Số chu kỳ 1 Mã đối tượng 1001 1011 AAAA Abbb Cú pháp SBIS A,b (0≤ A ≤ 31, 0 ≤ b ≤ 7) Hoạt động If I/O(A.b) = 1 then PC ← PC + 2( or 3) else PC ← PC + 1 ™ SBIW – Trừ một hằng số (16 bit) Lấy một cặp thanh ghi trừ một hằng số (0-63), kết quả lưu vào cặp thanh ghi đó. Số byte 2 Số chu kỳ 2 Mã đối tượng 1001 0111 KKdd KKKK Cú pháp GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 47 SBIW Rd+1:Rd,K (d∈{24,26,28,30}, 0 ≤ K ≤ 63) Hoạt động Rd+1:Rd ← Rd+1:Rd -K Các cờ ảnh hưởng: Z, N, V, S, C. ™ ST – Lưu nội dung một thanh ghi vào ô nhớ được con trỏ dữ liệu trỏ tới (X,Y,Z). Nội dung các thanh ghi con trỏ X, Y, Z có thể không đổi hoặc có thể tăng hoặc giảm một đơn vị sau khi lệnh được thực thi. Chú ý rằng chỉ có nội byte thấp của thanh ghi được cập nhật, còn byte cao thì không. Số byte 2 Số chu kỳ 2 Mã đối tượng Khi sử dụng thanh ghi con trỏ X (1) 1001 001r rrrr 1100 (2) 1001 001r rrrr 1101 (3) 1001 001r rrrr 1110 Khi sử dụng thanh ghi con trỏ Y (4) 1000 001r rrrr 1000 (5) 1001 001r rrrr 1001 (6) 1001 001r rrrr 1010 Khi sử dụng thanh ghi con trỏ Z (7) 1000 001r Rrrr 0000 (8) 1001 001r Rrrr 0001 (9) 1001 001r Rrrr 0010 Cú pháp (1) ST X, Rr ( 0 ≤ r ≤ 31) (2) ST X+, Rr ( 0 ≤ r ≤ 31) (3) ST -X, Rr ( 0 ≤ r ≤ 31) (4) ST Y, Rr ( 0 ≤ r ≤ 31) (5) ST Y+, Rr ( 0 ≤ r ≤ 31) (6) ST -Y, Rr ( 0 ≤ r ≤ 31) (7) ST Z, Rr ( 0 ≤ r ≤ 31) GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 48 (8) ST Z+, Rr ( 0 ≤ r ≤ 31) (9) ST -Z, Rr ( 0 ≤ r ≤ 31) Hoạt động (2) (X) ← Rr (4) (X) ← Rr X ← X+1 (5) X ← X-1 (X) ← Rr Cơ chế hoạt động tương tự với Y và Z ™ STS – Lưu giá trị trực tiếp vào biến Lưu một byte từ một thanh ghi vào trong bộ nhớ (RAM nội). Số byte 4 Số chu kỳ 2 Mã đối tượng 0110 001d dddd 0000 kkkk kkkk kkkk kkkk Cú pháp STS k,Rr (0 ≤ r ≤ 31, 0 ≤ k ≤ 65535) Hoạt động (k) ← Rr ¾ Chú ý đối với các lệnh không đề cập đến các cờ ảnh hưởng, nghĩa là các lệnh đó không ảnh hưởng đến các cờ. 6.4 NẠP DỮ LIỆU NỐI TIẾP Chương trình có thể được nạp vào chip bằng chuẩn SPI trong khi chân RESET được kéo xuống mass. Chuẩn SPI dùng 3 chân: SCK, MOSI (nhập) và MISO (xuất). Sau khi chân RESET được kéo xuống mass, thì lệnh cho phép lập trình cần được thực hiện trước khi thực hiện việc xoá và nạp chương trình. Hình 6.8 Sơ đồ mạch đổ chương trình cho chip GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 49 Đối với EEPROM thì không cần thực hiện lệnh xóa vì điều này sẽ được thực hiện tự động. Lệnh xóa làm toàn bộ nội dung thành FFh. Hình 6.9 Giản đồ xung cho quá trình đổ dữ liệu vào chip ‰ Quá trình nạp chip a) Cấp nguồn cho chip (Vcc và GND) trong khi chân RESET và SCK xuống mass. b) Chờ ít nhất 20ms và cho phép nạp nối tiếp bằng cách gởi lệnh cho phép nạp tới chân MOSI (PB5). c) Nếu thiếu sự đồng bộ thì các lệnh nạp nối tiếp sẽ không được thực hiện. Khi đã có sự đồng bộ, thì byte thứ hai (53h) sẽ được gởi ngược trở lại trong khi byte thứ ba đang của lệnh cho phép nạp được gởi. Cho dù byte gởi về thứ hai (53h) có đúng hay không thì tất cả 4 byte cũng phải được truyền đi. Trong trường hợp byte thứ hai (53h) không được gởi về thì ta cấp một xung dương cho chân SCK và sau đó ta lại tiếp tục truyền lại lệnh lập trình. Quá trình này sẽ được lập đi lập lại trong 32 lần, nếu không thành công coi như việc lập trình chip bị hủy. d) Nếu lệnh xóa chip được thực hiện (khi lập trình Flash ROM) thì ta chờ tWD- ERASE (tối thiểu 8ms) sau lệnh này, tiếp tục cấp một xung dương cho chân RESET rồi quay lại bước hai. e) Flash ROM và EEPROM được nạp từng byte một bằng cách cung cấp vừa địa chỉ vừa dữ liệu trong cùng một lệnh ghi thích hợp. Đối với vùng nhớ trong EEPROM, thì lệnh xóa sẽ được thực hiện một cách tự động trước khi dữ liệu mới được ghi vào. Có thể sử dụng việc đọc các byte dấu hiệu trước khi truyền lệnh kế tiếp hoặc nếu không thì ta chờ tWD-PROG (tối thiểu 4ms) f) Bằng lệnh đọc ta có thể đọc lại nội dung trong bất kỳ ô nhớ nào thông qua chân MISO (PB6) để kiểm tra lại dữ liệu đã ghi. g) Khi kết thúc việc đổ chương trình, chân RESET được đưa lên mức cao để bắt đầu chế độ hoạt động bình thường. Bảng 6.2 Các lệnh dùng trong nạp chương trình cho chip Mã lệnh Lệnh Byte 1 Byte 2 Byte 3 Byte 4 Ghi chú Cho phép nạp 1010 1100 0101 0011 xxxx xxxx xxxx xxxx Lệnh thực thi khi chân GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 50 RESET → 0V Xóa chip 1010 1100 100x xxxx xxxx xxxx xxxx xxxx Xóa Flah và EEPROM Lệnh đọc Flash ROM 0010 H000 xxxx xxaa bbbb bbbb oooo oooo Đọc dữ liệu o từ flash ROM tại địa chỉ a:b Ghi vào Flash ROM 0100 H000 xxxx xxaa bbbb bbbb iiii iiii Ghi dữ liệu i vào Flash ROM tại địa chỉ a:b Lệnh đọc EEPROM 1010 0000 xxxx xxxx xbbb bbbb oooo oooo Đọc dữ liệu o từ EEPROM tại địa chỉ b Ghi vào EEPROM 1100 0000 xxxx xxxx xbbb bbbb iiii iiii Ghi dữ liệu I vào EEPROM tại địa chỉ b Ghi bit khóa 1010 1100 111x x21x xxxx xxxx xxxx xxxx Ghi bit khóa. 1,2=0 thì khóa chương trình Đọc các byte dấu hiệu 0011 0000 xxxx xxxx xxxx xxbb oooo oooo Đọc các byte dấu hiệu o tại địa chỉ b ¾ Chú thích: - a = bit địa chỉ cao - b = bit địa chỉ thấp - H = 0 – byte thấp, 1 – byte cao - o = dữ liệu nhận về - i = dữ liệu nạp vào - x = không quan tâm - 1 = bit khóa 1 - 2 = bit khóa 2 6.5 KẾT LUẬN Chương này chúng ta đã nắm khá rõ cấu trúc, cách lập trình cũng như các đặc tính nổi trội của chip AT90S2313. Dựa vào những điều này chúng ta có thể lập trình điều khiển các động cơ RC-Servo. Chương sau sẽ nói khái quát về họ vi xử lý MCS-51, cụ thể là vi xử lý AT89C2051. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 51 7 VI XỬ LÝ AT89C2051 7.1 GIỚI THIỆU VỀ AT89C2051 AT89C2051 là chip thuộc họ vi xử lý MCS-51 do hãng Atmel sản xuất. Chip AT89C2051 có các đặc tính kỹ thuật sau: o 2k flash ROM, 128 byte RAM. o 15 đường xuất nhập. o 1 port nối tiếp và hai bộ định thời 16 bit. o 6 nguồn tạo ngắt. o Một bộ so áp (Voltage Comparator). Ngoài ra so với chip AT89C51 (loại chip thường dùng phổ biến hiện nay) thì chip AT89C2051 có kích thước nhỏ gọn hơn (chỉ có 20 chân), dòng tải ở các chân xuất nhập cao (20mA). Còn về tập lệnh thì nó hoàn toàn giống AT89C51, do vậy cách viết chương trình ta có thể tham khảo ở chip AT89C51 [Sách họ vi điều khiển 8051 của Tống Văn On và Hoàng Đức Hải]. AT89C2051 còn được thiết kế có thể hoạt động ngay cả khi tần số xuống tới zero và nó còn cung cấp cho hai chế độ chọn mode tiết kiệm năng lượng bằng phần mềm. Ở chế độ nghỉ (IDLE), thì CPU sẽ ngưng hoạt động trong khi GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 52 cho phép RAM, bộ định thời, cổng nối tiếp, ngắt tiếp tục hoạt động. Còn ở chế độ nguồn giảm (Power Down) thì nội dung của RAM được lưu, còn bộ giao động thì “đóng băng” cho đến khi có một tín hiệu (mức cao trong 2 chu kỳ máy) ở chân Reset. 7.2 MÔ TẢ CÁC CHÂN CỦA AT89C2051 Hình 7.1 Cấu hình chân ra của chip AT89C2051 o Chân VCC Chân cung cấp điện. o GND Chân nối mass. o Port 1 Là port xuất nhập 8-bit hai chiều. P1.2-P1.7 thì có điện trở pull up ở bên trong, còn P1.0 và P1.1 đòi hỏi phải có điện trở pull up khi được sử dụng làm ngõ xuất tín hiệu. Còn khi dùng làm ngõ nhập thì chúng lần lượt trở thành các ngõ vào đảo và không đảo của bộ so áp. Port 1 còn được dùng để đưa mã lập trình cho chip cũng như đọc nội dung của chip. o Port 3 Là port xuất nhập 7-bit hai chiều đã có sẵn điện trở pull up ở bên trong. P3.6 là ngõ ra của bộ so áp, nhưng không thể sử dụng như một chân xuất nhập bình thường mà phải thông qua phần mềm. Port 3 ngoài được dùng như các chân chức năng (nối tiếp, ngắt) còn được dùng để đưa các tín hiệu điều khiển để lập trình cho chip. o RST GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 53 Ngõ vào reset. AT89C2051 sẽ bị reset khi chân này được đưa lên mức cao trong hai chu kỳ máy. o XTAL1 Ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõ vào đến mạch tạo xung clock bên trong chip. o XTAL2 Ngõ ra từ mạch khuếch đại đảo của mạch dao động. 7.3 SƠ ĐỒ VÀ NGUYÊN LÝ NẠP CHƯƠNG TRÌNH CHO AT89C2051 Trong luận văn này để thuận tiện cho việc lập trình cho AT89C2051, chúng ta cần làm một mạch nạp cho AT89C2051 bằng cổng song song thông qua 8255 và chương trình nạp được viết bằng Visual Basic. So với cách lập trình thông thường bằng cổng nối tiếp thì cách lập trình này nhanh hơn nhiều. 7.3.1 Sơ đồ mạch nạp cho AT89C2051 BASE1 A0 /WR /RD /RD U2 AT89C2051 1 5 4 12 13 14 15 16 17 18 19 2 3 6 7 8 9 11 RST/VPP XTAL1 XTAL2 P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.7 A1 VB1 SUB-D 25 13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1 A0 /WR U1 8255 34 33 32 31 30 29 28 27 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 RD WR A0 A1 RESET CS BASE2 VPP A1 D3 D6 D4 D5 D4 D0 D2 D7 D2 D0 D7 D3 D1 D6 D1 D5 Hình 7.2 Sơ đồ nguyên lý mạch nạp AT89C2051 bằng cổng song song GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 54 0 R7 1k Q1 2N1069 0 10uF 0 100uF R6 1k VPP 0 10uF 0 R8 1k 2 1 3 VOUT A D JVIN Q2 Q2N2906A0 LM7805 1 2 3 IN OUT G N D BASE2 R1 1k V1 15V 0 R5 10k BASE1 5V 0 Hình 7.3 Sơ đồ nguyên lý mạch nguồn cho mạch nạp 7.3.2 Nguyên lý nạp chương trình cho AT89C2051 Để nạp chương trình cho chip, trước hết ta cần phải xóa nội dung của nó (để toàn bộ nội dung của nó là FFh). Bên trong chip có một biến đếm địa chỉ của PEROM, biến này được reset về 00h khi có tín hiệu reset ở chân RST và tăng lên một khi có một xung dương được kích ở chân XTAL1. Để lập trình cho chip AT89C2051 ta làm theo các bước sau: 1. Cấp nguồn cho chân VCC và GND, cho chân RST và chân XTAL1 xuống mức thấp. 2. Cho chân RST và chân P3.2 lên mức cao. 3. Cung cấp các chân chọn mode lên các chân P3.3, P3.4, P3.5, P3.7 theo bảng 7.1. 4. Đưa dữ liệu lập trình ra Port1 của chip. 5. Cho chân RST lên mức áp lập trình là 12V. 6. Cấp một xung lên chân P3.2, lúc này quá trình đưa mã lập trình vào chíp được bắt đầu, thời gian này mất khoảng 1.2 ms. Ở đây ta chờ khoảng 1.25 ms cho an toàn (không dùng chế độ đọc lại để kiểm tra mà ta sẽ kiểm tra sau khi lập trình). 7. Cấp xung lên chân XTAL1 để tăng địa chi lên vị trí kế tiếp, tiếp tục đưa dữ liệu lập trình mới ra port1. 8. Lặp lại bước 6 cho tới khi biến đếm địa chi PEROM đến 2K hoặc đến hết chương trình cần nạp. 9. Cho chân XTAL1 và chân RST xuống mức thấp. 10. Ta cho đọc lại toàn bộ nội dung chip và so sánh với dữ liệu cần nạp và đưa ra thông báo cho người sử dụng biết kết quả. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 55 Bảng 7.1 Bảng các mode lập trình Chế độ RST/VPP P3.2/nPROG P3.3 P3.4 P3.5 P3.7 Ghi mã 12V L H H H Đọc mã H H L L H H Bit-1 12V H H H H Ghi khóa Bit-2 12V H H L L Xóa chip 12V H L L L Đọc byte dấu hiệu H H L L L L • Chú ý: - Lệnh xóa chip yêu cầu độ rộng xung nPROG là 10ms. - Chân P3.1 được kéo xuống thấp khi dữ liệu được nạp vào chip để chỉ ra rằng CPU đang bận. Ta có thể đọc chân này thay cho việc chờ 1.25ms. - Ở chế độ đọc nội dung của chip, thì dữ liệu nội dung của chip được đọc ở port1. 7.4 KẾT LUẬN Chương này chúng ta đã tìm hiểu về chip vi xử lý AT89C2051, là loại chip khá thông dụng, có kích thước nhỏ, thuận tiện cho việc dùng trong các ứng dụng mà không đòi hỏi phải dùng nhiều chân (như giải mã, phát hồng ngoại, giải mã bàn phím, …). Một trong những ứng dụng dùng AT89C2051 để điều khiển là giải mã hiển thị LCD sẽ được trình bày trong chương tiếp theo đây. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 56 8 THIẾT BỊ HIỂN THỊ LCD 8.1 GIỚI THIỆU VỀ LCD 1602A LCD 162A là một thiết bị ngoại vi có thể xuất (để hiện thị), nhập (đọc giá trị từ LCD về), có kích thước và sơ đồ chân như hình sau: Hình 8.1 Các thông số về kích thước của LCD + Thông số kỹ thuật của một ô chữ GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 57 Hình 8.2 Các thông số về kích thước ô chữ của LCD + Sơ đồ khối của LCD Hình 8.3 Sơ đồ khối của LCD Bảng 8.1 Các chân LCD (pinout) Chân số Ký hiệu Mức logic Chức năng 1 Vss 0V Mass 2 Vdd 5V Nguồn cung cấp 3 Vo -- Nguồn cung cấp cho chữ 4 RS H/L H: tín hiệu dữ liệu, L: tín hiệu cho lệnh 5 R/W H/L H: chế độ đọc, L: chế độ ghi 6 E H, H→L Tín hiệu cho phép 7..14 DB0..DB7 H/L Đường dữ liệu 15 LED+ 4.2V Cực dương đèn nền 16 LED- 0V Cực âm đèn nền + Một số đặc tính o Hiển thị: 16 x 2 hàng. o Bộ điều khiển: KS0066U hoặc tương đương. o Hỗ trợ đèn nền, đèn chữ. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 58 o Hỗ trợ bảng lệnh để lập trình . o Thời gian đáp ứng nhanh. + Sơ đồ mạch cấp nguồn 5V Với mạch này khi thay đổi biến trở, tức thay đổi áp Vo ta có thể chỉnh được mức độ tương phản của chữ xuất trên LCD. Hình 8.4 Sơ đồ nối mạch nguồn Còn đối với mạch cấp nguồn cho LED nền, ta có thể cấp trực tiếp hoặc dùng một biến trở để có thể điều chỉnh sáng tối khi cần. 8.2 BẢNG Mà LỆNH ĐỂ LẬP TRÌNH LCD 1602A GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy GVHD: TS. NGUYỄN VĂN GIÁP Trang 59 SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Mã lệnh Lệnh R S R/W D7 D6 D5 D4 D3 D2 D1 D0 Ghi chú Tmax với fpc hay fosc=270 KHz Xóa màn hình 0 0 0 0 0 0 0 0 0 1 Ghi “20H” vào DDRAM và đưa con trỏ địa chỉ về 0h 1.53ms Trở về đầu dòng 0 0 0 0 0 0 0 0 1 -- Đưa con trỏ về đầu dòng và con trỏ địa chỉ về 0. Nội dung hiển thị không mất 1.53ms Chọn chế độ nhập 0 0 0 0 0 0 0 1 I/D SH Thiết lập chiều chuyển động của con trỏ và cho phép xuất dịch toàn bộ; I/D: tăng, I/D: giảm, SH=1 thực hiện cùng với dịch màn hình 39µs Điều khiển hiển thị 0 0 0 0 0 0 1 D C B Chọn hiển thị toàn bộ màn hình (D), hiển thị con trỏ (C), và tắt/mở nhấp nháy (B) 39µs Con trỏ hoặc hiển thị 0 0 0 0 0 1 S/C R/L -- -- Di chuyển con trỏ và dịch toàn bộ nội dung hiển thị LCD mà không làm thay đổi nội dung. R/L=1: dịch phải, R/L=0: dịch trái, S/C=1: hiển thị dịch, S/C=0: di chuyển con trỏ 39µs Thiết lập kiểu truyền DATA 0 0 0 0 1 DL N F -- -- Qui định chiều dài dữ liệu (DL=1: 8bit, DL=0: 4bit), số hàng hiển thị (N=1: 2dòng, N=0: 1 dòng) và font chữ hiển thị (F=1: 5x10, F=0: 5x7) 39µs SET địa 0 0 0 1 AC AC AC AC AC AC Set lại địa chỉ CG RAM 39µs Trang 60 SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng chỉ CG RAM 5 4 3 2 1 0 SET địa chỉ DD RAM 0 0 0 AC 6 AC 5 AC 4 AC 3 AC 2 AC 1 AC 0 Set lại địa chỉ DD RAM 39µs Cờ đọc bận và địa chi’ 0 1 BF AC 6 AC 5 AC 4 AC 3 AC 2 AC 1 AC 0 Cờ BF=1 chỉ rằng lệnh đang được thực hiện bên trong LCD. Nội dung bộ đếm địa chỉ cũng có thể đọc. 0µs Ghi Data vào RAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0 Ghi Data vào RAM (DD/CG RAM) 43µs Đọc Data từ RAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0 Đọc Data từ RAM (DD/CG RAM) 43µs + Ghi chú - Khi tần số thay đổi thì thời gian thực hiện tối đa sẽ thay đổi theo. Chẳng hạn với fpc hay fosc=250 KHz thì thời gian thực hiện tối đa là 39*270/250=42µs - LCD có hai RAM là CG và DD RAM. DD RAM chứa nội dung hiển thị còn CG RAM là RAM chứa kiểu chữ (font) cần xuất. Bảng 8.2 Địa chỉ của DD RAM Thiết kế, chế tạo và điều khiển tay máy GVHD: TS. NGUYỄN VĂN GIÁP Số 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Hàng 1 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F Hàng 2 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F o “--“ không quan tâm Thiết kế, chế tạo và điều khiển tay máy Trang 61 Bảng 8.3 Địa chỉ của CG RAM GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 62 8.3 SƠ ĐỒ KHỐI GIẢI THUẬT LẬP TRÌNH LCD 1602A 8.3.1 Giải thuật lập trình với 8-bit data A Chờ hơn 39µs Xóa màn hình RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 1 Chờ hơn 39µs Điều khiển hiển thị RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 1 D C B Chờ hơn 39µs Thiết lập kiểu truyền DATA RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 1 1 N F -- -- Chờ hơn 30ms để Vdd đạt 4.5V Bật nguồn GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 63 A Thực hiện vòng lặp để xuất data ra LCD Đưa dữ liệu vào RAM DD để hiển thị RS R/W 1 0 D7 D6 D5 D4 D3 D2 D1 D0 Chọn chế độ nhập RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 1 I/D SH Quá trình khởi động LCD kết thúc 8.3.2 Giải thuật lập trình với 4-bit data So với cách lập trình 8-bit, thì quá trình khởi động LCD theo sơ đồ lập trình 4-bit cũng tương tự, nhưng chỉ khác ở chỗ mỗi lần truyền thì chúng ta chia một byte dữ liệu thành hai lần truyền liên tiếp. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 64 Chờ hơn 30ms để Vdd đạt 4.5V Thiết lập kiểu truyền DATA RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 1 0 -- -- -- -- Điều khiển hiển thị RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 -- -- -- -- Thiết lập kiểu truyền DATA RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 N F -- -- -- -- -- -- Chờ hơn 39µs B Chờ hơn 39µs Bật nguồn GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 65 C Chờ hơn 39µs Xóa màn hình RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 1 -- -- -- -- Chờ hơn 39µs Chờ hơn 39µs Chọn chế độ nhập RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 -- -- -- -- Xóa màn hình RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 -- -- -- -- B Chờ hơn 39µs Điều khiển hiển thị RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 D C B -- -- -- -- Chờ hơn 39µs GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 66 C Chọn chế độ nhập RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 1 I/D SH -- -- -- -- Đưa dữ liệu vào RAM DD để hiển thị RS R/W 1 0 D7 D6 D5 D4 -- -- -- -- Đưa dữ liệu vào RAM

Các file đính kèm theo tài liệu này:

  • pdfNOIDUNG.pdf
  • pdfLoi cam on.pdf
  • ppsLUANVAN2003.pps
  • pdfmaubia.pdf
  • pdfmaubiaphuluc.pdf
  • pdfmuc luc.pdf
  • pdfphieu cham lvtn.pdf
  • pdfphieu cham lvtn-huong dan.pdf
  • pdfphieu cham lvtn-PHAN BIEN.pdf
  • pdfphu luc.pdf
  • pdfTai lieu tham khao.pdf
  • pdfTrang 59-60.pdf
  • pdfYeucau.pdf
Tài liệu liên quan