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

Dạy lập trình biển led quảng cáo Bài 5 Ver 2

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 (174.33 KB, 14 trang )

GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5

I. Tìm hiểu viết một số hiệu ứng viền.

Việc điều khiển viền cũng không quá phức tạp, quan trọng là thời gian delay để nhìn thấy
hiệu ứng viền, hiệu ứng chữ và hiệu ứng viền sẽ phụ thuộc vào nhau nếu hiệu ứng chữ
chạy nhanh thì hiệu ứng viền khó nhìn thấy, và ngược lại. Ở đây có 2 phương pháp lập
trình hiệu ứng viền :
- Dùng các lênh SETB và CLR rất đơn giản:
- Dùng lệnh MOV kết hợp
1. Viết hiệu ứng viền với lệnh SETB và CLR
Trước hết tôi giới thiệu một số hiệu ứng viền lập trình cơ bản:
www.echipkool.com – Đình Duy - UNETI

Page 1


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
Nhìn vào hình bên dưới và so sánh với hình ảnh bảng led phía trên. Ta thấy nhóm led bên
dưới gồm 3 màu cơ bản là Đỏ Xanh dương Xanh lục tương ứng với 3 chân a b c trong
mỗi màu tùy theo người thiết kế bảng led có thể dùng 2 con led cho 1 màu hoặc 3 con led
cho 1 màu ( theo bảng nhỏ hoặc to) Việc lập trình chúng ta chỉ việc điều khiển cho 3 chân
Led a b c sáng đổi chỗ luân phiên:
VD: - Hiệu ứng viền chạy qua trái tốc độ chậm:
CLR P2.0
SETB P2.1
SETB P2.2
CALL DELAY_SLOW
SETB P2.0
CLR P2.1
SETB P2.2


CALL DELAY_SLOW
SETB P2.0
SETB P2.1
CLR P2.2
CALL DELAY_SLOW
- Hiệu ứng led viền chạy qua phải tốc độ nhanh:
SETB P2.0
SETB P2.1
CLR P2.2
CALL DELAY_FAST
SETB P2.0
CLR P2.1
SETB P2.2
CALL DELAY_FAST
CLR P2.0
SETB P2.1
SETB P2.2
CALL DELAY_FAST
- Hiệu ứng nhấp nháy viền tốc độ bình thường:
SETB P2.0
SETB P2.1
SETB P2.2
CALL DELAY
CLR P2.0
CLR P2.1
CLR P2.2
CALL DELAY
www.echipkool.com – Đình Duy - UNETI

Page 2



GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
2. Viết chương trình hiệu ứng viền với lệnh MOV ( Hay dùng đỡ tốn bộ nhớ đỡ ảnh
hướng hiệu ứng led )
VD: Hiệu ứng viền nhấp nháy
MOV P2,# 00000000B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
- Hiệu ứng viền chạy đuổi sang phải tốc độ bình thường:
MOV P2,#00000100B
CALL DELAY
MOV P2,#00000010B
CALL DELAY
MOV P2,#00000001B
CALL DELAY
- Hiệu ứng viền chạy đuổi sáng phải tốc độ nhanh:
MOV P2,#00000100B
CALL DELAY_FAST
MOV P2,#00000010B
CALL DELAY_FAST
MOV P2,#00000001B
CALL DELAY_FAST
- Hiệu ứng viền chạy đuổi sáng phải tốc độ chậm:
MOV P2,#00000100B
CALL DELAY_SLOW
MOV P2,#00000010B
CALL DELAY_SLOW
MOV P2,#00000001B

CALL DELAY_SLOW
- Hiệu ứng viền chạy đuổi sáng trái tốc độ chậm:
MOV P2,#00000001B
CALL DELAY_SLOW
MOV P2,#00000010B
CALL DELAY_SLOW
MOV P2,#00000100B
CALL DELAY_SLOW
=> Tóm lại: để có hiệu ứng viền đẹp, ta có thể kết hợp nhiều hiệu ứng lại với nhau( Lúc
viền chạy sang trái – lúc chạy sang phải). Quan trọng là chương trình delay phù hợp để
có hiệu ứng đẹp và sau này muốn viền nhanh chậm ta chỉ việc thay đổi giá trị của Delay.
www.echipkool.com – Đình Duy - UNETI

