1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI THUYẾT TRÌNH LED MA TRẬN

26 221 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 26
Dung lượng 1,84 MB

Nội dung

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG KHOA ĐIỆN – ĐIỆN TỬ MÔN: VI XỬ LÝ – VI ĐIỀU KHIỂN BÀI THUYẾT TRÌNH: LED MA TRẬN GIÁO VIÊN HƯỚNG DẪN: BỐC MINH TRÍ LỚP 12CĐ – ĐT3 NHÓM 9: CHÍ NGỌC SƠN LÊ HOÀNG TUẤN TÚ HOÀNG MINH ĐỨC MONG HOÀNG PHONG NGUYỄN THÀNH LUÂN Thành phố Hồ Chí Minh – 2014 Để tìm hiểu led ma trận ta tìm hiểu IC89C51 Phân tích sơ đồ chân: Ma trận LED tức Dot Matrix LED tập hợp nhiều đèn LED bố trí thành dạng “ma trận” hình chữ nhật vuông với số hàng a số cột b Ma trận LED dùng nhiều ứng dụng hiển thị biển quảng cáo, hiển thị thay LCD chí dùng hiển thị video…Để giảm số lượng đường điều khiển, ma trận LED LED nối chung với theo hàng cột Số lượng LED ma trận LED axb số lượng ngõ tổng số hàng cột: a + b Việc điều khiển ma trận LED kích thước lớn đòi hỏi thiết kế mạch driver điều khiển phức tạp Các hàng led ma trận đó chân Anode Led cho nối chung dùng transistor pnp để dùng bit xuất chân cảng p1 cấp cho chân B transistor nối dây chung nầy lên đường nguồn 5V Do mạch dùng kỹ thuật quét nên mỗi lần chỉ có hàng cho nối vào đường nguồn 5V Do chân Cathode Led cho nối chung cột, chúng ta dùng transistor npn cột thông masse để lấy dòng cấp cho Led, để chân Cathode thông masse, chúng ta sẽ dùng bit 1, cho xuất chân cổng p2, p0 p3 cấp cho chân B transistor Với cổng có bit, mỗi mã bit cho xuất công p2, p0, p3, chúng ta có thể điều khiển mỗi nhịp Led Do có nhiều mô hình led ma trận nên xin phép xét led ma trận 8x8 Tìm hiểu bảng ma trận Led 8x8: Sơ đồ dùng giải thích nguyên lý tắt mở Led bảng ma trận 8x8 Cách 1: Mã quét xuất p2, p3, p0, mã hình hay chữ xuất cảng p1 Sơ đồ mạch điện trên, lần nữa, cho thấy, chúng ta cho nối chân chân B transistor 2SA1015 cảng p1 Vậy có chân cảng p1 xuất bit 0, nó sẽ làm transistor bão hòa, lúc dây anode chung sẽ cho nối vào đường nguồn 5V Ở đây, Bạn sẽ viết đoạn chương trình cho mỗi nhịp chỉ có chân cổng p1 xuất bit Bạn thấy xuất bit cảng p2, bit ở mức ứng với mức volt cao dùng cấp cho chân B transistor 2SC1815, lúc transistor sẽ bị làm cho bão hòa, nó cho cột đó có chân Cathode nối masse, Led sẽ phát sáng, mạch chúng ta hạn dòng với điện trở 100 ohm In hình hay chữ bảng Led ma trận này, có việc sau: Việc 1: Viết đoạn chương trình cấp mã quét.Tốc độ quét đủ nhanh để dùng tượng lưu ảnh mắt mà gây "nhầm lẫn" bảng đèn có nhiều Led cấp dòng phát sáng Viết đoạn chương trình để xuất mã quét bit chân B transistor pnp cảng p1, chữ trôi xuống Viết đoạn chương trình để xuất mã quét bit chân B transistor pnp cảng p1, chữ trôi lên Viết chương trình mã quét, cấp bit cho chân B transistor npn cảng p2, p3, p0, để tạo hình dời ngang Việc 2: Viết dãy mã bit cho xuất mã hình cảng p2, p3, p0 hay p1 để làm sáng Led cột, mã bit viết theo kiểu hình hay dạng chữ mà muốn nó bảng đèn Các dãy mã bit sẽ cho cất bảng, sau sẽ dùng câu lệnh movc a, @a + dptr để lấy dãy mã cho xuất cảng ic AT89C51 Sau đoạn chương trình viết cho xuất mã quét p2, p3, p0 mã hình xuất cảng p1 h1b: ;đặt tên nhãn dùng cho lệnh nhẩy mov r0, #11111110b ; đặt trị khởi đầu dùng cho lệnh quay vòng mov r1, #00h ; đặt trị khởi đầu dùng cho lệnh lấy mã hình hay chữ ll1b: mov a, r0 ; chuyển trị r0 vào a rr a ; cho bit a quay vòng qua hường phải mov r0, a ; chuyển trị a r0 mov p1, r0 ; cho xuất trị a cảng p1 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; truy lấy mã hình bảng cho cất vào a mov p2, a ; cho xuất mã hình cảng p2 inc r1 ; tăng trị r1 lên +1 để lấy mã hình mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; truy lấy mã hình bảng cho cất vào a mov p3, a ; cho xuất mã hình cảng p3 inc r1 ; tăng trị r1 lên +1 để lấy mã hình mov a, r1 ; chuyển trị r1 a movc a, @a + dptr ; truy lấy mã hình bảng cho cất vào a mov p0, a ; cho xuất mã hình cảng p0 inc r1 ; lại tăng trị r1 lên +1 call del1 ; gọi chương trình làm chậm mov p1, #11111111b ; tắt bit cảng p1 mov p0, #00h ; tắt bit cảng p0 mov p2, #00h ; tắt bit cảng p2 mov p3, #00h ; tắt bit cảng p3 call del1 ; gọi chương trình làm chậm cjne r0, #11111110b, ll1b ; so sánh mã quét để chọn hướng nhẩy ret ; quay lại sau lệnh call Đoạn chương trình viết giống đoạn trên, điểm khác biệt dùng câu lệnh rl a quay vòng theo hướng trái để đổi hướng chạy hình bảng ma trân 8x24 Mã quét đặt cảng p1, mã hình lần lượt cho lấy xuất cảng p2, p3, p0 h1c: ; đặt tên nhãn dùng cho lệnh nhẩy mov r0, #01111111b ; đặt trị khởi đầu dùng cho lệnh quay vòng mov r1, #00h ll1c: mov a, r0 ; chuyển trị r0 vào a rl a ; cho bit a quay vòng theo hướng trái mov r0, a ; chuyển trị a vào r0 mov p1, r0 ; cho xuất trị r0 cảng p1 ; lấy mã hình xuất cảng p2 mov a, r1 movc a, @a + dptr mov p2, a ; lấy mã hình xuất cảng p3 inc r1 mov a, r1 movc a, @a + dptr mov p3, a ; lấy mã hình xuất cảng p0 inc r1 mov a, r1 movc a, @a + dptr mov p0, a ; tránh hình bị lem inc r1 call del1 mov p1, #11111111b mov p0, #00h mov p2, #00h mov p3, #00h call del1 cjne r0, #01111111b, ll1c ret ; quay lại sau lệnh call Một minh họa: Mã quét cho xuất cảng p2 p3 p0 Mã hình xuất cảng p1 Cho xuất mã quét nhịp nhanh cảng p2, p3, p0 lúc cho xuất mã hình hay chữ cảng p1 Sau đoạn chương trình viết cho trường hợp dùng để hình chữ bảng ma trận 8x24 Phân tích câu lệnh: ; Các câu lệnh cho xuất mã quét cảng p2, mã hình p1 h1: ; đặt tên nhãn dùng cho lệnh nhẩy mov r0, #00000001b ; đặt trị khởi đầu cho r0 mov r1, #00h ; trả r1 trị ll1: mov a, r0 ; cho chuyển trị r0 a rr a ; cho bit a, quay vòng qua theo hướng bên phải mov r0, a ; chuyển trị có a vào r0 mov p2, r0 ; cho xuất trị r0 ở cảng p2 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; lấy mã bit bảng theo trị a, cho cất vào a mov p1, a ; cho xuất trị cảng p1 inc r1 ; cho tăng trị r1 lên +1 để chuẩn bị lấy dòng mã call del1 ; gọi chương trình làm châm để tạo mức sáng cho led mov p2, #00h ; cho chân cảng p2 xuống mức để tắt Led mov p1, #0ffh ; Cho chân cảng p1 lên mức cũng để tắt Led call del1 ; cho gọi trìng làm chậm để xóa Led tránh lem cjne r0, #00000001b, ll1 ; so sánh trị r0, thấy chưa quay đủ nhịp tiếp tục ; Các câu lệnh cho xuất mã quét cảng p3, mã hình cảng p1 ll2: ; đặt tên nhãn dùng cho lệnh nhẩy mov a, r0 ; lại chuyển trị r0 vào a rr a ; cho quay vòng bit a theo hướng bên phải mov r0, a ; chuyển trị a vào r0 mov p3, r0 ; cho xuất trị r0 cảng p3 mov a, r1 ; chuyển trị có r1 vào a movc a, @a + dptr ; cho lấy mã bảng cất vào a mov p1, a ; cho trị a xuất cảng p1 inc r1 ; tăng trị r1 lên +1 để lấy dòng mã hình call del1 ; gọi chương trình làm chậm mov p3, #00h ; đặt chân cảng p3 xuống mức mov p1, #0ffh ; đặt chân cảng p1 lên mức call del1 ; cho gọi chương trình làm chậm cjne r0, #00000001b, ll2 ; so sánh trị r0 để định hướng nhẩy ; Các câu lệnh cho xuất mã quét cảng p0, mã hình cảng p1 ll3: ; đặt tên nhãn dùng cho lệnh nhẩy mov a, r0 ; chuyển trị a vào r0 rr a ; cho bit a quay vòng qua hướng phải mov r0, a ; chuyển trị a trở lại r0 mov p0, r0 ; cho trị r0 xuất cảng p0 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; lấy mã bit bảng cất vào a mov p1, a ; cho trị a xuất cảng p1 inc r1 ; tăng trị r1 lên +1 để lấy dòng mã call del1 ; gọi chương trình làm chậm mov p0, #00h ; đặt chân cảng p0 xuống mức mov p1, #0ffh ; đặt bit cảng p1 lên mức call del1 ; gọi chương trình làm chậm cjne r0, #00000001b, ll3 ; so sánh trị r0 để định hướng nhẩy ret ; quay lại sau lệnh call Cách 2: Mã quét cho xuất p1và mã hình hay chữ cho xuất cảng p2, p3, p0 Một minh họa: Cho xuất mã quét nhanh cảng p1, mã hình lần lượt cho xuất cảng p2, cảng p3, cảng p0 Phân tích câu lệnh: h1b: ; đặt tên nhãn cho lệnh nhẩy mov r0, #11111110b ; đặt trị khởi đầu cho nhịp quét mov r1, #00h ; trả trị khởi đầu cho r1 ll1b: mov a, r0 ; chuyển trị r0 vào a rr a ; cho bit a quay vòng qua phải mov r0, a ; chuyển trị a r0 mov p1, r0 ; cho xuất trị r0 cảng p1 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; lấy mã địa chỉ bảng cho cất vào a mov p2, a ; cho xuất bit mã hình cảng p2 inc r1 ; tăng trị r1 lên +1 mov a, r1 ; lại chuyển trị r1 vào a movc a, @a + dptr ; lại lấy tiếp bit mã hình cất vào a mov p3, a ; cho xuất bit mã hình cảng p3 inc r1 ; lần laị tăng trị r1 lên +1 mov a, r1 ; lại chuyển trị r1 vào a movc a, @a + dptr ; lại lấy tiếp bit mã hình cho cất vào a mov p0, a ; cho xuất bit mã hình cảng p0 inc r1 ; lại tăng trị r1 lên +1, chuẩn bị lấy tiếp mã hình call del1 ; gọi chương trình làm chậm mov p1, #11111111b ; xóa xung quét tránh lem hình mov p0, #00h ; xóa mã hình p0 mov p2, #00h ; xóa mã hình p2 mov p3, #00h ; xóa mã hình p3 call del1 ; gọi chương trình làm chậm cjne r0, #11111110b, ll1b ; so sánh trị a với mã quét khởi đầu để nhẩy ret ; quay lại sau lệnh call Phân tích cách viết chương trình nguồn tổng hợp: org 0000h ; khởi đầu chương trìng nguồn slan equ 20h ; đặt tên slan "số lần" cho 20h bd: call xoa ; gọi chương trình xóa mov r3, #0 ; đặt trị vào r1 call h2 ; cho gọi trình mở mov p1, #11111111b ; xóa mov dptr, #b_1 ; cho chữ Phúc st: mov r4, #10 ; nạp trị 10 vào r4 tta: call h1 ; cho gọi chương trình có tên nhãn h1 djnz r4, tta ; cho lập lại call h1 10 lần ; inc dptr ; tạm dừng dời chữ Phúc inc r3 ; tăng trị r3 theo bước +1 cjne r3, #26, st ; so sánh trị r3 để định hướng nhẩy mov r3, #0 ; trả trị r3 mov p1, #11111111b ; cho tắt bit cảng p1 mov dptr, #b_2 ; cho chữ Lan st2: mov r4, #10 ttb: call h1 djnz r4, ttb ; inc dptr 10 ttb2a: call h1 djnz r4, ttb2a ; inc dptr inc r3 cjne r3, #26, st22a mov 3, #0 call xoa mov dptr, #b_2cb ; cho chữ TÂNst22b: mov r4, #10 ttb2b: call h1 djnz r4, ttb2b ; inc dptr inc r3 cjne r3, #26, st22b mov 3, #0 call h4a ; hạ xuống call h4 ; kéo lên call xoa mov dptr, #b_2a ; cho chữ Phúc Lan, chữ chạyst5a: mov r4, #20 tte1: call h1 djnz r4, tte1 inc dptr inc r3 cjne r3, #54, st5a mov r3, #0 call xoa mov slan, #3 ttuc: mov dptr, #b_4 ; cho chữ Chàost4: mov r4, #10 ttd: call h1 djnz r4, ttd ;inc dptr inc r3 cjne r3, #10, st4 mov r3, #0 mov p0, #00h mov p2, #00h mov p3, #00h call delay call xoa mov dptr, #b_4b ; cho chữ Bạnst4a: mov r4, #10 ttd1: call h1 djnz r4, ttd1 ;inc dptr inc r3 cjne r3, #10, st4a mov r3, #0 mov p0, #00h mov p2, #00h 12 mov p3, #00h call delay djnz slan, ttuc call xoa mov dptr, #b_3 ; cho chữ Tạp chí điện tử Việt Nam, chữ chạyst3: mov r4, #15 ttc: call h1 djnz r4, ttc inc dptr inc r3 cjne r3, #122, st3 mov r3, #0 call xoa mov dptr, #b_5 ; PHONE : 39235347, số điện thoại, chữ chạyst5: mov r4, #20 tte: call h1 djnz r4, tte inc dptr inc r3 cjne r3, #79, st5 mov r3, #0 call h4a ; hạ xuống call h4 ; kéo lên call xoa mov dptr, #b_9 ; cho hình hàng câyst9: mov r4, #20 tti: call h1 djnz r4, tti ; inc dptr inc r3 cjne r3, #26, st9 mov 3, #0 call xoa mov slan, #14 lamt: mov dptr, #b_10 ; hình Logo mov r3, #0 qlai: mov r2, #12 llai: call h1b djnz r2, llai inc dptr inc dptr inc dptr inc r3 cjne r3, #16, qlai djnz slan, lamt call xoa mov dptr, #b_6 ; hàng chữ CHUYEN BAN CAC LINH KIEN DIEN TU ABCDEFGHIJKLMNOPQst6: mov r4, #8 ttf: call h1 djnz r4, ttf inc dptr 13 inc r3 cjne r3, #255, st6 mov r3, #0 call xoa mov dptr, #b_7 ; hàng chữ RSTXYZUVWst7: mov r4, #8 ttg: call h1 djnz r4, ttg inc dptr inc r3 cjne r3, #52, st7 mov r3, #0 call xoa mov slan, #6 lamt1: mov dptr, #b_11 ; cho hình Logo mov r3, #0 qlai1: mov r2, #12 llai1: call h1b djnz r2, llai1 inc dptr inc dptr inc dptr inc r3 cjne r3, #16, qlai1 djnz slan, lamt1 call xoa mov slan, #2 lamt2: mov dptr, #b_12 ; cho hình Logo điện trở mov r3, #0 qlai2: mov r2, #50 llai2: call h1b djnz r2, llai2 inc dptr inc dptr inc dptr inc r3 cjne r3, #16, qlai2 djnz slan, lamt2 call xoa mov slan, #10 lamt3: mov dptr, #b_13 ; cho hình Logo giọt nước mov r3, #0 qlai3: mov r2, #40 llai3: call h1c djnz r2, llai3 inc dptr inc dptr inc dptr inc r3 14 cjne r3, #16, qlai3 djnz slan, lamt3 call xoa mov slan, #4 lamt4: mov dptr, #b_14 ; cho hình Logo mov r3, #0 qlai4: mov r2, #12 llai4: call h1b djnz r2, llai4 inc dptr inc dptr inc dptr inc r3 cjne r3, #16, qlai4 djnz slan, lamt4 call xoa mov dptr, #b_8 ; hình nhàst8: mov r4, #30 tth: call h1 djnz r4, tth ; inc dptr inc r3 cjne r3, #26, st8 mov 3, #0 call h3 ; kéo lên call delay call delay jmp bd h2: ; trình mở mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh call delay mov p3, #11100111b call delay mov p3, #11000011b call delay mov p3, #10000001b call delay mov p3, #00000000b call delay mov p2, #11111110b mov p0, #01111111b call delay mov p2, #11111100b mov p0, #00111111b call delay mov p2, #11111000b mov p1, #00h 15 mov p0, #00011111b call delay mov p2, #11110000b mov p0, #00001111b call delay mov p2, #11100000b mov p0, #00000111b call delay mov p2, #11000000b mov p0, #00000011b call delay mov p2, #10000000b mov p0, #00000001b call delay mov p2, #00000000b mov p0, #00000000b call delay call delay ret h3: ; trình kéo màn, sáng từ bên vào mov p0, #00h mov p2, #00h mov p3, #00h call delay mov p2, #10000000b mov p0, #00000001b call delay mov p2, #11000000b mov p0, #00000011b call delay mov p2, #11100000b mov p0, #00000111b call delay mov p2, #11110000b mov p0, #00001111b call delay mov p2, #11111000b mov p0, #00011111b call delay mov p2, #11111100b mov p0, #00111111b call delay mov p2, #11111110b mov p0, #01111111b call delay 16 mov p1, #00h mov p2, #11111111b mov p0, #11111111b call delay mov p3, #10000001b call delay mov p3, #11000011b call delay mov p3, #11100111b call delay mov p3, #11111111b call delay call delay ret h4: ; kéo lên mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh call delay call delay setb p1.7 call delay setb p1.6 call delay setb p1.5 call delay setb p1.4 call delay setb p1.3 call delay setb p1.2 call delay setb p1.1 call delay setb p1.0 call delay call delay ret h4a: ; hạ xuống call delay call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.0 mov p1, #00h mov p1, #0ffh 17 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.1 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.2 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.3 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.4 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.5 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.6 call delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.7 call delay call delay ret ; đoạn chương trình dùng để in hình ma trận 8x24, mã hình xuất cảng p1 h1: ; đặt tên nhãn dùng cho lệnh nhẩy mov r0, #00000001b ; đặt trị khởi đầu cho lệnh quay vòng mov r1, #00h ; đặt trị khởi đầu dùng để lấy mã hình bảng ll1: mov a, r0 ; chuyển trị r0 vào a để dùng lệnh rr a rr a ; cho bit a quay vòng theo hướng phải 18 mov r0, a ; chuyển trị a trở lại r0 mov p2, r0 ; cho xuất trị r0 cảng p2 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; truy lấy mã hình bảng cất vào a mov p1, a ; cho xuất mã hình a cảng p1 inc r1 ; tăng trị r1 lên +1 để lấy mã hình call del1 ; gọi trê mov p2, #00h ; tắt bit cảng p2 mov p1, #0ffh ; tắt ́ bit cảng p1 call del1 ; gọi trê cjne r0, #00000001b, ll1 ; so sánh r0 với mã quét để chọn hướng nhẩy ll2: mov a, r0 ; chuyển trị r0 vào a rr a ; cho bit a quay vòng theo hướng phải mov r0, a ; chuyển trị a vào r0 mov p3, r0 ; cho trị mã quét r0 xuất ở cảng p3 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; truy lấy mã hình bảng cất vào a mov p1, a ; cho xuất mã hình a cảng p1 inc r1 ; tăng trị r1 lên +1 để lấy mã hình call del1 ; gọi trê mov p3, #00h ; tắt bit cảng p3 mov p1, #0ffh ; tắt bit cảng p1 call del1 ; gọi trê cjne r0, #00000001b, ll2 ; so sánh r0 mã quét để chọn hướng nhẩy ll3: mov a, r0 ; chuyển trị r0 vào a rr a ; cho bit a quay vòng theo hướng phải mov r0, a ; chuyển trị a trở lại r0 mov p0, r0 ; cho xuất trị mã quét r0 cảng p0 mov a, r1 ; chuyển trị r1 vào a movc a, @a + dptr ; truy lấy mã hình bảng cất vào a mov p1, a ; cho xuất trị mã hình a cảng p1 inc r1 ; tăng trị r1 lên +1 để lấy mã hình call del1 ; gọi trê mov p0, #00h ; cho tắt bit cảng p0 mov p1, #0ffh ; cho tắt bit cảng p1 call del1 ; gọi trê cjne r0, #00000001b, ll3 ; so sánh trị r0 với mã quét để định hướng nhẩy ret ; quay lại sau lệnh call 19 del1: v6: mov r7, #3 mov r6, #50 djnz r6, $ djnz r7, v6 ret delay: mov r7, #5 v6a: mov r6, #50 v5: mov r5, #250 djnz r5, $ djnz r6, v5 djnz r7, v6a ret xoa: mov p0, #00000000b mov p2, #00000000b mov p3, #00000000b mov p1, #11111111b ret ; đoạn chương trình cho xuất mã hình cảng p2, p3, p0h1b: mov r0, #11111110b mov r1, #00h ll1b: mov a, r0 rr a mov r0, a mov p1, r0 mov a, r1 movc a, @a + dptr mov p2, a inc r1 mov a, r1 movc a, @a + dptr mov p3, a inc r1 mov a, r1 movc a, @a + dptr mov p0, a inc r1 call del1 mov p1, #11111111b mov p0, #00h mov p2, #00h 20 mov p3, #00h call del1 cjne r0, #11111110b, ll1b ret ; đoạn chương trình cho xuất mã hình cảng p2, p3, p0h1c: mov r0, #01111111b mov r1, #00h ll1c: mov a, r0 rl a mov r0, a mov p1, r0 mov a, r1 movc a, @a + dptr mov p2, a inc r1 mov a, r1 movc a, @a + dptr mov p3, a inc r1 mov a, r1 movc a, @a + dptr mov p0, a inc r1 call del1 mov p1, #11111111b mov p0, #00h mov p2, #00h mov p3, #00h call del1 cjne r0, #01111111b, ll1c ret ; bảng dùng đặt mã hình chữ Bạn tự soạnb_1: ; tạo chữ Phúcdb 11111111b db 00000001b db 00000001b db 11101101b db 11101101b db 11110011b db 11111111b db 00000001b db 00000001b db 11101111b db 11101111b db 00000001b db 11111111b 21 db 10000001b db 00000001b db 01111101b db 01111110b db 10000001b db 11111111b db 10000011b db 00000001b db 01111101b db 01111101b db 10011011b b_2: ; tạo chữ Landb 11111111b db 11111111b db 11111111b db 00000001b db 00000001b db 01111111b db 01111111b db 01111111b db 11111111b db 00000111b db 00000011b db 11011101b db 11011011b db 00000111b db 11111111b db 00000001b db 00000011b db 11110111b db 11101111b db 00000001b db 11111111b db 11111111b db 11111111b db 11111111b b_2a: ; tạo chữ Phúc * Landb 11111111b db 11111111b db 00000001b db 00000001b db 11101101b db 11101101b db 11110011b db 11111111b db 00000001b 22 db 00000001b db 11101111b db 11101111b db 00000001b db 11111111b db 10000001b db 00000001b db 01111101b db 01111110b db 10000001b db 11111111b db 10000011b db 00000001b db 01111101b db 01111101b db 10011011b db 11111111b db 11111111b db 10111011b db 11010111b db 00000001b db 11010111b db 10111011b db 11111111b db 11111111b db 00000001b db 00000001b db 01111111b db 01111111b db 01111111b db 11111111b db 00000111b db 00000011b db 11011101b db 11011011b db 00000111b db 11111111b db 00000001b db 00000011b db 11110111b db 11101111b db 00000001b db 11111111b db 11111111b db 11111111b db 11111111b 23 db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b b_2b: ; tạo chữ Ndb 11111111b db 00000011b db 11110111b db 11101111b db 11011111b db 00000011b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b 24 b_2ba: ; tạo chữ NHdb 11111111b db 00000011b db 11110111b db 11101111b db 11011111b db 00000011b db 11111111b db 00000011b db 11011111b db 11011111b db 11011111b db 00000011b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b db 11111111b b_2bb: ; tạo chữ NHÂdb 11111111b db 00000011b db 11110111b db 11101111b db 11011111b db 00000011b db 11111111b db 00000011b db 11011111b db 11011111b db 11011111b db 00000011b db 11111111b db 00001111b db 11010101b db 01011010b db 11010101b db 00001111b db 11111111b db 11111111b db 11111111b 25 db 11111111b db 11111111b db 11111111b db 11111111b b_2bc: ; tạo chữ NHÂTdb 11111111b db 00000011b db 11110111b db 11101111b db 11011111b db 00000011b db 11111111b db 00000011b db 11011111b db 11011111b db 11011111b db 00000011b db 11111111b db 00001111b db 11010101b db 01011010b db 11010101b db 00001111b db 11111111b db 11111011b db 11111011b db 00000011b db 11111011b db 11111011b db 11111111b 26 [...]... delay mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh clr p1.7 call delay call delay ret ; đoạn chương trình dùng để in hình trên ma trận 8x24, ma hình xuất trên cảng p1 h1: ; đặt tên nhãn dùng cho lệnh nhẩy mov r0, #00000001b ; đặt trị khởi đầu cho lệnh quay vòng mov r1, #00h ; đặt trị khởi đầu dùng để lấy ma hình trong bảng ll1: mov a, r0 ; chuyển trị trong r0 vào thanh a để dùng lệnh rr a rr a ;... r1 vào thanh a movc a, @a + dptr ; truy lấy ma hình trong bảng cất vào thanh a mov p1, a ; cho xuất ma hình trong a ra cảng p1 inc r1 ; tăng trị trong r1 lên +1 để lấy ma hình tiếp theo call del1 ; gọi trê mov p2, #00h ; tắt 8 bit trên cảng p2 mov p1, #0ffh ; tắt ́ bit trên cảng p1 call del1 ; gọi trê cjne r0, #00000001b, ll1 ; so sánh thanh r0 với ma quét để chọn hướng nhẩy ll2: mov a, r0... theo hướng phải mov r0, a ; chuyển trị trong a vào thanh r0 mov p3, r0 ; cho trị ma quét trong r0 xuất ra ở cảng p3 mov a, r1 ; chuyển trị trong thanh r1 vào thanh a movc a, @a + dptr ; truy lấy ma hình trong bảng cất vào thanh a mov p1, a ; cho xuất ma hình trong a ra cảng p1 inc r1 ; tăng trị trong r1 lên +1 để lấy ma hình tiếp theo call del1 ; gọi trê mov p3, #00h ; tắt 8 bit trên cảng p3... r0 và ma quét để chọn hướng nhẩy ll3: mov a, r0 ; chuyển trị trong r0 vào thanh a rr a ; cho 8 bit trong thanh a quay vòng theo hướng phải mov r0, a ; chuyển trị trong thanh a trở lại thanh r0 mov p0, r0 ; cho xuất trị ma quét trong r0 ra cảng p0 mov a, r1 ; chuyển trị trong thanh r1 vào thanh a movc a, @a + dptr ; truy lấy ma hình trong bảng cất vào thanh a mov p1, a ; cho xuất trị ma hình... chương trình cho xuất ma hình trên cảng p2, p3, p0h1b: mov r0, #11111110b mov r1, #00h ll1b: mov a, r0 rr a mov r0, a mov p1, r0 mov a, r1 movc a, @a + dptr mov p2, a inc r1 mov a, r1 movc a, @a + dptr mov p3, a inc r1 mov a, r1 movc a, @a + dptr mov p0, a inc r1 call del1 mov p1, #11111111b mov p0, #00h mov p2, #00h 20 mov p3, #00h call del1 cjne r0, #11111110b, ll1b ret ; đoạn chương trình cho xuất ma ... mov p1, a ; cho xuất trị ma hình trong thanh a ra cảng p1 inc r1 ; tăng trị trong r1 lên +1 để lấy ma hình tiếp theo call del1 ; gọi trê mov p0, #00h ; cho tắt 8 bit trên cảng p0 mov p1, #0ffh ; cho tắt 8 bit trên cảng p1 call del1 ; gọi trê cjne r0, #00000001b, ll3 ; so sánh trị trong r0 với ma quét để định hướng nhẩy ret ; quay lại sau lệnh call 19 del1: v6: mov r7, #3 mov r6, #50 djnz r6,... slan, lamt4 call xoa mov dptr, #b_8 ; hiện hình căn nhàst8: mov r4, #30 tth: call h1 djnz r4, tth ; inc dptr inc r3 cjne r3, #26, st8 mov 3, #0 call h3 ; kéo màn lên call delay call delay jmp bd h2: ; trình mở màn mov p0, #0ffh mov p2, #0ffh mov p3, #0ffh call delay mov p3, #11100111b call delay mov p3, #11000011b call delay mov p3, #10000001b call delay mov p3, #00000000b call delay mov p2, #11111110b... #11100000b mov p0, #00000111b call delay mov p2, #11000000b mov p0, #00000011b call delay mov p2, #10000000b mov p0, #00000001b call delay mov p2, #00000000b mov p0, #00000000b call delay call delay ret h3: ; trình kéo màn, sáng từ 2 bên vào mov p0, #00h mov p2, #00h mov p3, #00h call delay mov p2, #10000000b mov p0, #00000001b call delay mov p2, #11000000b mov p0, #00000011b call delay mov p2, #11100000b... @a + dptr mov p3, a inc r1 mov a, r1 movc a, @a + dptr mov p0, a inc r1 call del1 mov p1, #11111111b mov p0, #00h mov p2, #00h mov p3, #00h call del1 cjne r0, #01111111b, ll1c ret ; các bảng dùng đặt ma hình và chữ do Bạn tự soạnb_1: ; tạo chữ Phúcdb 11111111b db 00000001b db 00000001b db 11101101b db 11101101b db 11110011b db 11111111b db 00000001b db 00000001b db 11101111b db 11101111b db 00000001b

Ngày đăng: 11/06/2016, 17:34

TỪ KHÓA LIÊN QUAN

w