Giáo trình Kỹ thuật vi điều khiển - Chương IV: Các bài tập thực hiện trên Kit - Lâm Tăng Đức
Với mục đích là đào tạo nên tất cả chương trình DEMO của KIT đều được viết
bằng hợp ngữ (Assembly), điều này giúp người học có thể hiểu rõ và nắm vững về cấu
trúc phần cứng của họ vi điều khiển 8051. Ngoài ra còn làm quen được với cách lập
trình không cấu trúc, khác với lập trình có cấu trúc bằng các ngôn ngữ bậc cao như C
hay Basic, qua các bài thực hành. Cuối cùng người học có thể tự mình tối ưu được mL
lệnh để tiết kiệm bộ nhớ, điều này là cần thiết khi dung lượng của ROM và RAM tích
hợp sẵn trên chip của các vi điều khiển là không lớn.
4.1 Các ví dụ về điều khiển chip mở rộng I/O 8255 sử dụng trên KIT
Như đL tìm hiểu ở chương 2 về cấu trúc, các chế độ hoạt động của chip 8255, trong
KIT này ta sử dụng 8255 làm chip mở rộng I/O hoạt động ở chế độ 0 – chế độ vào ra
cơ bản. Khi 8255 làm việc ở chế độ này, các cổng A, B, CL, CU có thể được lập trình
làm đầu vào hoặc đầu ra. Nên nhấn mạnh rằng, ở chế độ 0 thì tất cả các bit hoặc làm
đầu vào, hoặc làm đầu ra mà không thể điều khiển riêng rẽ từng bit như các cổng P0-
P3 của 8051.
Cấu trúc từ điều khiển (CW) ở chế độ này có khuôn dạng như hình 2.15
4.1.1. Ví dụ 1: Xác định từ điều khiển của 8255 cho các cấu hình sau:
a) Tất cả các cổng A,B và C đều là các cổng đầu ra (ở chế độ 0).
b) PA làm đầu vào, PB - đầu ra, PCL - đầu vào và PCH - đầu ra
Giải: Từ hình 2.15 ta xác định được
a) 10000000B = 80H
b) 10010001B = 91H
- 80 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 80 Ch−ơng IV Các bài tập thực hiện trên Kit Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH - 81 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 81 Ch−ơng IV Các bài tập thực hiện trên Kit Với mục đích là đào tạo nên tất cả ch−ơng trình DEMO của KIT đều đ−ợc viết bằng hợp ngữ (Assembly), điều này giúp ng−ời học có thể hiểu rõ và nắm vững về cấu trúc phần cứng của họ vi điều khiển 8051. Ngoài ra còn làm quen đ−ợc với cách lập trình không cấu trúc, khác với lập trình có cấu trúc bằng các ngôn ngữ bậc cao nh− C hay Basic, qua các bài thực hành. Cuối cùng ng−ời học có thể tự mình tối −u đ−ợc mL lệnh để tiết kiệm bộ nhớ, điều này là cần thiết khi dung l−ợng của ROM và RAM tích hợp sẵn trên chip của các vi điều khiển là không lớn. 4.1 Các ví dụ về điều khiển chip mở rộng I/O 8255 sử dụng trên KIT Nh− đL tìm hiểu ở ch−ơng 2 về cấu trúc, các chế độ hoạt động của chip 8255, trong KIT này ta sử dụng 8255 làm chip mở rộng I/O hoạt động ở chế độ 0 – chế độ vào ra cơ bản. Khi 8255 làm việc ở chế độ này, các cổng A, B, CL, CU có thể đ−ợc lập trình làm đầu vào hoặc đầu ra. Nên nhấn mạnh rằng, ở chế độ 0 thì tất cả các bit hoặc làm đầu vào, hoặc làm đầu ra mà không thể điều khiển riêng rẽ từng bit nh− các cổng P0- P3 của 8051. Cấu trúc từ điều khiển (CW) ở chế độ này có khuôn dạng nh− hình 2.15 4.1.1. Ví dụ 1: Xác định từ điều khiển của 8255 cho các cấu hình sau: a) Tất cả các cổng A,B và C đều là các cổng đầu ra (ở chế độ 0). b) PA làm đầu vào, PB - đầu ra, PCL - đầu vào và PCH - đầu ra Giải: Từ hình 2.15 ta xác định đ−ợc a) 10000000B = 80H b) 10010001B = 91H - 82 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 82 D7 D6 D5 D4 D3 D2 D1 D0 Hình 2.15 Khuôn dạng từ điều khiển của 8255 (chế độ vào ra cơ sở) 4.1.2. Ví dụ 2: Giả sử nh− ta có một chip 8051 đ−ợc nối với chip 8255 sao cho địa chỉ của các PORT và từ điều khiển của 8255 nh− sau: 8004H –PortA; 8005H – Port B; 8006H –PortC; 8007H –CW a) Tìm byte điều khiển để PA là cổng vào, PB, PC là cổng ra b) Viết một ch−ơng trình để lấy dữ liệu ở PA và gửi đến cổng B và C Giải: a) Dựa vào hình 2.15 ta có đ−ợc từ điều khiển CW = 10010000B = 90H b) Ch−ơng trình: ; ################################################ mov A, #90H ; PA là cổng vào, PB, PC là cổng ra mov DPTR, #8007H ; CW movx @DPTR, A ; Xuất từ điều khiển Again: Chọn mode 00 = Mode 0 01 = Mode 1 1x = Mode 2 1 = I/O Mode 0 = BSR Mode Cổng A 1= Input 0 = Output Cổng C PC7 – PC4 1= Input 0 = Output Cổng B 1= Input 0 = Output Cổng C PC3– PC0 1= Input 0 = Output Chọn mode 0 = Mode 0 1 = Mode 1 Nhóm A Nhóm B - 83 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 83 mov DPTR, #8004H ; Địa chỉ PA movx A, @DPTR ; Nhận dữ liệu từ PA inc DPTR ; Địa chỉ của cổng PB movx @DPTR, A ; Đ−a dữ liệu ra cổng PB inc DPTR ; Địa chỉ của cổng PC movx @DPTR, A ; Đ−a dữ liệu ra PC ; ################################################# Sau khi đL hiểu rõ các thao tác làm việc với 8255 để giao tiếp với các thiết bị ngoại vi của KIT ta có tiến hành các bài thí nghiệm sau. 4.2 Bài toán 1 : Điều khiển 8 bit đầu ra số Điều khiển 8 bit đầu ra số là một bài toán đơn giản nhằm giúp ng−ời học làm quen với việc điều khiển vi mạch 8255 để gửi ra cổng một tín hiệu số. Bài toán thực hiện việc xuất ra một tín hiệu số 8 bit (1 byte) và kết quả này đ−ợc hiển thị trên 8 đèn LED nhỏ t−ơng ứng với 8 bit đL đ−ợc bố trí trên bộ KIT, nếu 1 bit bằng 1 (High) thì đèn t−ơng ứng sẽ tắt và ng−ợc lại. 4.3 Bài toán 2 : Điều khiển nhận đầu vào 8 bit số và gửi đến 8 bit đầu ra Bài toán thực hiện việc điều khiển vi mạch 8255 qui định một cổng của nó làm đầu vào nhận tín hiệu số và gửi tín hiệu đó đến một cổng ra khác. 4.4 Bài toán 3 : Điều khiển hiển thị tĩnh ma trận LED 8x8 Điều khiển hiển thi tĩnh ma trận LED là một bài toán điều khiển đơn giản ma trận LED hiển thị các điểm LED có màu sắc khác nhau theo từng cột xen kẻ nhau, bài toán này giúp ng−ời học hiểu rõ hơn cấu tạo của ma trận LED và làm quen với việc điều khiển nó. 4.5 Bài toán 4 : Điều khiển hiển thị động ma trận LED 8x8 - 84 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 84 Điều khiển hiển thị động ma trận LED là một bài toán phức tạp hơn bài toán hiển thị tĩnh ở trên. Nội dung của bài toán là thực hiện việc quét liên lục theo từng dòng của ma trận LED để hiển thị các chữ số trong hệ Hexa từ 0-9.. đến A-F lên trên bảng LED. 4.6 Bài toán 5 : Điều khiển ADC0809 và DAC0808 Với ADC0809: bài toán thực hiện việc chuyển đổi tín hiệu Analog ở một trong 8 kênh đầu vào thành tín hiệu số 8 bit ở đầu ra của ADC0809. Sau đó đọc tín hiệu số đL chuyển đổi này hiển thị lên LCD. ở phần này trên KIT còn trang bị sẵn một cảm biến nhiệt độ, bài toán thí nghiệm để đo nhiệt độ đ−ợc thực hiện khi ta bật nút thứ 4 của DIP SWITCH để nối tín hiệu đầu ra của LM35 đến kênh đầu vào 4 của ADC0809, nhiệt độ phòng cũng đ−ợc hiển thị trên LCD. Với DAC0808: bài toán thực hiện chuyển đổi tín hiệu số 8 bit thành tín hiệu t−ơng tự có dải 0 -10V ở đầu ra của DAC0808, tín hiệu này có thể đ−a vào máy hiện sóng (Oscilloscope) để xem kết quả đối với ch−ơng trình tạo sóng (sin) hoặc có thể đo bằng đồng hồ bình th−ờng nếu chỉ tạo ra ở đầu ra 1 giá trị điện áp không đổi. 4.7 Bài toán 6 : Điều khiển động cơ b−ớc và động cơ 1 chiều Bài toán thực hiện việc điều khiển động cơ b−ớc quay, thay đổi tốc độ, đảo chiều, dừng động cơ. Ch−ơng trình sử dụng 4 đầu vào xung để làm các phím làm thay đổi các trạng thái trên của động cơ b−ớc. * Th−ờng các cuộn dây của độngcơ b−ớc đ−ợc xác định theo màu của các dây, tuy nhiên đối với một động cơ b−ớc bất kỳ ta có thể dùng đồng hồ để xác định các cuộn dây nh− hình vẽ, ở đây trình bày cách xác định cho các động cơ có 5, 6 dây 1. Dùng đồng hồ để xác định đầu Common: dùng đồng hồ để ở thang đo trở, đo trở giữa các cặp dây, đầu Common là đầu có trở giữa nó các đầu khác bằng 1/2 điện trở của các đầu khác với nhau. - 85 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 85 2. Xác định thứ tự các cuộn dây bằng cách cấp nguồn vào đầu Common và nối đất 1 trong 4 dây còn lại, đồng thời nối đất 1 trong 3 dây còn lại xem phản ứng (chiều quay) của động cơ và đánh dấu thứ tự cho nó nh− trong bảng sau: Nối mass một đầu, đánh dấu nó là đầu 4 Giữ nguyên nó, nối mass tiếp lần l−ợt một trong 3 dây còn lại Nếu động cơ quay theo chiều kim đồng hồ, đó là cuộn 3 Nếu động cơ quay ng−ợc chiều kim đồng hồ, đó là cuộn 1 Dây không có phản ứng gì cả là cuộn 2 Khi biết đ−ợc thứ tự các cuộn dây, ta kích xung theo thứ tự đó động cơ sẽ chạy Ví dụ một đoạn ch−ơng trình nh− sau, giả sử 4 đầu của động cơ đ−ợc 4 bit P1.0 – P1.3 của 8051 điều khiển: ; ################################ ORG 0000H MOV R3,#00000011B - 86 -Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 3 : Các bài tập thực hiện Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 86 MOV A, R3 BACK: MOV P1,A RL A ; Quay thanh ghi A ACALL DELAY SJMP BACK ; Tốc độ quay có thể thay dổi bằng thay đổi thời gian Delay DELAY: MOV R1,#50 H1: MOV R2 ,#255 H2: DJNZ R2,H2 DJNZ R1,H1 RET END ;########################### 4.8 Bài toán 7 : Giao tiếp với máy tính bằng giao thức RS232 sử dụng cổng nối tiếp. Ch−ơng trình DEMO chạy trên PC đ−ợc viết bằng Delphi 7, có sử dụng th− viện CPort 3.0 hỗ trợ giao tiếp. Các h−ớng dẫn sử dụng có thể xem trực tiếp phần trợ giúp của ch−ơng trình.
File đính kèm:
- giao_trinh_ky_thuat_vi_dieu_khien_chuong_iv_cac_bai_tap_thuc.pdf