Page 3


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
Viết chương trình delay dùng chung các thanh ghi R0 R1 R2 đều được miễn sao không
trùng vào các biến chương trình lặp lại hiệu ứng.
DELAY:
MOV R0,#150
LOOP:
MOV R1,#200
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
DELAY_SLOW:
MOV R0,#250

LOOP:
MOV R1,#255
LOOP1:
NOP
NOP
NOP
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
DELAY_FAST:
MOV R0,#50
LOOP:
MOV R1,#100
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET

II. Viết chương trình hiệu ứng chữ, kết hợp chương trình hiệu ứng viền.

www.echipkool.com – Đình Duy - UNETI

Page 4


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5

Theo như sơ đồ nguyên lý mạch mô phỏng ở trên, bình thường chúng ta muốn dòng

chữ CHIPKOOL sáng chạy đuổi từ trái sáng phải chúng ta viết là:
CHIPKOOL1:
MOV P2,#00000001B
CALL DELAY
MOV P2,#00000010B
CALL DELAY
MOV P2,#00000100B
CALL DELAY
MOV P2,#00001000B
CALL DELAY
MOV P2,#00010000B
CALL DELAY
MOV P2,#00100000B
CALL DELAY
MOV P2,#01000000B
CALL DELAY
MOV P2,#10000000B
CALL DELAY
RET

www.echipkool.com – Đình Duy - UNETI

Page 5


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
Nếu cho viền chạy cùng thì chúng ta phải thay các dòng CALL DELAY thành các
chương trình con hiệu ứng viền như sau:
CHIPKOOL1:
MOV P2,#00000001B

CALL VIEN1
MOV P2,#00000010B
CALL VIEN1
MOV P2,#00000100B
CALL VIEN1
MOV P2,#00001000B
CALL VIEN1
MOV P2,#00010000B
CALL VIEN1
MOV P2,#00100000B
CALL VIEN1
MOV P2,#01000000B
CALL VIEN1
MOV P2,#10000000B
CALL VIEN1
RET
VIEN1:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00000100B
CALL DELAY
MOV P3,#00000010B
CALL DELAY
MOV P3,#00000001B
CALL DELAY
RET
DELAY:// Chuong trinh delay toc do binh thuong
MOV R0,#150
LOOP:
MOV R1,#200
LOOP1:
NOP

DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
Tại sao lại phải làm như vậy, vì chương trình viền chứa delay rồi, khi ta thêm CALL
VIEN1 sau mỗi lệnh hiệu ứng chữ CHIPKOOL thì đồng thời có hiệu ứng viền và sẽ có
www.echipkool.com – Đình Duy - UNETI

Page 6


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
cả delay nằm trong, muốn viền nhanh chậm hay chữ nhanh chậm ta chỉ việc thay đổi giá
trị trong chương trình delay là xong.
Giờ viết thêm hiệu ứng chữ CHIPKOOL sáng dần từ phải sang trái chạy hiệu ứng viền
tổng hợp và delay tốc độ nhanh.
CHIPKOOL2:
MOV P2,#00000001B
CALL VIEN1_2
MOV P2,#00000010B
CALL VIEN1_2
MOV P2,#00000100B
CALL VIEN1_2
MOV P2,#00001000B
CALL VIEN1_2
MOV P2,#00010000B
CALL VIEN1_2
MOV P2,#00100000B
CALL VIEN1_2
MOV P2,#01000000B
CALL VIEN1_2

MOV P2,#10000000B
CALL VIEN1_2
RET
VIEN1_2:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00000100B
CALL DELAY_FAST
MOV P3,#00000010B
CALL DELAY_FAST
MOV P3,#00000001B
CALL DELAY_FAST
MOV P3,#00000001B
CALL DELAY_FAST
MOV P3,#00000010B
CALL DELAY_FAST
MOV P3,#00000100B
CALL DELAY_FAST
RET
DELAY_FAST:
MOV R0,#50
LOOP:
www.echipkool.com – Đình Duy - UNETI

Page 7


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
MOV R1,#150
LOOP1:
NOP
DJNZ R1,LOOP1

