1616点阵显示屏文档格式.docx
- 文档编号:20086671
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:9
- 大小:623.27KB
1616点阵显示屏文档格式.docx
《1616点阵显示屏文档格式.docx》由会员分享,可在线阅读,更多相关《1616点阵显示屏文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
最大可显示16*16汉字
P0口接上行线,P2口接下行线,P3口接扫描线
编
写:
JiangX.net
改
编:
springvirus
*********************************************************/
#include<
AT89X52.h>
#definehang1
P0
//上行线
#definehang2
P2
//下行线
#definelie
P1//列线
#definesum
sizeof(hanzi)/32//自动计算汉字字数
/*****参数设置*****/
#defineziti
16
//字体大小(宽度)
#definelight
50
//显示亮度
#definemove_speed50
//移动速度
unsignedcharcodehanzi[]={
/*--文字:
自--*/
/*--宋体12;
此字体下对应的点阵为:
宽x高=16x16
--*/
0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,
制--*/
0x00,0x50,0x4F,0x4A,0x48,0xFF,0x48,0x48,0x48,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00,
0x00,0x00,0x3F,0x01,0x01,0xFF,0x21,0x61,0x3F,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,
小--*/
0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00,
0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00,
型--*/
0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00,
0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00,
点--*/
0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0xF4,0x24,0x00,0x00,0x00,
0x00,0x40,0x30,0x07,0x12,0x62,0x02,0x0A,0x12,0x62,0x02,0x0F,0x10,0x60,0x00,0x00,
阵--*/
0xFE,0x02,0x12,0x2A,0xC6,0x88,0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x88,0x88,0x00,0x00,
0xFF,0x00,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x00,
显--*/
0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00,
示--*/
0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00,
0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00,
系--*/
0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00,
0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00,
统--*/
0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00,
0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00,
/*****空白,用于区分显示内容的头和尾*****/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uintk=0,j;
//移位变量,k:
移位个数
uinta=0;
//用于软件延时
ulongs=(sum+1)*ziti;
//s为全部列数
uchardisbuf[16][2];
//定义显示缓冲区(16行两列的二维数组以开辟1个16*16汉字的空间)
bit
move_st;
//移动标志
/*****可变延时*****/
voiddelay(void)
{
uchari;
for(i=0;
i<
light;
i++);
}
/*****初始化子程序*****/
voidinit(void)
{
TMOD=0x1;
TH0=0xfc;
TL0=0x18;
/*****计数器中断程序*****/
voidtimer0(void)interrupt1
//中断处理
a++;
/*****汉字循环显示*****/
voidrun_move(void)
uchark1,k2;
if(a>
=move_speed)//move_speed控制移动速度
if(k>
s-ziti-1)k=0;
//整屏移动列数
k1=k/ziti;
k2=k%ziti;
j=ziti*2*k1+k2;
//显示指针
k++;
move_st=1;
a=0;
}
/*****装载显示数据至缓冲区*****/
voidload_hanzi(void)
run_move();
if(move_st)
{
for(i=0;
15;
i++)
{
disbuf[i][0]=disbuf[i+1][0];
//移位处理
disbuf[i][1]=disbuf[i+1][1];
}
disbuf[15][0]=hanzi[j];
disbuf[15][1]=(hanzi[ziti+j]);
move_st=0;
}
/*****扫描显示数据缓冲区的内容*****/
voiddisplay(void)
for(i=0;
16;
lie=i;
hang1=disbuf[i][0];
hang2=disbuf[i][1];
delay();
hang1=0;
hang2=0;
/*****主程序*****/
voidmain(void)
init();
EA=1;
//开中断
TR0=1;
ET0=1;
while
(1)
{load_hanzi();
display();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1616 点阵 显示屏