1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

14 657 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 174,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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... Lập trình cho dòng chữ QUẢNG CÁO và CHIPKOOL nhấp nháy đổi chỗ luân ph

Trang 1

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:

Trang 2

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

Trang 3

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

Trang 4

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

Trang 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

Trang 6

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ó

Trang 7

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:

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

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:

Trang 14

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

Ngày đăng: 05/04/2016, 22:34

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm