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

Dạy lập trình biển led quảng cáo Led Full eChipKool

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 (967.47 KB, 27 trang )

GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

I. Hướng dẫn sử dụng phần mềm Lập trình Keil biên dịch
code Asembly
- Khởi động phần mềm Keil C – Vào Project – Chọn New uvisin project để tạo dự án
mới.

- Chọn IC lập trình ở đây chọn IC 89C52 – vào Atmel – chọn AT89C52

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 1


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Một cửa sổ thông báo hiện ra nhấp No

- Tạo File lập trình mới Menu – File -> New hoặc chọn ngay biểu tượng như hình dưới.

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 2


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Lưu tên file vừa tạo mới chọn Save

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI


Page 3


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Đặt Tên file là BAI 1.ASM chú ý lập trình asembly phải là đuôi
*.asm

- Thêm file chương trình vừa lưu ( mục đích lấy file nguồn để biên dịch)

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 4


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Nhấp vào chon All files (*.*) để lấy tất cả các đuôi ( mục đích hiển thị file nguồn lập
trình asm)

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 5


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Nhấp chọn tên File đã lưu sẽ có đuôi *.asm

- Sau khi viết chương trình xong thì vào mục Target để chọn tần số thạch anh sử dụng và

chọn biên dịch sang file hex nạp vào IC mô phỏng
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 6


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

protues.

- Nhấp chọn Creat HEX file để có file nạp
IC.

II. Hướng dẫn sử dụng phần mềm Protues để mô phỏng.
- Khởi động phần mềm Protues 7.10. Chọn Component Mode rồi nhấp P để lấy ( phím tắt
P trên bàn phím)

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 7


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Cửa sổ lấy linh kiện:
+ Lấy IC ta gõ AT89C52
+ Led gõ Leds
+ IC nguồn gõ 7805
+ Tụ gõ Cap
+ ĐIện trở gõ Res

+ PIN 12V gõ battery
+ Thạch anh gõ Cry ( khóc huhu ấy ^^)

- Sau khi lấy xong linh kiện bắt đầu sắp xếp và nối mạch:

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 8


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Mạch mà không có nguồn làm sao chạy được đây, đi tìm nguồn nào?

- Sau khi nối xong nguồn ta được sơ đồ nguyên lý chuẩn.

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 9


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Mạch mà không có Noron thần kinh cũng bó tay không chạy được, ta nhấp đúp chuột
vào thân IC rồi truy cập file hex biên dịch trong BAI

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 10



GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

1

- Tìm thấy file HEX BAI1 rồi nạp xem mạch chạy như thế nào.

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 11


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Hồi hộp nhấn Play để chạy,

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 12


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Cuối cùng mạch cũng chạy ngon lành..

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 13



GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

III. Tìm hiểu IC 89xx – Các cổng I/O lập trình – Các mức tích cực lập trình Led đơn
quảng cáo.
1. Tìm hiểu IC 89xx: IC 89xx có nhiều loại như :
- 89C4051 có 20 chân
- 89C51/S51 có 40 chân 4k ROM – 128 byte RAM – 2 timer/counter – 32 chân I/O
- 89C52/S52 có 40 chân 8K ROM – 256 byte RAM – 3 timer/counter – 32 chân I/O
Tại sao lại dùng IC họ 8051 để lập trình quảng cáo? Lý do giá thành rẻ, tốc độ xử lý vừa
phải với bảng led quảng cáo, mạch nạp chương trình đơn giản, dễ dàng lập trình, phổ
biến trên thị trường.

2. Các cổng I/O lập trình:
Đây là sơ đồ chân thực tế trên một ic 89xx 4 chân. Bao gồm 4 PORT I/O
+ Port 0: P0.0 – P0.7 ( phải có thêm trở băng kéo )
+ Port 1: P1.0 – P1.7
+ Port 2: P2.0 – P2.7
+ Port 3: P3.0 – P3.7
Chân 20 nối âm nguồn, chân 40 nối dương nguồn 5V.
Chú ý chân EA chân 31 bắt buộc phải nối dương 5v không thì mạch không thì mạch
không hoạt động được.

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 14


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

