Đầu tiên bài học sẽ thực hành điều khiển 1 led sáng tối thật đơn giản. Mạch điện điều khiển bao gồm 1 led và 1 điện trở nối tiếp nhau. Bài học này sẽ áp dụng cho vi điều khiển 89S51 tuy nhiên hoàn toàn có thể áp dụng cho các vi điều khiển khác thuộc họ 8051. Bài thực hành này sẽ điều khiển việc cho phép dòng điện chạy qua led làm led sáng hoặc tối. Bước 1: Thiết kế mạch ứng dụng cho vi điều khiển như hình 2.1.1. Trong đó chân P0.0 được nối với Ka-tốt của led. Nếu P0.0 = 1 thì led sẽ không sáng, P0.0 = 0 led sẽ sáng.
Trang 2mov p3 ,#00001000b call delay
Trang 5mov p3 ,#00000010b call delay
Trang 92.1 Điều khiển LED
2.1.1 Điều khiển bật tắt 1 led
Đầu tiên bài học sẽ thực hành điều khiển 1 led sáng tối thật đơn giản Mạch điện điều khiển bao gồm 1 led và 1 điện trở nối tiếp nhau Bài học này sẽ áp dụng cho vi điều khiển 89S51 tuy nhiên hoàn toàn có thể áp dụng cho các vi điều khiển khác thuộc họ 8051 Bài thực hành này sẽ điều khiển việc cho phép dòng điện chạy qua led làm led sáng hoặc tối
call delay; Gọi hàm trễ
sjmp start; Quay trở về ban đầu
del2: djnz R2,del2 Chờ đến khi R2 giảm về 0
djnz R1,del1 Chờ đến khi R1 giảm về 0
Trang 112 Thực hành điều khiển các thiết bị vào ra
2.1 Điều khiển LED
2.1.2 Điều khiển bật tắt nhiều led
Phần trước đã giới thiệu cách điều khiển bật tắt 1 led, phần này sẽ hướng dẫn cách điều khiển nhiều led (8 led)
Step 1st
Build the circuit as shown in figure 2.1.2 As you seen on figure 2.1.2 P0.0 trough P0.7 is connected to LED's katode each Remember, that all we want to do with this lesson is make four LED blink change reversed
start: mov P0,#11110000b; Bật các led nối với P0.0-P0.3
call delay ; Gọi hàm trễ
mov P0,#00001111b; Bật các led nối với P3.4-P0.7
call delay; Gọi hàm trễ
Trang 12sjmp start; Trở lại từ đầu
;=============================================
;subroutine delay created to rise delay time
;=============================================
delay: mov R1,#255 ; Cho R1 = 255
del1: mov R2,#255 ; Cho R2 = 255
del2: djnz R2,del2 ; Chờ đến khi R2 = 0
Trang 132 Thực hành điều khiển các thiết bị vào ra
2.1 Điều khiển LED
2.1.3 Điều khiển bật tắt lần lượt các led
Phần trước đã giới thiệu cách điều khiển bật tắt nhiều led cùng lúc, phần này sẽ hướng dẫn cách điều khiển bật tắt lần lượt các led (8 led)
start: mov P0,#11111110b; Bật led nối với P0.0
call delay ; Tạo trễ
mov P0,#11111101b; Bật led nối với P0.1
call delay ; Tạo trễ
mov P0,#11111011b; Bật led nối với P0.2
call delay ; Tạo trễ
mov P0,#11110111b; Bật led nối với P0.3
call delay ; Tạo trễ
mov P0,#11101111b; Bật led nối với P0.4
call delay ; Tạo trễ
mov P0,#11011111b; Bật led nối với P0.5
Trang 14call delay ; Tạo trễ
mov P0,#10111111b; Bật led nối với P0.6
call delay ; Tạo trễ
mov P0,#01111111b; Bật led nối với P3.7
call delay ; Tạo trễ
sjmp start ; loooooop forever to start
Trang 152 Thực hành điều khiển các thiết bị vào ra
2.2 Giao tiếp công tắc
2.2.1 Điều khiển bật tắt led khi nhấn công tắc
Trong công nghiệp khi nhấn phím điều khiển hệ thống, nhu cầu hiển thị tác động của người vận hành xem đã tác động chưa rất quan trọng Giải pháp dùng led để hiển thị được sử dụng rất nhiều Phần này sẽ mô tả giải pháp dùng vi điều khiển để điều khiển việc hiển thị tác động nhấn công tắc
Bước 1:
Xây dựng mạch điều khiển mô tả như hình 2.2.1 Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với Ka-tốt của led Nhiệm vụ là khi nhấn phím tại chân P2.x thì led nối với chân P0.x tương ứng sẽ sáng
Hình 2.2.1 Sơ đồ nguyên lý hoạt động giao tiếp với công tắc
Trang 16org 0h
start: mov A,P2 ; Đọc dữ liệu từ cổng P2, lưu vào thanh ghi ACC
mov P0,A ; Đưa dữ liệu ra cổng P0
sjmp start; Quay về ban đầu
Trang 172 Thực hành điều khiển các thiết bị vào ra
2.2 Giao tiếp công tắc
2.2.2 Điều khiển led chạy khi nhấn công tắc
Trong phần này, nội dung bài học là điều khiển led sáng dịch chuyển khi nhấn công tắc Cụthể là led sáng sẽ chuyển động sang trái khi nhấn phím nối với chân P2.0 và chuyển động sang phải khi nhấn phím nối với chân P2.1
Bước 1:
Xây dựng mạch điều khiển mô tả như hình 2.2.2 Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với Ka-tốt của led Nhiệm vụ là khi nhấn phím tại chân P2.0 thì led sáng chuyển động sang trái, nhấn phím nối với chân P2.1 led sáng sẽ chuyển động sang phải
Hình 2.2.2 Sơ đồ nguyên lý hoạt động giao tiếp với công tắc
Trang 18org 0h
CekP20: JB P2.0,CekP21 ; kiểm tra P2.0
call RLeft ; gọi hàm điều khiển led -> trái
sjmp CekP20 ; trở về CekP20
CekP21: JB P2.1,CekP20 ; kiểm tra P2.1
call RRight ; gọi hàm điều khiển led -> trái
sjmp CekP20 ; trở về CekP2.0
;===============================================
;this subroutine is used to move LED to the left
;================================================
RLeft: mov A,#11111110b;Khởi tạo cho led tại P0.0 sáng
RLeft1: mov P0,A ;P0.0 sáng
call delay ;gọi hàm trễ
JB P2.0,RLeft2 ;kiểm tra P2.0
Trang 19Nạp file mã máy mà chương trình biên dịch vừa tạo ra bằng các công cụ và mạch nạp như trong trang web này hướng dẫn làm như: mạch nạp 89xxxx, mạch nạp 89Cxx, mạch nạp 89Sxxxx, mạch nạp 89Sxx và AVR
Trang 202 Thực hành điều khiển các thiết bị vào ra
2.3 Điều khiển led 7 thanh
Led 7 thanh được ứng dụng khá phổ biến khi cần hiển thị số tự nhiên hoặc vài chữ cái nhất định Led 7 thanh có thể có kích thước lớn nhỏ khác nhau, màu sắc khác nhau nhưng về hình dáng cơ bản như hình 2.3
Led 7 thanh bao gồm nhiều led tích hợp bên trong, các led được nối chung nhau 1 chân Trong thực tế có 2 loại led 7 thanh là led 7 thanh A-nốt chung và led 7 thanh Ka-tốt chung Led loại A-nốt chung, các led sẽ có chung nhau chân nguồn (chân dương), chân còn lại của led nào được nối đất thì led đó sẽ sáng Led loại Ka-tốt chung, các led sẽ nối chung nhau chân đất (chân âm), chân còn lại của led nào được nối nguồn thì led đó sẽ sáng
Hình 2.3.1 Led 7 thanh
2.3.1 Cách hiển thị led 7 thanh
Trong phần này, led 7 thanh sử dụng là loại led A-nốt chung, chân A-nốt chung sẽ được nối nguồn 5V thông qua transistor Chú ý, cần phải nối trở hạn chế dòng cho led 7 thanh để tránh cháy led
Trang 21Hình 2.3.2 Sơ đồ nguyên lý điều khiển led 7 thanh
mov P0,#11111100b;Cấp nguồn 0V cho thanh a và b
clr P0.0 ;Cấp nguồn 5V cho led 7 thanh
sjmp start ;Quay trở về Start
Trang 22Xây dựng mạch điều khiển mô tả như hình 2.3.2 Trong ví dụ này, các chân P2.0 điều khiển việc cấp nguồn cho led 7 thanh Các chân P0.0 đến P0.6 được nối với các chân của led 7 thanh
để điều khiển việc cấp đất cho các thanh led Trong phần này sẽ hướng dẫn cách phối hợp hiển thị các thanh led của led 7 thanh
Hình 2.3.2 Sơ đồ nguyên lý điều khiển led 7 thanh
mov P0,#11111100b; Cấp 0V cho thanh led a và b
clr P2.0 ; Cấp 5V cho led 7 thanh
call delay ; Gọi hàm trễ
mov P0,#11011011b; Cấp 0V cho thanh led c,f
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
mov P0,#10110000b; Cấp 0V to a,b,c,d,g
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
sjmp start ; Trở về đầu chương trình
Trang 24Xây dựng mạch điều khiển mô tả như hình 2.3.2 Trong ví dụ này, các chân P2.0 điều khiển việc cấp nguồn cho led 7 thanh Các chân P0.0 đến P0.6 được nối với các chân của led 7 thanh
để điều khiển việc cấp đất cho các thanh led Trong phần này sẽ hướng dẫn cách phối hợp hiển thị các thanh led của led 7 thanh
Hình 2.3.2 Sơ đồ nguyên lý điều khiển led 7 thanh
mov P0,#11111100b; Cấp 0V cho thanh led a và b
clr P2.0 ; Cấp 5V cho led 7 thanh
call delay ; Gọi hàm trễ
mov P0,#11011011b; Cấp 0V cho thanh led c,f
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
mov P0,#10110000b; Cấp 0V to a,b,c,d,g
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
sjmp start ; Trở về đầu chương trình
;=============================================
;subroutine delay created to rise delay time
;=============================================
Trang 262 Thực hành điều khiển các thiết bị vào ra
2.3 Điều khiển led 7 thanh
2.3.2 Phối hợp nhiều thanh của led 7 thanh
mov P0,#11111100b; Cấp 0V cho thanh led a và b
clr P2.0 ; Cấp 5V cho led 7 thanh
call delay ; Gọi hàm trễ
mov P0,#11011011b; Cấp 0V cho thanh led c,f
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
Trang 27mov P0,#10110000b; Cấp 0V to a,b,c,d,g
clr P2.0 ; Cấp 5V cho led
call delay ; Gọi hàm trễ
sjmp start ; Trở về đầu chương trình
2.3.3 Điều khiển led 7 thanh hiển thị số
Thực hành mạch như phần 2.3.2, tuy nhiên hãy phối hợp các thanh led để led 7 thanh hiển thị các chữ số 0,1,2,3,4,5,6,7,8,9 Việc này rất đơn giản Chỉ việc thay đổi lại chương trình ở phần 2.3.2 (thay đổi lại lệnh mov P0,#xxxxxxxxb)
2.3.4 Điều khiển led 7 thanh hiển thị chữ
Thực hành mạch như phần 2.3.2, tuy nhiên hãy phối hợp các thanh led để led 7 thanh hiển thị các chữ số a,b,c,d,e,f Việc này rất đơn giản Chỉ việc thay đổi lại chương trình ở phần 2.3.2 (thay đổi lại lệnh mov P0,#xxxxxxxxb)
Trang 282 Thực hành điều khiển các thiết bị vào ra
2.3 Điều khiển led 7 thanh
2.3.5 Cách điều khiển nhiều led 7 thanh
Trong phần này bài học sẽ hướng dẫn cách điều khiển nhiều led 7 thanh cùng lúc
Bước 1:
Xây dựng mạch điều khiển mô tả như hình 2.3.5 Trong ví dụ này, các chân P2.0 đến P2.7 điều khiển việc cấp nguồn cho các led 7 thanh Các chân P0.0 đến P0.6 được nối với các chân của led 7 thanh để điều khiển việc cấp đất cho các thanh led
Hình 2.3.5 Sơ đồ nguyên lý điều khiển nhiều led 7 thanh
Trang 29clr P2.2 ;Led 6 hiển thị sô 6
call delay ;Gọi trễ
Trang 30Biên dịch chương trình trên bằng các chương trình biên dịch chuyên dụng cho vi điều khiển như Reads51 Sau khi biên dịch, chươn trình sẽ tạo ra file mã máy mà vi điều khiển dựa vào đó
để hoạt động Thông thường file đó sẽ có dạng tên_file.hex Việc đặt tên file là do người dùng tự đặt
Trang 312 Thực hành điều khiển các thiết bị vào ra
2.3 Điều khiển led 7 thanh
2.3.6 Điều khiển nhiều led 7 thanh
Trong phần này bài học sẽ hướng dẫn cách điều khiển nhiều led 7 thanh cùng lúc
Bước 1:
Xây dựng mạch điều khiển mô tả như hình 2.3.5 Trong ví dụ này, các chân P2.0 đến P2.7 điều khiển việc cấp nguồn cho các led 7 thanh Các chân P0.0 đến P0.6 được nối với các chân của led 7 thanh để điều khiển việc cấp đất cho các thanh led
Hình 2.3.5 Sơ đồ nguyên lý điều khiển nhiều led 7 thanh
start: mov dptr, #word ;để con trỏ dữ liệu vào đấu bảng
mov R6,#8 ; số led cần hiển thị, 8 led
mov R1,#01111111b; khởi đầu ở led 8
Again: clr A ; xóa thanh ghi acc
movc A,@A+dptr ; đưa số đầu tiên ở bảng vào acc
inc dptr ; tăng vị trí con trỏ
mov P0,A ; đưa mã cần hiển thị ra P0
mov A,R1 ; thứ tự led cần hiển thị
mov P2,A ; hiển thị led
rr A ; dịch vi trí led cần hiển thị
Trang 32mov R1,A ; lưu vào thanh ghi R1
call delay ; gọi hàm trễ
Trang 331 Mạch LED sáng dần thay đổi kiểu rồi tắt
Nội dung:Mạch này sẽ làm cho đèn Led sáng dần thay đổi kiểu rồi tắt rất đẹp
Chương trình mạch điện viết bằng assembly:
Trang 34JNZ LOOPB
RET
START:
ACALL INITIALIZELOOP:
INC P1
ACALL DELAYHSAJMP LOOP
END
Trang 35Mở rộng bộ sắp sếp thứ tự 16LED
Bộ sắp sếp thứ tự 18 LED dùng 4017
The LED sequencer below shows a possible solution using a few extra parts When power is applied, the 15K resistor and 10uF cap at pin 15 will reset the counters to the zero count where pin 3 is at +12 and all other outputs are at zero The 2 diodes (1n914) and 15 resistor form a AND gate so the clock pulse will be passed to the right side counter when the sequence starts
Sắp xếp dãy 60 LED sử dụng LED ma trận
Trang 361 Led sáng theo nhạc
Trang 37C1 2.2uF 25V Electrolytic Capacitor C2, C3 0.1uF Ceramic Disc Capacitor R1, R3 1K 1/4W Resistor
Trang 381 V+ can be anywhere from 3V to 20V.
2 The input is designed for standard audio line voltage (1V P-P) and has a maximum input voltage of 1.3V
3 Pin 9 can be disconnected from +V to make the circuit use a moving dot display instead
of a bar graph display
+20 EXP