⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16led.asm

📁 16X16的LED点阵控制(附原理图)
💻 ASM
字号:
;LED16x16的片选信号,其它数据信号,地址信号,写信号接开发板的相应信号.本例中片选信号通过1片138译码得到(相应的地址为0xb00x)。
RowLow   equ  0B002h;   行低八位地址
RowHigh  equ  0B003h;   行高八位地址
ColLow   equ  0B000h;   列低八位地址
ColHigh  equ  0B001h;   列高八位地址
bitmask  equ  40h
base     equ  42h

         org  0
         jmp  main
main:
         mov  bitmask,  #0
         mov  bitmask+1,#0

         ;清屏
         mov  a,#00h           ;列驱动低有效
         mov  dptr,#RowLow
         movx @dptr,a
         mov  dptr,#RowHigh
         movx @dptr,a
         mov  a,#0ffh          ;行驱动高有效
         mov  dptr,#ColLow
         movx @dptr,a
         mov  dptr,#ColHigh
         movx @dptr,a

         mov  r5, #0           ;汉字个数
loop0:
         mov  r4, #50          ;每个字显示的时间
loop:
         mov  bitmask, #01     ;选择显示行
         mov  r2, #16          ;每行16列

         mov  a,r5             ;字模的起始地址
         mov  b,#32
         mul  ab
         mov  dptr,#Font
         add  a,dpl
         mov  base, a
         mov  a,b
         addc a,dph
         mov  base+1,a
nextrow:
         mov  a,#00h           ;先关闭显示
         mov  dptr,#RowLow
         movx @dptr,a
         mov  dptr,#RowHigh
         movx @dptr,a

         mov  dpl, base        ;取出该行字模
         mov  dph, base+1
	 clr  a
         movc a, @a+dptr
         mov  r0,a
         inc  dptr
	 clr  a
         movc a,@a+dptr
         mov  r1,a
         inc  dptr
         mov  base  , dpl     ;指向下行字模
         mov  base+1, dph

         mov  dptr,#ColLow    ;输出字模数据
         mov  a,r0
         cpl  a
         movx @dptr,a
         mov  dptr,#ColHigh
         mov  a,r1
         cpl  a
         movx @dptr,a

         mov  a,bitmask       ;点亮该行
         mov  dptr,#RowLow
         movx @dptr,a
         mov  a,bitmask+1
         mov  dptr,#RowHigh
         movx @dptr,a

         clr  c
         mov  a,bitmask
         rlc  a
         mov  bitmask,a
         mov  a,bitmask+1
         rlc a
         mov  bitmask+1,a    ;指向下一行

         mov  r7,10
         call delay
         djnz r2, nextrow
	 djnz r4, loop       ;每个字要重复显示

	 inc  r5             ;指向下个汉字
	 mov  a,r5
	 cjne r5,#10, nextchar
         jmp  main           ;
nextchar:
         jmp  loop0

delay:
ddd:
         djnz r7,ddd
         ret

;字模   每个16x16点阵汉字为: 8位x2x16 = 256位, 32字节
Font:
         ;南
         DB    008H, 040H, 014H, 041H, 004H, 041H, 004H, 041H
         DB    0F4H, 05FH, 004H, 041H, 004H, 041H, 0F4H, 05FH
         DB    044H, 044H, 024H, 048H, 0FEH, 07FH, 004H, 001H
         DB    000H, 001H, 0FEH, 0FFH, 004H, 001H, 000H, 001H
         ;京
         DB    000H, 002H, 008H, 025H, 018H, 011H, 030H, 009H
         DB    040H, 009H, 000H, 001H, 0F0H, 01FH, 010H, 010H
         DB    010H, 010H, 010H, 010H, 0F8H, 01FH, 010H, 000H
         DB    0FEH, 0FFH, 004H, 001H, 000H, 001H, 000H, 002H

         end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -