各个引脚功能:
OE:使能端,输出高电平关闭屏幕,行选和列选切换的时候需要关闭一下屏幕,防止产生虚影。
D/C/B/A:每个引脚有0、1两个状态,四个引脚用于存储一个四位的二进制数,0/0/0/0是第一行,0/0/1/0是第三行。
R1/G1:R1是红色,G1是绿色,低电平点亮。
SCK:时钟信号。
LAT:锁存器。0打开,1关闭。
列选中原理:将一个16位的二进制串行输入到R1或G1,利用时钟脉冲信号触发寄存器存储当前值,然后通过 LATCH 锁存器将寄存器的值保存。
使用取字软件取出的C51格式的值。
例如:/*-- 文字: 中 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
0x00,0x00,0xF0,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0xF0,0x00,0x00,0x00,
其中第i位十六进制数和第i+16位十六进制数表示的是第i行的状态。i从0到15,逐次点亮16行。
void display_char(){//显示一个静止的汉字int i=0;int j=0;int change;for(i=0;i<16;i++){change=(zi[i]<<8)|zi[i+16];//两个8位的二进制数组成一个16位的二进制数LAT = 0; for(j = 0; j < 16; j++){R1 = ((~change)>>j)&1; SCK = 0;SCK = 1; }OE = 1;get_row(i);LAT = 1; OE = 0; }
}
void get_row(int i){//选中行A=i&1;B=(i&2)>>1;C=(i&4)>>2;D=(i&8)>>3;
}