Tài liệu Sử dụng proteus để thiết kế led ma trận - Pdf 10

I GIỚI THIỆU SƠ QUA :
Trong proteus có rất nhiều loại led ma trận , ví dụ như loại 8x8 hoặc 5x8.Tôi
chỉ nói về led matrix loại 8x8 vì nó phổ biến và thường hay được dung ,các
loại led matrix khác nguyên lý đều tượng tự như nhau .
Led ma trận trong proteus thì có nhiều màu khác nhau ,có 3 loại chính là màu
đỏ ,màu xanh lá cây ,và màu xanh da trời .
Mỗi loại này lại có sự khác biệt nhau về chân để xác định đâu là hàng đâu là
cột .
Do đó để đơn giản tui ,nói về loại màu xanh lá cây ,vì loại này trông nó đẹp .
Led ma tran màu xanh lá cây có hình dạng như sau :
II CÁCH XÁC ĐỊNH HÀNG CỘT ,THAY ĐỔI THÔNG SỐ
Khi chúng ta làm việc với led matrix , điều quan tâm lớn nhất của chúng ta là
phải xác định xem ,chân của nó thế nào ,tức là đâu là chân hàng , đâu là
chân cột ,trong các chân hàng ,thì chân nào là chân ứng với hàng đầu ,và
chân nào ứng với hàng cuối để chúng ta xác định bít cao ,bít thấp .
- Dùng nguồn 5V và mass để thử và rút ra kết luận như hình vẽ sau
Ta thấy các chân ở trên là chân hàng và được nối với mass suy ra trong cấu
tạo nó được nối với catốt của led .
ngược lại chân ở dưới là chân cột .
- Ta thấy các chân ở trên là chân hàng có 1 chân ko nối mass thì hàng trên
cùng ko sáng suy chân đầu tiên bên trai của led sẽ ứng với hàng đầu tiên tính
từ trên .
- Và đương nhiên các chân phía dưới là chân cột thì chân đầu tiên bên trái sẽ
ứng ngay với cột đầu tiên bên trái .
Như vậy chúng ta xác định được rõ rang các chân của led.
Tuy nhiên giả sử chúng ta muốn thay đổi theo các kiểu như sau :
a: chân trên của led vẫn là hàng ,chân dưới vẫn là cột ,nhưng lúc này hàng
được tich cực với bít 1 (5v) còn cột tich cực mức 0 .(ngược với trên ) ta làm
như sau:
Kich chuột phải vào led chọn edit properties sau đó đánh dấu vào
edit all properties as text thay đổi A,B,C,D,E,F,G,H thanh 1,2,3,4,5,6,7,8.

D7 D6 D5 D4 D3 D2D1 D0
Ví dụ với dòng thứ 3 của chữ T LÀ 7eh = 0 111 111 0
( Led cuối cùng -> led đầu tiên)
(Tính từ trên xuống )
Tóm lại với trường hợp như trên (led matran như tren )
Thì hàng led đầu tiên tính từ trên xuống là ứng với bít thấp nhất trong 4 bít
thấp
Hàng led thứ tư là bít cao nhất trong 4 bít thấp
Hàng led thứ 5 là bít thấp nhất trong 4 bít cao
Hàng led cuối cùng là bít thấp cao nhất trong 4 bít cao . và cả 8 bít luôn .
IV : TRÌNH BIÊN DỊCH TRONG PROTUES
Trong isi (proteus) có sẵn trình biên dich để chúng ta viết code lập trình
vào ,có thể viết code của ngôn ngữ c hoặc asem .asem có ưu điểm là dung
lượng nhẹ , hiểu được rõ bản chất của cấu trúc 8051 và dữ liệu hoạt động
trong từng cấu trúc của 8051 ,vì asem là họ hàng gần nhất với ngôn ngữ
máy. Nhưng asem lập trình khó hơn và đỏi hỏi hiểu bản chất về cấu trúc của
8051
Ngôn ngữ c cấp cao hơn ,lập trình đơn giản hơn và ngày này là đựơc ưu tiên
dùng hơn.nhưng phải thanh thạo thì mới đạt hiệu quả cao .
Để viết code lập trình cho chip ta làm như sau .
1 Vào source :

