硬件线路没要求的话,简单
;16X16LED点阵流动显示
;逐列、逆向(低位开始)扫描
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV DPTR,#TAB ;字码表初址赋值
MOV R1,#00H ;列控制码
MOV R4,#96 ;移动" "及"机电工程系"6个字符,共96列
CM: MOV R5,#5 ;每屏反复显示5次
MOV R3,#16 ;列数
C1: MOV R2,#0 ;取码指针
C16: MOV P0,#00H
MOV P2,#00H ;关显示
CLR P3.0
MOV A,R2
MOVC A,@A+DPTR ;取当前列显示字码的第一个字节
MOV P0,A ;送1~8行控制口
INC R2
MOV A,R2
MOVC A,@A+DPTR ;取当前列的显示字码的第二个字节
MOV P2,A ;送9~15行控制口
INC R2
MOV P1,R1 ;送列控制码
INC R1
ACALL D1MS ;显示2MS
ACALL D1MS
DJNZ R3,C16 ;一屏16列是否显示完
MOV R3,#16
DJNZ R5,C1 ;未显示5次,继续
INC DPTR ;一屏反复显示5次完,字码表初值加2
INC DPTR
DJNZ R4,CM ;96列未移动完,继续
AJMP MAIN ;96列移动完,返回,重新从" "开始显示
D1MS: MOV R6,#2
MOV R7,#248
DJNZ R7,$
DJNZ R6,$-4
RET
TAB: ;(0) (1) 机(2) 电(3) 工(4) 程(5) 系(6)
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H;
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H;" ",0
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H;
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H;" ",1
DB 000H, 008H, 040H, 00CH, 040H, 006H, 0FEH, 07FH;
DB 0FEH, 07FH, 020H, 023H, 020H, 032H, 000H, 01CH;
DB 0E0H, 00FH, 0F0H, 003H, 0D0H, 00FH, 0F0H, 01FH;
DB 030H, 010H, 000H, 010H, 000H, 01CH, 000H, 01CH;"机",2
DB 000H, 000H, 000H, 000H, 0E0H, 001H, 0E0H, 007H;
DB 020H, 007H, 020H, 005H, 0FEH, 03FH, 0FEH, 07FH;
DB 090H, 042H, 010H, 042H, 0F0H, 043H, 0F0H, 041H;
DB 000H, 040H, 000H, 078H, 000H, 038H, 000H, 000H;"电",3
DB 000H, 000H, 000H, 010H, 000H, 010H, 000H, 010H;
DB 020H, 010H, 020H, 010H, 020H, 010H, 0E0H, 01FH;
DB 0F0H, 00FH, 010H, 008H, 010H, 008H, 010H, 008H;
DB 000H, 008H, 000H, 008H, 000H, 008H, 000H, 000H;"工",4
DB 080H, 010H, 080H, 018H, 090H, 00CH, 090H, 006H;
DB 0F8H, 0FFH, 0FCH, 0FFH, 04CH, 026H, 040H, 024H;
DB 070H, 025H, 078H, 025H, 048H, 03FH, 0E8H, 03FH;
DB 0B8H, 012H, 0B8H, 012H, 000H, 010H, 000H, 010H;"程",5
DB 000H, 000H, 000H, 000H, 000H, 040H, 008H, 074H;
DB 048H, 034H, 068H, 006H, 078H, 047H, 0D8H, 0FDH;
DB 0CCH, 0FEH, 066H, 002H, 026H, 00BH, 000H, 01BH;
DB 000H, 032H, 000H, 020H, 000H, 000H, 000H, 000H;"系",6
END
51单片机用汇编语言驱动16*16点阵显示“机电工程系”汉字
MAIN:MOVDPTR,#TAB;字码表初址赋值 MOVR1,#00H;列控制码 MOVR4,#96;移动" "及"机电工程系"6个字符,共96列 CM:MOVR5,#5;每屏反复显示5次 MOVR3,#16;列数 C1:MOVR2,#0;取码指针 C16:MOVP0,#00H MOVP2,#00H;关显示 CLRP3.0 MOVA,R2 MOVCA,@A+DPTR;取当前列显示字码的第一...
求一款51单片机16*16点阵显示静态汉字的C例程
sbit en=P3^7; \/\/1602的使能控制线 \/*P2口接1602的D0~D7,注意不要接错了顺序,我以前可在这上面吃过亏~*\/ uchar code table[]="???"; \/\/要显示的内容1放入数组tablel uchar code table1[]="???"; \/\/要显示的内容2放入数组table1 void delay(uint n) \/\/延时函数 { u...
...C语言编写程序,使液晶显示器显示16*16点阵汉字,请问怎么编写,谢谢...
include"at89x51.h"unsigned char code led[]={0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,0x90,0x00,0x18,0x1D,0xF7,0x13,0x14,0x11,0x54,0x15,0x94,0x19,0x14,0x51,0x14,0x91,0xF6,0x7F,0x04,0x11,0x00,0x01,0x00,0x00,0x04,0x04,0x04,0x02,0x04,0x01,0xC4,0xF...
51单片机16*16点阵4个汉字LED屏显示 请帮忙修改下程序,其他都不变...
LED上下移动很简单,麻烦一点的是左右移动。程序懒得写了,给你个思路吧,你在内存中开辟(16÷8+1)×16=48个字节的缓存。每行3个字节,实际显示2个字节的内容。在定时器中断中定时扫描列的内容。第一次中断,从行缓存头上开始,每行送16个BIT,共16行,第二次中断,从行缓存头上开始,每行送17...
求51单片机控制的16*16点阵代码
\/\/这是16*16点阵 显示一个字的代码。。。 临时写的。。。include <reg52.h> include <intrins.h> define IOdata \/\/数据口定义 define uchar unsigned char sbit row0 \/\/0行 定义 sbit row1 \/\/1行 定义 sbit col0 \/\/0列 定义 sbit col1 \/\/1列 定义 uchar code word_tab[][32]= {...
51单片机c语言控制16*16LED行共阳点阵显示“朱”字,用proteus模拟无法显...
www.dzkfw.com.cn\/myxin\/51c_language.chm 单片机c语言
51单片机下,谁能教我一下 16X16点阵怎么 让字移动起来啊?
多建一个缓冲区,将移位的数据从缓冲区读出加入到显示字符的最后一位,前面的数据移动一位,移动那一位数据加在前一位数据的最后一位。缓冲区的数据移完后再加入,一般是8位的数据。也就是说移8次加载一次数据到缓冲区。
我想编写16*16点阵的左移程序。用C语言,51单片机。你能否帮我编一个小...
{ for(n=0;n<32;n++) \/\/ for(m=0;m<8;m++) \/\/重复显示8次 { temp=0;\/\/ 不加此条,流动飞快 for(num=n;num<16+n;num++){ WriteByte(tab[2*num+1]);WriteByte(tab[2*num+0]);P1=temp;ST_CP=0;ST_CP=1;delay_ms(1);temp++;if(temp==16)temp=0;} } } } ...
你好,51单片机16*16点阵滚动显示程序能不能发个给我,谢谢了!
} tim=time; while(tim--) display(1); } } 追问 程序编译有错误呢? 我是用的4个8*8点阵拼的16*16的点阵,这个程序能行吗? 追答 我是用的是4个8*8点阵拼的16*16的点阵,可以的,那程序有点问题,就是那xin我把他删了,你改下就可以了。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他...
【51单片机系列】proteus中创建16x16LED点阵
首先,文章详细介绍了在Proteus中测试8x8点阵的电流方向和行列控制接口的方法,结果表明红色点阵电流方向为上->下,蓝色、绿色和橘色点阵为下->上,红色点阵接口为上列下行,其他颜色点阵为上行下列。其次,文章提供了使用8x8点阵制作16x16点阵的详细步骤,包括创建、分解、复制、制作Symbol等操作,最终得到16x...