3. Các mức tích cực lập trình led quảng cáo:

Led trên thị trường có nhiều loại nhưng chung lại đều có cực Anode (A) – Chân dài và
cathode (K ) – chân ngắn có cạnh khuyết . Anode nối với dương nguồn còn Cathode nối
với âm nguồn thì led mới sáng.

Chính sự quy định chân led như vậy sẽ nảy sinh 2 kiểu lập trình led đó là tích cực mức
dương và tích cực mức âm.

WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 15


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

- Led tích cực mức dương có nghĩa là chân Anode led nối với chân Vi Điều khiển ( chân
I/O của chip 89xx) còn các chân Cathode được nối với chung lại nối xuống âm ( xuống
đất) và khi đó trong lập trình quy định mức 1 là sáng và mức 0 là tắt
VD; MOV P2,#00111111B các led nào là 1 sẽ sáng vàng còn 0 sẽ tắt

- Tương tự led mắc tích cực âm: các chân Cathode led nối với chân I/O Vi Điều Khiển
còn các chân Anode led nối chung với nhau nối với nguồn dương. Và khi lập trình điều
khiển mức 1 là tắt, và mức 0 là sáng.
VD: MOV P2, #11000000B
Tóm lại khi lập trình biển led quảng cáo chủ yếu lập trình tích cực mức dương? Tại sao
lại như vậy? Vì thường dùng TIP41 C hoặc TIP122 để điều khiển led, mà muốn kích mở
TIP thì phải kích mức dương thì TIP mới mở..có vậy thôi..
IV. Lập trình biển led quảng cáo:
1. Một số lệnh cơ bản dùng trong lập trình biển led quảng cáo:
- Lệnh MOV lệnh di chuyển dữ liệu:
VD: MOV P2,#00000000B chuyển dữ liệu nhị phân 8 bit 00000000 vào Port 2

- Lệnh DJNZ giảm và nhảy nếu R0 = 0
VD: MOV R0,#100
LAP: DJNZ R0,LAP
- Lệnh SETB P1.0 thực hiện cài bit tại chân P1.0 lên mức 1
- Lệnh CLR P1.0 thực hiện cài bit tại chân P1.0 xuống mức 0
- Lệnh CJNE A,#data Nhảy nếu A khác data
- Lệnh RR A thực hiện quay phải thanh ghi A
Một byte dữ liệu có 8 bit, được chia thành 4 byte cao và 4 byte thấp
VD: MOV P2,#01010011B Một byte dữ liệu 01010011 byte thấp là 0011 byte cao là
0101 và khi đó Byte dữ liệu có bit thấp nhất là 1 = P2.0 và bít cao nhất là 0 = P2.7 tương
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 16


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

ứng lần lượt là P2.7 = 0, P2.6 =1, P2.5 = 0, P2.4 =1, P2.3 =0, P2.2 =0, P2.1=1, P2.0 =0
Rất quan trọng trong lúc lập trình thao tác từng bit
- Lệnh RL A thực hiện quay trái thanh ghi A
VD: MOV A,#00000001B
LAP: RL A
MOV P2,A
CALL DELAY
CJNE A,#00000001B,LAP
- Cấu trúc 1 chương trình quảng cáo led đơn giản:
$ mod51
ORG 0000H
MAIN:; chuong trinh chinh
CALL HIEU_UNG1

JMP MAIN
HIEU_UNG1:; chuong trinh con hieu ung
;…………Viet hieu ung vao ben trong………
RET
DELAY:; chuong trinh tao thoi gian tre
MOV R0,#100
LOOP:
NOP
DJNZ R0,LOOP
RET
END
- Cách tính toán chương trình delay:
Một chương trình delay đơn giản 1 vòng lặp như sau:
DELAY:
MOV R0,#100
LOOP:
NOP
DJNZ R0,LOOP
RET
+ Chương trìnH delay 2 vòng lặp như sau:
DELAY:
MOV R0,#100
LOOP:
MOV R1,#200
LOOP1:
NOP
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 17



GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
1 chu kỳ máy bằng 12 lần dao động thạch anh, nếu mạch dùng thạch anh 12Mhz thì tần
số sẽ là f = 12/12 = 1Mhz -> chu kỳ máy sẽ bằng T=1/f = 1/1 = 1us Như vậy mỗi chu kỳ
máy thưc hiện 1us rất nhanh. Ở đây lập trình quảng cáo không cần độ chính xác quá cao.
Ta sẽ tính đối với delay 1 vòng lặp là lấy giá trị 100x1us = 100us suy ra delay đó trễ
100us = 0.1ms
Đối với delay 2 vòng lặp thì lấy 200 ở vòng lặp trong nhân 100 vòng lặp ngoài nhân với
1us là ok..vậy trễ 200x100x1us = 20000us = 20ms
Khi muốn thay đổi độ trễ tăng lên ta thay đổi gia trị như 100 hoặc 200 lên tối đa là 255
không được vượt quá.
Muốn băm nhỏ hơn delay thì thêm Nop vào trong vòng lặp.
- Yêu cầu: lập trình bằng lệnh MOV, viết hiệu ứng 8 led Port 2 theo sơ đồ sau:

+ Led sáng đuổi từ trên xuống dưới:
HIEU_UNG1:; Led sang duoi tu tren xuong
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 18


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

MOV P2,#00000000B
CALL DELAY
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
+ Sáng đuổi từ dưới lên trên
HIEU_UNG2:;Sang duoi tu duoi len tren
MOV P2,#00000000B
CALL DELAY
MOV P2,#10000000B
CALL DELAY
MOV P2,#01000000B
CALL DELAY
MOV P2,#00100000B
CALL DELAY
MOV P2,#00010000B
CALL DELAY
MOV P2,#00001000B
CALL DELAY

MOV P2,#00000100B
CALL DELAY
MOV P2,#00000010B
CALL DELAY
MOV P2,#00000001B
CALL DELAY
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 19


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

RET
+ Led sáng dần từ trên xuống:
HIEU_UNG3:; sang dan tu duoi len tre
MOV P2,#00000000B
CALL DELAY
MOV P2,#00000001B
CALL DELAY
MOV P2,#00000011B
CALL DELAY
MOV P2,#00000111B
CALL DELAY
MOV P2,#00001111B
CALL DELAY
MOV P2,#00011111B
CALL DELAY
MOV P2,#00111111B
CALL DELAY

MOV P2,#01111111B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
RET
+ Led sáng dần từ dưới lên trên:
HIEU_UNG4:; sang dan tu duoi len tre
MOV P2,#00000000B
CALL DELAY
MOV P2,#10000000B
CALL DELAY
MOV P2,#11000000B
CALL DELAY
MOV P2,#11100000B
CALL DELAY
MOV P2,#11110000B
CALL DELAY
MOV P2,#11111000B
CALL DELAY
MOV P2,#11111100B
CALL DELAY
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 20


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

MOV P2,#11111110B
CALL DELAY

MOV P2,#11111111B
CALL DELAY
RET
+ Led nhấp nháy 8 bit
HIEU_UNG5:
MOV P2,#00000000B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
RET
+ Sáng dần từ giữa ra 2 bên
HIEU_UNG6:
MOV P2,#00000000B
CALL DELAY
MOV P2,#00011000B
CALL DELAY
MOV P2,#00111100B
CALL DELAY
MOV P2,#01111110B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
RET
+ Sáng dần từ 2 bên vào giữa.
HIEU_UNG7:
MOV P2,#00000000B
CALL DELAY
MOV P2,#10000001B
CALL DELAY
MOV P2,#11000011B

CALL DELAY
MOV P2,#11100111B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
RET
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 21


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

