Lập trình ma trận LED trong Protues dùng 8501 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 - phamtoanbonmat@gmail.com . 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ữ : http://hoiquandientu.comI 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 ,hjChú ý : 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 d0Với d7 là bít có
trọng số cao nhất tức là MSB còn d0 là LSBtrườ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à d4MSB LSB MSB LSBD7 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ấpHà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 PROTUESTrong 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 ngữ asem ) Sau đó chọn new bên dưới ra một bảng mới ,chọn ten cho file
lập trình : ví dụ ở đây tui chọn là lednhay.asm rồi chọn openMở open chọn yes rồi lại chọn ok ,thế là ta đã tạo xong được tên của file
lập trình bằng asm[...]... (
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ấpHà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 ln .IV :
TRÌNH BIÊN DỊCH
TRONG PROTUES Trong. .. nào thì gửi mail ( phamtoanbonmat@gmail.com ) cho tui vậy nha .hjhjKhi 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 . CODE
LẬP TRÌNH VÍ DỤ NHƯ SAU : (THEO CÁCH SANG CỦA TƠI ,CỊN CÁC BẠN THÍCH SÁNG THEO KIỂU NÀO
LÀ DO MÌNH LẬP TRÌNH THUI ,HJHJ ) Lập
trình rất dễ :ORG 0000HBATDAU:MOV R1,#4MOV A,#00MOV P1,AMOV P2,AMAIN1:SETB...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 tố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 ,hjChú ý : 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...
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. .. được đưa vào port 2. 4 bit của port 3 để cho 4 chân oe1 của 4 con
led ma trận .Và để có được những điều trên thì chúng ta phải thử
led trước ,ví dụ với
led xanh như trên thì phải chỉnh sửa theo kiểu
mà tơi vừa
trình bày ở trên .Code
lap trình tơi viết bằng asem ,chỉ cần học qua về asem bly một chút là có thể hiểu được nguyên lý quyet
trong code :Vì khơng có thời gian để giải thích hết các lệnh và... ,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 d0Với d7 là bít có
trọng số cao nhất tức là MSB còn d0 là LSBtrườ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 Khi chúng ta làm việc với
led matrix , điều quan tâm lớn nhất... 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... tạo xong được tên của file
lập trình bằng asm Khi quét
led thông thường chúng ta sẽ để
led chạy theo chiều ngang như ở trên ,do đó phương pháp này gọi là quét cột ,tức là cột của
led sẽ được chọn tích cực lần lượt cịn dữ liệu thì được đẩy theo hàng ,do đó dữ liệu sẽ là dữ liệu 8 bít tính theo hàng và quy ra 1
ma hexa .Do yếu tố trên thì người ta thường chọn sao cho
led có hàng ở trên và được tích... 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... 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 : 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 : Mở . Phạm Thanh Toàn - phamtoanbonmat@gmail.com . 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ữ. quét LED ma trậnVì 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