首先本文参考的帖子是:
教大家如何点亮建行网银盾的液晶屏(附代码指令)|
http://bbs.mydigit.cn/read.php?tid=1295119 今天终于有空折腾U盾了,今天上场的是建行U盾
建行U盾大集合
另一面
一如既往的连接逻辑分析仪抓数据
结果抓出来的是这样的,一点规律都没有,都找不到时钟
没办法只有按参考帖来做
引脚定义如下(见参考帖)
1 升压输出
2 电容1
3 电容2
4 电容2
5 电容1
6 vcc
7 gnd
8 cs片选
9 cd(rs)寄存器选择
10 rst复位
11 sck
12 sda有了定义就好办了,焊上引脚接杜邦线
我把CS短接到地了,1~8都在板子上,9~12没有焊而是引出来了
初始化代码如下
- void Oled_init(void)//1ms循环一次
- {
- static word index = 0;
- switch(index)
- {
- case 0:
- IO_OLED_PORT_init;
- IO_OLED_RST = 0;
- break;
- case 10:
- IO_OLED_RST = 1;//复位
- break;
- case 200://power on delay 200ms
-
- Oled_writeCmd(0xE2);//系统设置复位,这一句必须有
- Oled_writeCmd(0x2E);//设置电源为内部升压、电荷泵工作电流1.4mA
- Oled_writeCmd(0xEB);//设置偏压比,采用默认值,不要更改!
- Oled_writeCmd(0xA1);//设置帧数,采用默认值,0:76fps,1:95fps,2:132fps,3:168fps
- Oled_writeCmd(0x89);//自动换行
- Oled_writeCmd(0x81);//设置对比度,该命令后必须紧跟对比度的值,取值范围0-255
- Oled_writeCmd(0x78);//设置对比度的值为0x78
- Oled_writeCmd(0xC2);//设置行列扫描顺序,c0 默认扫描顺序,c2 翻转x,c4 翻转y,c6 翻转xy
- Oled_writeCmd(0xAF);//开启显示
- Oled_Fill(0x00);//刷屏
- break;
- }
- index++;
- }
其他部分与OLED方式一致
右边的二维码是由于初始化时这一部分没设置
void Oled_Fill(byte data)
{
byte y, x;
for(y = 0; y < 8 ; y++)
{
Oled_writeCmd(0xB0 + y);
Oled_writeCmd(0x10);
for(x = 0; x < 192; x++)
Oled_writeData(data);
}
}
这样就可以了
装入外壳看看
附件是代码和逻辑数据:
另一位坛友的:
驱动U盾LCD屏---代码初步解析+逻辑仪数据
http://bbs.mydigit.cn/read.php?tid=1374894