+ led nhấp nháy tráo đổi 4 bit cao và 4 bit thấp
HIEU_UNG8:
MOV P2,#00001111B
CALL DELAY
MOV P2,#11110000B
CALL DELAY
RET
+ Led sáng so le kiểu chẵn lẻ
HIEU_UNG9:
MOV P2,#01010101B
CALL DELAY
MOV P2,#10101010B
CALL DELAY
RET
+ Led sáng dồn từ trên xuống dưới.( Sự kết hợp led sang đuôi và sáng dần)
HIEU_UNG10:
MOV P2,#00000000B

CALL DELAY
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
;
MOV P2,#10000001B
CALL DELAY
MOV P2,#10000010B
CALL DELAY
MOV P2,#10000100B
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 22


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO


CALL DELAY
MOV P2,#10001000B
CALL DELAY
MOV P2,#10010000B
CALL DELAY
MOV P2,#10100000B
CALL DELAY
MOV P2,#11000000B
CALL DELAY
;
MOV P2,#11000001B
CALL DELAY
MOV P2,#11000010B
CALL DELAY
MOV P2,#11000100B
CALL DELAY
MOV P2,#11001000B
CALL DELAY
MOV P2,#11010000B
CALL DELAY
MOV P2,#11100000B
CALL DELAY
;
MOV P2,#11100001B
CALL DELAY
MOV P2,#11100010B
CALL DELAY
MOV P2,#11100100B
CALL DELAY
MOV P2,#11101000B

CALL DELAY
MOV P2,#11110000B
CALL DELAY
;
MOV P2,#11110001B
CALL DELAY
MOV P2,#11110010B
CALL DELAY
MOV P2,#11110100B
CALL DELAY
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 23


GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

MOV P2,#11111000B
CALL DELAY
;
MOV P2,#11111001B
CALL DELAY
MOV P2,#11111010B
CALL DELAY
MOV P2,#11111100B
CALL DELAY
MOV P2,#11111110B
CALL DELAY
MOV P2,#11111111B
CALL DELAY

RET
+ Sáng ăn dần( đang viết – sai 9 bit – hãy sửa lại theo ý tưởng)
HIEU_UNG11:
MOV P2,#11111111B
CALL DELAY
MOV P2,#111111101B
CALL DELAY
MOV P2,#111111110B
CALL DELAY
MOV P2,#111111010B
CALL DELAY
MOV P2,#111111001B
CALL DELAY
MOV P2,#111111010B
CALL DELAY
MOV P2,#111111100B
CALL DELAY
MOV P2,#111110100B
CALL DELAY
MOV P2,#111110010B
CALL DELAY
MOV P2,#111110001B
CALL DELAY
MOV P2,#111110010B
CALL DELAY
MOV P2,#111110100B
CALL DELAY
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 24



GIÁO TRÌNH LẬP TRÌNH QUẢNG CÁO

MOV P2,#111111000B
CALL DELAY
MOV P2,#111101000B
CALL DELAY
MOV P2,#111100100B
CALL DELAY
MOV P2,#111100010B
CALL DELAY
MOV P2,#111100001B
CALL DELAY
MOV P2,#111100010B
CALL DELAY
MOV P2,#111100100B
CALL DELAY
MOV P2,#111101000B
CALL DELAY
MOV P2,#111110000B
CALL DELAY
MOV P2,#111010000B
CALL DELAY
MOV P2,#111001000B
CALL DELAY
MOV P2,#111000100B
CALL DELAY
MOV P2,#111000010B
CALL DELAY

MOV P2,#111000001B
CALL DELAY
MOV P2,#111000010B
CALL DELAY
MOV P2,#111000100B
CALL DELAY
MOV P2,#111001000B
CALL DELAY
MOV P2,#111010000B
CALL DELAY
MOV P2,#111100000B
CALL DELAY
MOV P2,#110100000B
CALL DELAY
WWW.ECHIPKOOL.COM – ĐÌNH DUY - UNETI

Page 25


×