A : Chọn define code generation too : Đối với isi p.5 sp3 thì chúng ta cứ để
nguyên và nhấn ok ,còn các phiên bản thấp hơn thì có chỉnh sửa chút ,nhưng
thời điểm này nếu có dung proteus thì chả ai ko dung bản mới nhất là 7.5
( 7.6 còn đang bị lỗi )

Cứ chọn ok luôn
B .sau đó chúng ta lại chọn tiếp add /remove source file :
Đổi none trong phần code generation tool thanh asem 51 (để viết bằng ngôn

ACALL DELAY
SETB P1.5
SETB P1.7
ACALL DELAY
SETB P1.6
ACALL DELAY
MAIN2:
MOV P1,#00H
MOV P2,#00H
ACALL DELAY
MAIN3 :
MOV P1,#0FFH
MOV P2,#0FFH
ACALL DELAY
DJNZ R1,MAIN2
SJMP BATDAU
DELAY :
MOV R2,#50
N1:MOV R3,#50
N2:MOV R4,#70
N3:DJNZ R4,N3
DJNZ R3,N2
DJNZ R2,N1
RET
END
V: Nguyên lý quét LED ma trận
Vì các led ma trận được bố trí bởi rất nhiều led đơn ,và các led đựoc đấu
chung chân với nhau ,do đó nếu cắm điện vào bình thường thì các led đều
cùng sáng ,
Do đó để hiện thị led sang theo mong muốn thì người ta dung cách ,cho led

org 0000h ; chọn ngăn nhớ đầu tiên của rom để nạp mã lệnh
batdau:
mov DPTR,#maled ; nạp dữ liệu của nhãn maled vào thanh ghi dptr
lap:mov r0,#30
main1 :
mov r2,#24 ;ban đầu trong phần maled có 3 hàng ứng với 24 chuỗi 0h
mov r1,#16 ; nạp vào ma tran 2 vì nó chạy muộn hơn ma tran 1 b cột nên
=16
mov r7,#8
mov b ,#0
mov r3,#7fh
main2:
mov a,r3 ; nạp dữ liệu từ r3 vào a ,a chứa 0111 1111 b
rl a ; thực hiện quay trái a để cho từng cột nhận giá trị 0
mov r3,a
mov p1,a
setb p3.3 ; tắt các matrận 2,3,4
setb p3.2
setb p3.3
clr p3.0 ; cho matrận 1 tích cực
mov a,r2 ; nạp R2 vào a
movc a,@a+DPTR ; nạp data của a + dptr ->địa chỉ 16b rồi để vào a
mov p2,a ;……
inc r2
acall delay ;gọi trễ
cjne r3,#07fh,main2 ; khi quét đủ 8 cột thì của 1 ma trận thì chuyển
main3:
mov a,r3
rl a
mov r3,a

mov p1,a
clr p3.3
setb p3.2
setb p3.0
setb p3.1
mov a,b
movc a,@a+DPTR
mov p2,a
inc b
acall delay
cjne r3,#07fh,main5
djnz r0,main1
inc DPTR
mov a,DPL
cjne a,#144,lap ; 144 là = (số hàng db x8 ,để giới hạn và quay về )
sjmp batdau
delay :
push 04 ; cất vào sactk để tý còn lấy ra dung lần thư 2
push 05
push 06
mov r4,#4
n1:mov r5,#4
n2:mov r6,#4
n3:djnz r6,n3
djnz r5,n2
djnz r4,n1
pop 06
pop 05
pop 04
ret

hay 0984040941)
Khi làm phải chuý các chân của led ma trận và mã để quýet led theo hàng
,chân nào ứng với MSB và chân nào ứng với LSB .


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status