Tải bản đầy đủ (.doc) (19 trang)

Lập trình ma trận LED trong Protues dùng 8501

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 (3.25 MB, 19 trang )

HDSD Led matrix Trong Proteus Và Cách Quét LED SD 8051
Viết bởi Phạm Thanh Toàn
Thứ sáu, 29 Tháng 1 2010 10:33
Đây là bài viết của bạn Phạm Thanh Toàn - . Một
bài viết khá là chi tiết về lập trình ma trận LED trong Protues dùng 8501. Kết quả là dịch
được chữ :
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.

Ta được như sau :
b.Nếu chúng ta muốn thay đổi cho cột lên trên,hàng xuống dưới và cực tính không đổi thì
dung quay 1800 là ok
III : CÁCH TÍNH MÃ LED HIỆN THỊ
Chúng ta nhìn vào hình vẽ sau :
Chúng ta sử dụng phần mềm xác định mã led của led ma trận , để đỡ mất thời gian ngồi
tính toán ,và có thể dẫn đến sai . Phần mềm này có trong trang web
www.hoiquandientu.com. Ai chưa có vào đó down hoặc liên hệ với tui quan mai của tui ở
trên ,hj
Chú ý : Khi xây dựng ma trận led ,nếu ta chọn hàng la các chân ở trên và mức tich cực là
dương,tức là với bít 1 thì nó sang ,còn bít 0 thì nó tắt ,do đó nếu ta dung mã 0ff thì có nghĩa
là cả 8 led cùng sang .Xét theo hình vẽ trên ta thấy 1 ma trận 8x8 ,với hàng là chân ở trên
tích cực dương ,cột chân ở dưới tích cực âm .1 chữ T như thế kia thì tương đương với mã
led là : 0h,02h ,02h,7eh,2h,2h,0h,0h
Phải chú ý maled tính theo hàng nhưng có dạng cột như hình vẽ (data cũng đẩy vào hàng )
Với chữ T đầu tiên là 00h ,tức là cột đầu tiên ko sáng ,tương đương với 8 led đầu ở 8 hàng
không sáng nên suy ra nó có dạng 0000 0000 b = 00h.Tiếp theo là 02h ,ta thấy tại cột 2 chỉ
có mỗi led ỏ hàng 2 sáng mà mã có dạng 02h = 0000 0010 .b từ đó ta suy ra được thứ tự led
trong 8 bít .Giả sử một chuỗi 8 bít như sau : d7 d6 d5 d4 d3 d2 d1 d0
Với d7 là bít có trọng số cao nhất tức là MSB còn d0 là LSB
trường hợp cần lưu ý ,ma trận led chia 8 bít thanh 2 chuỗi 4 bít và cả 2 chuỗi 4 bít này đều
có LSB và MSB .
Xét 4 chuỗi bít đầu ứng với 4 hàng đầu tính từ trên xuống (4 bít thấp trong 8 bít ) Giả sử là
d3d2d1d0 tương đương với 0010 trong chuỗi 8 bít trên thì
MSB LÀ D3 ,LSB là d1 : Với chuỗi 4 bít cao d7d6d5d4 thì MSB LÀ D7 ,còn LSB là d4
MSB LSB MSB LSB

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 :

×