DJNZ R0,LOOP
RET
Tương tự cho các hiêu ứng khác, giờ lại quay lại Mạch mô phỏng ta thấy còn dòng chữ
QUANG CAO nối PORT 0
Hiệu ứng của những dòng chữ này có thể viết chạy các hiệu ứng sáng dần, sáng nhấp
nháy, đuổi,…
VD: Hiệu ứng sáng dần từ giữa ra PORT 2 và nhấp nháy PORT 0
CHIPKOOL3:
MOV P2,#00000000B// chipkool
MOV P0,#00000000B// quang cao
CALL VIEN1
MOV P2,#00011000B
MOV P0,#11111111B
CALL VIEN1
MOV P2,#00111100B
MOV P0,#00000000B
CALL VIEN1
MOV P2,#01111110B
MOV P0,#11111111B
CALL VIEN1
MOV P2,#11111111B
MOV P0,#00000000B
CALL VIEN1
MOV P0,#11111111B
RET
VIEN1:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00000100B
CALL DELAY
MOV P3,#00000010B
CALL DELAY

MOV P3,#00000001B
CALL DELAY
RET
DELAY:// Chuong trinh delay toc do binh thuong
MOV R0,#150
www.echipkool.com – Đình Duy - UNETI

Page 8


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
LOOP:
MOV R1,#200
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
Nhưng khi làm ngoài thực tế sẽ không mắc như vậy sẽ tốn chân Chip (IC) vì hiệu ứng
cho dòng chữ đó thường chớp chớp là đẹp nhất và ta chỉ việc nối dòng chữ quảng cáo đó
thành 1 chân VĐK.
VD; Nối dòng chữ Quảng cáo mắc Mô phỏng 1 con led màu xanh Lá tại chân P3.3
Khi đó lập trình ta chỉ việc chỉnh trong chương trình viền là ok:
CHIPKOOL4:
MOV P2,#00000001B
CALL VIEN1
MOV P2,#00000010B
CALL VIEN1
MOV P2,#00000100B
CALL VIEN1

MOV P2,#00001000B
CALL VIEN1
MOV P2,#00010000B
CALL VIEN1
MOV P2,#00100000B
CALL VIEN1
MOV P2,#01000000B
CALL VIEN1
MOV P2,#10000000B
CALL VIEN1
RET
VIEN1_QC:// Vien nay se tao cho dong chu Quang Cao mac tai chan P3.3 nhap
nhay
MOV P3,#00001100B
CALL DELAY
MOV P3,#00000010B
CALL DELAY
MOV P3,#00001001B
CALL DELAY
RET
www.echipkool.com – Đình Duy - UNETI

Page 9


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
VIEN1_QC1:// Vien nay se tao cho dong chu Quang Cao mac tai chan P3.3 sang cả
MOV P3,#00001100B
CALL DELAY
MOV P3,#00001010B

CALL DELAY
MOV P3,#00001001B
CALL DELAY
RET

DELAY:// Chuong trinh delay toc do binh thuong
MOV R0,#150
LOOP:
MOV R1,#200
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET

BÀI TẬP YÊU CẦU:
1. Lập trình cho dòng chữ QUẢNG CÁO và CHIPKOOL nhấp nháy đổi chỗ luân phiên 3
lần – Viền chạy tốc độ bình thường sang phải
2. Lập trình dòng chữ QUẢNG CÁO sáng cả ( nghĩa là bật sáng ) Dòng chữ CHIPKOOL
sáng dần từ trái qua phải – Viền chạy tốc độ nhanh.
3. Lập trình dòng Chữ QUẢNG CÁO nhấp nháy sau đó sáng rồi cho dòng chữ
CHIPKOOL nhấp nháy rồi sáng – viền chạy tốc độ bình thường sang trái
4. Lập trình dòng chữ QUẢNG CÁO sáng dần từ trái qua phải và dòng chữ CHIPKOOL
sáng dần từ phải qua trái – viền chạy tốc độ chậm
5. Lập trình dòng chữ QUẢNG CÁO sáng dồn từ phải qua trái, dòng chữ CHIPKOOL
sáng dồn từ trái qua phải – viền tốc độ nhanh.
6. Lập trình dòng chữ QUẢNG CÁO sáng đứng yên, dòng chữ CHIPKOOL sáng dần từ
giữa ra, sau đó sáng dần từ 2 bên vào, sau đó nhấp nháy.
7. Lập trình dòng chữ QUẢNG CÁO nhấp nháy, dòng chữ CHIPKOOL sáng dồn từ 2
bên vào giữa, rồi nhấp nháy.

