51单片机驱动1616LED点阵显示动画汉字总汇编程序文档格式.docx
- 文档编号:22960822
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:35
- 大小:27.15KB
51单片机驱动1616LED点阵显示动画汉字总汇编程序文档格式.docx
《51单片机驱动1616LED点阵显示动画汉字总汇编程序文档格式.docx》由会员分享,可在线阅读,更多相关《51单片机驱动1616LED点阵显示动画汉字总汇编程序文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
查表指针指向TAB3
MOVDPTR,#TAB4;
查表指针指向TAB4
LJMPCHINESE
显示8幅画面子程序,SCREE专用,用字模软件字要倒置(表必须深256字节)
DD:
MOVB,#00H
MOVR0,#08H;
显示8幅画面
AJMPCC
CC0:
MOVA,B
ADDA,#20H;
指向下一幅画面
MOVB,A
CC:
MOVR7,#08H;
画面停留时间
MOVR3,B
MOV37H,R0
LCALLENTER
DIS00:
LCALLDISPLAY
DJNZR7,DIS00
MOVR0,37H
DJNZR0,CC0
RET
汉字上移子程序,可显示8个汉字,(表必须深256字节)
HZ:
MOVR3,#00H;
查表偏移量
MOVR5,#81H;
查表128次
MOVBACK:
MOVR4,#10H;
使显示完一个汉字
MOVBACK0:
MOVR7,#02H;
一桢画面显示时间
MOVR0,#6DH;
低8位R0指向显示缓存倒数第3个字节,以备与最后1个字节交换
MOVR1,#6CH;
高8位R1指向显示缓存倒数第4个字节,以备与倒数第2个字节交换
MOVR2,#10H;
存后移的次数
DJNZR5,MOVBACK1
RET;
显示完该表,返回
MOVBACK1:
MOVA,R0;
低8位被后移的存单元数据暂存入A
INCR0;
后移两字节
MOVR0,A;
放入要移的低8位数据
MOVA,R0;
R0指向下一个要后移的存单元
SUBBA,#04H
MOVR0,A
MOVA,R1;
高8位被后移的存单元数据暂存入A
INCR1;
INCR1
MOVR1,A;
放入要移高8位的数据
R1指向下一个要后移的存单元
DJNZR2,MOVBACK1;
显示缓存数据依次后移
MOVA,R3;
从表TAB1读入要移进50H,51H的数据
MOVCA,A+DPTR;
先给50H读数据
MOV50H,A
指向下一字节
INCA
MOVR3,A
再给51H读数据
MOV51H,A
MOV30H,R3;
保护数据
MOV31H,R4
MOV32H,R5
DISMOV:
LCALLDISPLAY;
显示当前数据
DJNZR7,DISMOV
MOVR3,30H
MOVR4,31H
MOVR5,32H
DJNZR4,MOVBACK0
MOVR7,#24H;
显示当前数据延时
DISMOV0:
DJNZR7,DISMOV0
LJMPMOVBACK
放进一幅显示数据到显示缓存子程序,要先设好指针DPTR和R3,影响R1,R2,R3
ENTER:
MOVR1,#50H;
从50H单元起把表存入
MOVR2,#20H;
查表次数
MOVA,R3
CLLOOP_:
MOVCA,A+DPTR;
查表
将表放进5X,6X单元
R1指向下一个地址空间
查表指针后移
MOVR3,A;
将指针修改结果存入R3
DJNZR2,CLLOOP_;
没查完转CLLOOP_
15MS,显示子程序,一桢32个字节,影响A,R0,R1,R3,R4,R5,R6;
.51hei./单片机网提供汉字取模工具,可显示任意汉字
DISPLAY:
MOVA,#0FFH
SETBC
MOVR6,#7FH;
赋扫描字初值,左移后初值为0FEH
MOVR5,#00H;
列扫描低8位控制
行的高8(p1)位要显示的数据起始地址
MOVR1,#10H;
扫描次数
DISLOOP:
从存读数据
MOVP2,#0FFH;
装入数据时不显示任何东西
MOVP3,#0FFH
CPLA;
数据取反以适合显示
MOVP1,A;
送入行的高8(p1)位要显示的数据
修改R0指向低8位要显示的数据
读低8位要显示的数据
MOVP0,A;
送入行的低8(p0)位要显示的数据
R0指向下一个高8(p0)位要显示的数据
LCALLNEXT;
调用列扫描程序
LCALLDELAY1MS;
显示延时
DJNZR1,DISLOOP;
一桢显示完返回
MOVP3,#0FFH;
全灭
列扫描子程序DISLOOP专用
NEXT:
JNCNEXT1;
C=0转扫描高8(p3)位行
MOVA,R6;
修改扫描字
RLA
MOVR6,A
INCR5
CJNER5,#09H,NEXT0;
R6=#0FEH时C=0
AJMPNEXT1
BACK:
RET
NEXT0:
MOVP2,R6;
扫描低8(p2)位行
AJMPBACK
NEXT1:
MOVP2,#0FFH
MOVP3,R6;
扫描高8(p3)位行
延时1MS子程序
DELAY1MS:
MOVR3,#10
D0:
MOVR4,#50
D1:
DJNZR4,D1
DJNZR3,D0
TAB1:
DB01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070H,001H,000H,01DH,070H,000H,000H
DB01FH,0F0H,011H,010H,01FH,0F0H,011H,010H,01FH,0F2H,001H,002H,001H,002H,000H,0FEH;
電
DB000H,000H,03FH,0F0H,000H,020H,000H,040H,000H,080H,001H,000H,001H,000H,001H,004H
DB0FFH,0FEH,001H,000H,001H,000H,001H,000H,001H,000H,001H,000H,005H,000H,002H,000H;
子
DB008H,000H,008H,0FCH,07EH,084H,008H,084H,0FFH,094H,041H,088H,022H,080H,014H,0FEH
DB07EH,0A4H,008H,0A4H,008H,098H,0FFH,098H,008H,0A4H,008H,0A6H,008H,0C4H,008H,080H;
報
DB000H,000H,000H,010H,03FH,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,004H,07FH,0FEH,000H,000H,000H,000H,000H,000H;
二
DB01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070H,001H,000H,01DH,070H,002H,080H
DB004H,060H,01AH,01EH,0E1H,008H,01FH,0E0H,000H,040H,002H,080H,001H,000H,001H,000H;
零
DB004H,000H,003H,000H,001H,080H,001H,000H,0FFH,0FEH,000H,000H,000H,000H,004H,080H
DB006H,040H,004H,020H,008H,010H,008H,018H,010H,00CH,020H,00CH,040H,008H,000H,000H;
六
DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H;
(空)
--水纹--**宋体,12**
当前所选字体下一个汉字对应的点阵为:
宽度x高度=128x16,调整后为:
128x16
TAB2:
DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,080H
DB001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,080H,003H,0C0H
DB003H,0C0H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H,001H,080H,002H,040H,004H,020H,008H,010H
DB008H,010H,004H,020H,002H,040H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,001H,0C0H,006H,030H,008H,008H,008H,008H,010H,004H,020H,002H,020H,002H
DB020H,002H,010H,004H,008H,008H,008H,008H,006H,030H,001H,0C0H,000H,000H,000H,000H
DB003H,0C0H,00CH,030H,010H,008H,010H,008H,060H,006H,040H,002H,080H,001H,080H,001H
DB080H,001H,080H,001H,040H,002H,060H,006H,010H,008H,010H,008H,00CH,030H,003H,0C0H
DB000H,000H,038H,01CH,046H,062H,081H,081H,080H,001H,040H,002H,040H,002H,020H,004H
DB020H,004H,040H,002H,040H,002H,080H,001H,081H,081H,046H,062H,038H,01CH,000H,000H
DB0C0H,003H,0A0H,005H,058H,01EH,024H,024H,024H,024H,01EH,078H,005H,0A0H,002H,040H
DB002H,040H,005H,0A0H,01AH,078H,024H,024H,024H,024H,058H,01AH,0A0H,005H,0C0H,003H
DB000H,000H,0C0H,003H,0B0H,00DH,088H,011H,044H,022H,025H,0A4H,012H,048H,00DH,0B0H
DB00DH,0B0H,012H,048H,025H,0A4H,044H,022H,088H,011H,0B0H,00DH,0C0H,003H,000H,000H
--福--**宋体,12**
宽度x高度=16x16,调整后为:
16x16
TAB3:
DB0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH
DB055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H
DB0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,054H,02AH,0A8H,015H,050H,00AH
DB050H,00AH,0A8H,015H,054H,02AH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H
DB0AAH,055H,054H,02AH,0A8H,015H,050H,00AH,0A0H,005H,040H,002H,080H,001H,000H,000H
DB000H,000H,080H,001H,040H,002H,0A0H,005H,050H,00AH,0A8H,015H,054H,02AH,0AAH,055H
DB0A0H,005H,040H,002H,091H,0F9H,000H,000H,074H,0F0H,019H,008H,031H,008H,058H,0F0H
DB014H,000H,011H,0F8H,012H,044H,013H,0FCH,012H,044H,091H,0F9H,040H,002H,0A0H,005H
DB020H,000H,013H,0FEH,010H,000H,0FDH,0FCH,005H,004H,009H,004H,011H,0FCH,030H,000H
DB05BH,0FEH,096H,022H,012H,022H,013H,0FEH,012H,022H,012H,022H,013H,0FEH,012H,002H
DB000H,004H,07FH,0C8H,000H,008H,03FH,0BFH,020H,0A0H,020H,090H,03FH,088H,000H,00CH
DB07FH,0DAH,044H,069H,044H,048H,07FH,0C8H,044H,048H,044H,048H,07FH,0C8H,040H,048H
DB010H,040H,010H,080H,091H,000H,073H,0FFH,014H,080H,018H,040H,040H,0FFH,05EH,092H
DB052H,092H,052H,092H,052H,0FEH,052H,092H,052H,092H,05EH,092H,040H,0FFH,000H,000H
DB012H,002H,013H,0FEH,012H,022H,012H,022H,013H,0FEH,012H,022H,096H,022H,05BH,0FEH
DB030H,000H,011H,0FCH,009H,004H,005H,004H,0FDH,0FCH,010H,000H,013H,0FEH,020H,000H
TAB4:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0C0H,0FFH,0C0H
DB0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,0B0H,002H,0C8H,002H,048H,006H,030H,002H;
STEP1
DB0FEH,000H,0FEH,000H,0F6H,000H,0F9H,007H,089H,002H,086H,001H,000H,005H,000H,002H;
STEP2
DB0FEH,0C0H,0FFH,020H,0F1H,020H,0F0H,0C7H,080H,001H,080H,007H,000H,001H,000H,007H;
STEP3
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0D8H,0FFH,0E4H
DB0FEH,024H,0FEH,018H,0F0H,000H,0F0H,001H,080H,001H,080H,007H,000H,005H,000H,005H;
STEP4
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FBH,0FFH,0FCH,0FFH,0C4H,0FFH,0C3H
DB0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,080H,001H,080H,007H,000H,004H,000H,007H;
STEP5
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB000H,000H,0F4H,058H,084H,0D4H,085H,052H,0F5H,052H,085H,052H,086H,054H,0F4H,058H
DB000H,000H,022H,05EH,022H,050H,022H,050H,023H,0DEH,022H,050H,022H,050H,0FAH,05EH
END
咕哝了很多天终于成功了,发出来供大家交流,没准儿还能对别人有些帮助,总之百利无一害……点阵大小是16*32的。
#include<
reg52.h>
#define
BLKN
2
//列锁存器
sbit
G=P1^7;
//P1.7为显示允许控制信号端口
RRCLK=P1^6;
//P1.6为输出锁存器时钟信号端
SCLR=P1^5;
//P1.5为移为寄存器清零端
void
delay(unsigned
int);
//延时函数
unsigned
char
data
dispram[32];
//显示缓存
huancun[32];
main(void)
{
code
Cmp[][32]={
{0x08,0x04,0x08,0x04,0x08,0x04,0xBF,0x7F,0x08,0x04,0x28,0x04,0x98,0x3F,0x8C,0x10,
0x0B,0x11,0x08,0x09,0x08,0x06,0x08,0x06,0x08,0x09,0x88,0x70,0x6A,0x20,0x04,0x00},//我
{0xF8,0x1F,0x80,0x00,0xFE,0x7F,0x82,0x20,0xB8,0x0E,0x80,0x00,0xB8,0x0E,0x40,0x01,
0x20,0x06,0x58,0x78,0x87,0x10,0xF8,0x07,0x00,0x02,0x40,0x01,0x80,0x00,0x80,0x00},//爱
{0x00,0x00,0xFE,0x1F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x04,0xFC,0x0F,
0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x24,0xFF,0x7F,0x00,0x00,0x00,0x00},//单
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xFE,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//片
{0x80,0x00,0x9F,0x7E,0x84,0x08,0x84,0x08,0x84,0x08,0xA4,0x08,0xBF,0x7E,0xA4,0x08,
0x94,0x08,0x84,0x08,0x84,0x08,0x5C,0x08,0x43,0x08,0x20,0x7F,0x10,0x00,0x08,0x00},//片
{0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,
0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x40,0x80,0x40,0x00,0x7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 驱动 1616 LED 点阵 显示 动画 汉字 汇编程序