stm32驱动点阵屏

各个引脚功能:
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;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值