8. Lập trình dòng chữ QUẢNG CÁO sáng đứng yên, dòng chữ CHIPKOOL sáng đuổi
qua lại 5 lần.
9. Lập trình dòng chữ QUẢNG CÁO sáng đứng yên, dòng chữ CHIPKOOL sáng 1 led
dồn đều ra 2 bên.
10. Lập trình dòng chữ QUẢNG CÁO nhấp nháy, dòng chữ CHIKOOL sáng tráo đồi 2
chữ CHIP và chữ KOOL.

www.echipkool.com – Đình Duy - UNETI

Page 10


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5

BÀI TẬP THAM KHẢO:
$mod51
ORG 0000H
MAIN:
CALL CHIPKOOL1
CALL CHIPKOOL2
CALL CHIPKOOL3
CALL CHIPKOOL4
JMP MAIN
CHIPKOOL1:
MOV P2,#00000001B
CALL VIEN1
MOV P2,#00000010B
CALL VIEN1
MOV P2,#00000100B
CALL VIEN1

MOV P2,#00001000B
CALL VIEN1
MOV P2,#00010000B
CALL VIEN1
MOV P2,#00100000B
CALL VIEN1
MOV P2,#01000000B
CALL VIEN1
MOV P2,#10000000B
CALL VIEN1
RET
CHIPKOOL2:
MOV P2,#00000001B
CALL VIEN1_2
MOV P2,#00000010B
CALL VIEN1_2
MOV P2,#00000100B
CALL VIEN1_2
MOV P2,#00001000B
CALL VIEN1_2
MOV P2,#00010000B
CALL VIEN1_2
MOV P2,#00100000B
CALL VIEN1_2
www.echipkool.com – Đình Duy - UNETI

Page 11


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5

MOV P2,#01000000B
CALL VIEN1_2
MOV P2,#10000000B
CALL VIEN1_2
RET

CHIPKOOL3:
MOV P2,#00000000B// chipkool
MOV P0,#00000000B// quang cao
CALL VIEN1
MOV P2,#00011000B
MOV P0,#11111111B
CALL VIEN1
MOV P2,#00111100B
MOV P0,#00000000B
CALL VIEN1
MOV P2,#01111110B
MOV P0,#11111111B
CALL VIEN1
MOV P2,#11111111B
MOV P0,#00000000B
CALL VIEN1
MOV P0,#11111111B
RET

CHIPKOOL4:
MOV P2,#00000001B
CALL VIEN1_QC
MOV P2,#00000010B
CALL VIEN1_QC

MOV P2,#00000100B
CALL VIEN1_QC
MOV P2,#00001000B
CALL VIEN1_QC
MOV P2,#00010000B
CALL VIEN1_QC
MOV P2,#00100000B
CALL VIEN1_QC
MOV P2,#01000000B
CALL VIEN1_QC
MOV P2,#10000000B
www.echipkool.com – Đình Duy - UNETI

Page 12


GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
CALL VIEN1_QC
RET

VIEN1:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00000100B
CALL DELAY
MOV P3,#00000010B
CALL DELAY
MOV P3,#00000001B
CALL DELAY
RET
VIEN1_2:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00000100B

CALL DELAY_FAST
MOV P3,#00000010B
CALL DELAY_FAST
MOV P3,#00000001B
CALL DELAY_FAST
MOV P3,#00000001B
CALL DELAY_FAST
MOV P3,#00000010B
CALL DELAY_FAST
MOV P3,#00000100B
CALL DELAY_FAST
RET
VIEN1_QC:// Hieu ung sang duoi sang phai toc do binh thuong
MOV P3,#00001100B
CALL DELAY
MOV P3,#00000010B
CALL DELAY
MOV P3,#00001001B
CALL DELAY
RET

DELAY:// Chuong trinh delay toc do binh thuong
MOV R0,#150
LOOP:
MOV R1,#200
LOOP1:
www.echipkool.com – Đình Duy - UNETI

Page 13



GIÁO TRÌNH QUẢNG CÁO LED – BÀI 5
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
DELAY_FAST:
MOV R0,#50
LOOP2:
MOV R1,#150
LOOP3:
NOP
DJNZ R1,LOOP3
DJNZ R0,LOOP2
RET
END

www.echipkool.com – Đình Duy - UNETI

Page 14



×