找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1624|回复: 1
收起左侧

51单片机驱动16X16点阵汉字显示

[复制链接]
ID:412177 发表于 2023-4-4 16:30 | 显示全部楼层 |阅读模式
51hei图片20230404155445.png

//16x16点阵,可暂停,左右移动,取摸方式;pctolcd2002完美版,
//阴码,逐列式,顺向, 最简单
、、、、
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define data1 P0
#define data2 P2
sbit S1=P3^6;
sbit S2=P3^7;
bit fangxiang;
uint alt=0,net=0,k=144;
bit mode;
uchar code tab[]={
// 欢(0) 迎(1) 你(2) 美(3) 人(4) !(5)

0x20,0x08,0x24,0x10,0x22,0x60,0x21,0x80,0x26,0x41,0x39,0x32,0x02,0x04,0x0C,0x18,
0xF0,0x60,0x13,0x80,0x10,0x60,0x10,0x18,0x14,0x04,0x18,0x02,0x00,0x01,0x00,0x00,/*"欢",0*/
/* (16 X 16 , 宋体 ) */

0x02,0x00,0x02,0x02,0x42,0x04,0x33,0xF8,0x00,0x04,0x00,0x02,0x3F,0xF2,0x20,0x22,
0x40,0x42,0x00,0x02,0x3F,0xFE,0x20,0x42,0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00,/*"迎",1*/
/* (16 X 16 , 宋体 ) */

0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x02,0x08,0x04,0x30,0x18,0xC0,
0xF0,0x02,0x10,0x01,0x13,0xFE,0x10,0x00,0x10,0x80,0x14,0x60,0x18,0x18,0x00,0x00,/*"你",2*/
/* (16 X 16 , 宋体 ) */

0x00,0x81,0x20,0x91,0x24,0x91,0x24,0x92,0xA4,0x92,0x64,0x94,0x24,0x98,0x3F,0xF0,
0x24,0x98,0x64,0x94,0xA4,0x92,0x24,0x92,0x24,0x91,0x20,0x91,0x00,0x81,0x00,0x00,/*"美",3*/
/* (16 X 16 , 宋体 ) */

0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x30,0x00,0xC0,0x03,0x00,0xFC,0x00,
0x03,0x00,0x00,0xC0,0x00,0x30,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x00,/*"人",4*/
/* (16 X 16 , 宋体 ) */



0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",5*/
/* (16 X 16 , 宋体 ) */






};









void delay(uint z)
{
uchar x;
for(;z>0;z--)
for(x=110;x>0;x--);
}
void xingshi()
{uchar aa,i;
for(i=0;i<16;i++)

{P1=i;
data1=tab[net+aa];
aa++;
data2=tab[net+aa];
aa++;
delay(5);
data1=0;
data2=0;
P1=0x00;
if(aa>30)aa=0;
}
}
void main()
{
ET1=1;
EA=1;
TR1=1;
while(1)
{
xingshi();
if(S1==0)// 检测按钮
{                                                   
delay(30);//延时消抖
TR1=~TR1;
while(!S1)xingshi();
delay(30);
}
if(S2==0)// 检测按钮
{
delay(30);//延时消抖
fangxiang=~fangxiang;
while(!S2)xingshi();
delay(30);
}
}
}
void timer1() interrupt 3
{
alt++;
if(alt==10)
{
alt=0;
if(fangxiang==0)
{
net=net+2;
if(net>k)
net=0;
}
else
{
net=net-2;
if(net<2)//s2
net=k;
}
}
}

回复

使用道具 举报

ID:412177 发表于 2023-4-4 17:00 | 显示全部楼层
这个51单片机驱动16X16点阵汉字显示与其他的不同地方,是表明了用什么取模软件,这样容易上手
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表