找回密码
 立即注册
查看: 1202|回复: 9

OLED驱动初始化(SSD1315/SSD1306)太坑了,我真的服了,大家要留意 ...

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2026-01-30 18:02:08
已绑定手机

37

主题

176

回帖

2292

积分

荣誉版主

Rbowlystar

积分
2292
发表于 2025-11-6 21:15:44 | 显示全部楼层 |阅读模式
前因:
最近开始啃OLED了,特别是初始化配置方面的。
我看了SSD1306和SSD1315的手册,没发现有太大的区别,
但网上有人说在配置方面是有一些区别的,可是我没找到区别哈。
于是我就对照SSD1315的手册开始写配置文件,
从盒子里翻出来一个不知道什么时候买的OLED,就开始测试。
就在我测试的时候人傻了。
2025-11-06_19-47-40-SSD1315对比SSD1306.png


看看我这个配置信息:
1、水平寻址模式
2、窗口设置的是(0,0)-(63,127),即8*128
3、ROW行偏移和COM偏移为0
4、扫描方向也都是正常的,A0h和C0h
5、DA指令是b4=1,b5=0

6、其他的配置无关紧要了
PixPin_2025-11-06_19-56-20-OLED配置信息.png


屏幕实际显示画面:
按照b4=1,b5=0,c0的配置,手册上应该是这样的:

配置理应刷新的顺序

配置理应刷新的顺序

但实际情况貌似是这样的:

配置理实际刷新的顺序

配置理实际刷新的顺序

而且貌似COM或者ROW偏移了负8个偏移量。
(PS:这里我结束后,调整了页范围为1-8,或设置了偏移量才正常。本文后续内容还是按无偏移量,页范围为0-7演示。)
OLED显示图-小的旧的未知型号.jpg


看到这个结果,我顿时就懵了。怎么手册和实际情况对不上啊?
然后,猛然想到网上有人说过SSD1315和SSD1306的配置有不同的地方。
我就开始对比这部分的内容,也没发现有哪里不同的。


好嘛,离谱。我一怒之下买了SSD1315_I2C、SSD1306_I2C、SSD1315_SPI、SSD1306_SPI四种型号的OLED,
我还特地问了商家,拿到手后如何区分两种驱动的屏幕,


商家说,SSD1315的屏幕尺寸会小一点。



等了几天,收到货我又傻了。
商家貌似发错了,发了两个SSD1306的I2C屏幕给我。
不过从SPI的确实可以看出区别,SSD1315的尺寸小了,
而且软排线上面的丝印也写了1315的。
OLED对比图-4屏正面.jpg OLED对比图-4屏背面.jpg


那么,拿一个SSD1306_I2C的屏幕,对比一下我那个位置型号的OLED看看。
emmmm,很可能是1315的,因为尺寸确实小了一圈。
但后面的丝印是GM12864-41(PS:后面百度了一下,貌似就是1315!!!)
OLED对比图-正面.jpg OLED对比图-背面.jpg


同样的代码用新屏幕试一下看看
OLED显示图-大的新的可能是SSD1306.jpg
额,虽然DA指令还是对应不上,但知识D3偏移量正常了。算了就这样吧。



主要还是发个贴,提醒大家注意一下这些常用的配置问题。
如果出现显示不正常的可以看看这些配置,适当调整一下。
后面如果有空了,我再出一篇手册详解吧。


这里可以看一下,我用新屏幕尝试DA的4种显示效果,默认用C0,不上下翻转哈。
第一种:b4=0,b5=0
DA指令效果b4=0-b5=0.jpg


第二种:b4=1,b5=0(默认用这个)
DA指令效果b4=1-b5=0.jpg


第三种:b4=0,b5=1
DA指令效果b4=0-b5=1.jpg


第四种:b4=1,b5=1
DA指令效果b4=1-b5=1.jpg

故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2026-01-30 18:02:08
已绑定手机

37

主题

176

回帖

2292

积分

荣誉版主

Rbowlystar

积分
2292
发表于 2025-11-6 21:27:29 | 显示全部楼层

刷新是直接发送一帧1024字节数据
截图202511062126332222.jpg

显示中英文
截图202511062127161464.jpg
截图202511062119566353.jpg
故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:724
  • 最近打卡:2026-03-18 07:56:47
已绑定手机

97

主题

7244

回帖

1万

积分

超级版主

积分
13791
发表于 2025-11-7 09:19:24 | 显示全部楼层
ITO布线的区别,和COG芯片型号无关,我测试只要ITO布线一致,两种型号的芯片程序是通用的

点评

很有道理,我看手册确实看不出有什么区别。应该是每个厂家的设计不同,如果显示出了问题,就根据自己屏幕的问题来微调一下即可。  详情 回复 发表于 2025-11-7 13:00
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2026-01-30 18:02:08
已绑定手机

37

主题

176

回帖

2292

积分

荣誉版主

Rbowlystar

积分
2292
发表于 2025-11-7 13:00:28 | 显示全部楼层
Debu*** 发表于 2025-11-7 09:19
ITO布线的区别,和COG芯片型号无关,我测试只要ITO布线一致,两种型号的芯片程序是通用的 ...

很有道理,我看手册确实看不出有什么区别。应该是每个厂家的设计不同,如果显示出了问题,就根据自己屏幕的问题来微调一下即可。
故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:712
  • 最近打卡:2026-03-23 04:23:24

39

主题

453

回帖

4348

积分

荣誉版主

积分
4348
发表于 2025-11-7 17:30:08 | 显示全部楼层
1、从外观上区分 SSD1306 和 SSD1315 很简单:SSD1306的软排线宽,SSD1315的窄。
所以上面四块屏幕里,
两块I2C的屏幕,都是SSD1306的;
两块SPI的屏幕,左边的是SSD1306的,右边的是SSD1315的。

========================================

2、看你的显示程序的显示效果也可以区分两个型号。
从上面的照片看,画面是正常显示的,也可以说明I2C的屏幕是SSD1306的。

原因挺扯淡的,这其实是卡了个SSD13016的BUG =。=;;;;;;

看SSD13016和SSD1315的数据手册里,关于 00h、10h、B0h 三条指令的章节,都有一句“ for Page Addressing Mode ”。
也就是说,在官方的设计中,00h、10h、B0h 三条指令只能用在【页地址模式】,用B0h指定页号(0-7),用00h和10h指定列号(0-127);

而在【水平地址模式】下,原则上,则是用指令21h和22h,先框出一个指定大小的区域(如果不写21h、22h这两个指令,就是默认全屏区域),再向这个区域里连续发送数据,填满这个区域。
比如要在屏幕左上角显示一个8×16的字母“A”,先用 0x21, 0x00, 0x07, 0x22, 0x00, 0x01,划出一个8×16像素的区域,再把字母“A”的16个字模数据连续发送进去,字母“A”就显示出来了;
显示下一个字的时候,重复前面过程,重新画一个区域。这个过程跟TFT彩屏的显示方式是一样的。

现在看你的程序代码:
a. 初始化的时候,设置的是水平地址模式(0x20, 0x00),并且设置了显示区域是宽度128个列,高度8个页(0x21, 0x00, 0x7F, 0x22, 0x00, 0x07);
b. 初始化的时候设置了0xB0,刷新屏幕的函数使用的发送数据的方式,是连续发送1024个数据。

这里的 a 是正确的。但是问题出在,同时使用了 a 和 b 。

在这一点上,SSD1306和SSD1315的显示效果就不一样了。

在水平地址模式下,如果使用了 21h、22h 设置区域,和 00h、10h、B0h 三条指令设置位置,
那么连续发送的数据个数,不能超出指令0x21设置的右边界。
否则从第二页开始,画面就会出现错位。

这就到了前面说的BUG问题了。
SSD1315是严格执行的这个规则的,如果用你的代码显示,会出现错位现象。
而SSD1306,虽然数据手册里也写着“ for Page Addressing Mode ”,但是在水平地址模式下,用了B0h指令之后,向全屏范围里连续发送超过128个数据,同样也可以正常显示。

这应该属于SSD1306功能不完善导致的区别,正好可以用来作为区分的方法之一。

https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=18574&pid=178508

========================================

3. 除了上面第2点提到的功能不完善,还有几个表现可以用来区分SSD1306和SSD1315。

比如 滚屏指令 26h、29h。
从数据手册看出来,关于这两条指令的格式,
SSD1306的参数里有很多“Dummy Byte”,水平方向可以单独设置滚动;竖直方向不能单独设置滚动,只能竖直+水平一起滚动。
SSD1315的参数里,那些空指令位,都有了具体的数值,可以单独在水平或者竖直方向上设置滚动。

【OLED滚屏指令不好用?大概率是芯片型号没选对吧】
https://www.bilibili.com/video/BV1yi421C7Pk/


除此之外,设置屏幕对比度的指令 D5h ,在两种屏幕上的效果也有明显区别。
这个指令的参数,是从 0x00 (黑屏)到 0xFF(最亮)。
但是随着数值的渐变,在两种屏幕上,其中一个的亮度可以平滑变化,另一个则会在某个数值段时,亮度是跳变的。所以一试就可以知道了。











点评

强,不愧是你哈哈哈。 但是我找商家理论,商家还是回复说是不一样的,反正现在两个屏幕混在一起我是完全分辨不出来了 [attachimg]120358[/attachimg] 不够同样的程序,一个屏幕亮一点,一个屏幕暗一点,也有点奇怪  详情 回复 发表于 2025-11-7 21:37
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:671
  • 最近打卡:2026-03-23 10:44:03

9

主题

614

回帖

4290

积分

论坛元老

积分
4290
发表于 2025-11-7 19:50:38 | 显示全部楼层
这情况太正常了,
不同厂家的玻璃显示段和位接线不同,行列偏移量也不同.严重时候直接黑屏点不亮.
所以使用时尽量选市场销量多用开的的品牌和型号,配置参数比较一致.
偏门型号最好向店家索要技术手册或者点亮例程.
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2026-01-30 18:02:08
已绑定手机

37

主题

176

回帖

2292

积分

荣誉版主

Rbowlystar

积分
2292
发表于 2025-11-7 21:37:04 | 显示全部楼层
大*** 发表于 2025-11-7 17:30
1、从外观上区分 SSD1306 和 SSD1315 很简单:SSD1306的软排线宽,SSD1315的窄。
所以上面四块屏幕里,
两 ...

强,不愧是你哈哈哈。
但是我找商家理论,商家还是回复说是不一样的,反正现在两个屏幕混在一起我是完全分辨不出来了
截图202511072119343812.jpg

不够同样的程序,一个屏幕亮一点,一个屏幕暗一点,也有点奇怪了。

其次呢,我看手册写的“ for Page Addressing Mode ”之类的标语,以为是“仅页地址模式有效”的意思,没想到设置了水平模式还是有效控制了。

然后针对这个问题,我实验了也确实如你所说的那样
在刷屏前,我加了一句B0设置的指令,
截图202511072128115702.jpg
在我的旧屏幕上(应该是1315的)确实出现了显示异常
第1行的128列数据确实按B0设置的,在第3行显示了。
但后续的数据内容又还是在规定的地址显示。
截图202511072129356111.gif

可以看到第1行的数据在第3行显示了,第1行由于没有数据内容,所以显示的是初始化后的花屏
但由于第3行本来就有数据内容,所以把第1行的内容覆盖了。
截图202511072130105813.jpg

而用新买的屏幕(应该是1306的),没有出现该问题
B0指令相当于40指令,重新设置了起始行的位置
截图202511072136143163.gif

故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:288
  • 最近打卡:2026-03-12 21:55:50
已绑定手机

9

主题

56

回帖

154

积分

注册会员

积分
154
发表于 2025-11-17 22:05:16 | 显示全部楼层
那么我就不得不拿出我的祖传液晶显示库了
  1. //////////////////////////////////////////////////////////////////////////////////         
  2. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  3. //中景园电子
  4. //店铺地址:http://shop73023976.taobao.com/?spm=2013.1.0.0.M4PqC2
  5. //
  6. //  文 件 名   : main.c
  7. //  版 本 号   : v2.0
  8. //  作    者   : HuangKai
  9. //  生成日期   : 2018-0101
  10. //  最近修改   :
  11. //  功能描述   : OLED 4接口演示例程(STC8A8K64SA12系列)
  12. //              说明:
  13. //              ----------------------------------------------------------------
  14. //              GND    电源地
  15. //              VCC  接5V或3.3v电源
  16. //              D0   P1^4(SCL)
  17. //              D1   P1^3(SDA)
  18. // 修改历史   :
  19. // 日    期   :
  20. // 作    者   : HuangKai
  21. // 修改内容   : 创建文件
  22. //版权所有,盗版必究。
  23. //Copyright(C) 中景园电子2018/3/16
  24. //All rights reserved
  25. //******************************************************************************/
  26. #include "OLED4P.h"
  27. //OLED的显存
  28. //存放格式如下.
  29. //[0]0 1 2 3 ... 127       
  30. //[1]0 1 2 3 ... 127       
  31. //[2]0 1 2 3 ... 127       
  32. //[3]0 1 2 3 ... 127       
  33. //[4]0 1 2 3 ... 127       
  34. //[5]0 1 2 3 ... 127       
  35. //[6]0 1 2 3 ... 127       
  36. //[7]0 1 2 3 ... 127
  37. unsigned char code BMP1[] =
  38. {
  39.         0x00,0x03,0x05,0x09,0x11,0xFF,0x11,0x89,0x05,0xC3,0x00,0xE0,0x00,0xF0,0x00,0xF8,
  40.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x28,0xFF,0x11,0xAA,0x44,0x00,0x00,0x00,
  41.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  42.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  43.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  44.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x01,0x38,0x44,0x82,0x92,
  45.         0x92,0x74,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xFF,0x01,0x7D,
  46.         0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0x00,
  47.         0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
  48.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
  49.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  50.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  52.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
  53.         0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
  54.         0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
  55.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,
  57.         0xF3,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x01,0xF1,0x11,0x61,0x81,0x01,0x01,0x01,
  58.         0x81,0x61,0x11,0xF1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01,0x01,0x01,0x01,0x01,
  59.         0xC1,0x21,0x11,0x11,0x11,0x11,0x21,0xC1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01,
  60.         0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x11,0x11,0x11,0x11,0x11,0xD3,0x33,
  61.         0x03,0x03,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  62.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,
  65.         0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x7F,0x00,0x00,0x01,0x06,0x18,0x06,
  66.         0x01,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00,
  67.         0x1F,0x20,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,
  68.         0x40,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x40,0x30,0x0C,0x03,0x00,0x00,
  69.         0x00,0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x06,
  73.         0x06,0x06,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44,
  74.         0x84,0x04,0x04,0x04,0x84,0xC4,0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,
  75.         0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x04,0x84,0x44,
  76.         0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x06,0x06,
  77.         0x06,0x06,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  78.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  79.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  80.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  81.         0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x14,0x12,0x11,0x00,0x00,0x0F,0x10,0x10,0x10,
  82.         0x0F,0x00,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,0x08,0x10,0x12,0x12,0x0D,0x00,
  83.         0x00,0x18,0x00,0x00,0x0D,0x12,0x12,0x12,0x0D,0x00,0x00,0x18,0x00,0x00,0x10,0x18,
  84.         0x14,0x12,0x11,0x00,0x00,0x10,0x18,0x14,0x12,0x11,0x00,0x00,0x00,0x00,0x00,0x00,
  85.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  86.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  87.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  88.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  89.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  90.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,
  91.         0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  92.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  93.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  94.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  95.         0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,0x00,0x00,0x38,0x54,0x54,0x58,0x00,0x00,
  96.         0x7C,0x04,0x04,0x78,0x00,0x00,0x3C,0x40,0x40,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
  97.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xAA,0xAA,0xAA,
  99.         0x28,0x08,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  100.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  101.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,
  102.         0x00,0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00,0x7F,0x02,0x04,0x08,0x10,0x7F,0x00,/********************************/
  103. };
  104. unsigned char code BMP2[] =
  105. {
  106.         0x00,0x03,0x05,0x09,0x11,0xFF,0x11,0x89,0x05,0xC3,0x00,0xE0,0x00,0xF0,0x00,0xF8,
  107.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x28,0xFF,0x11,0xAA,0x44,0x00,0x00,0x00,
  108.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  109.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  110.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  111.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x01,0x38,0x44,0x82,0x92,
  112.         0x92,0x74,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xFF,0x01,0x7D,
  113.         0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0x00,
  114.         0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
  115.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
  116.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  117.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  118.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  119.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
  120.         0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
  121.         0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
  122.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  123.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,
  124.         0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0xF8,0x18,0x60,0x80,0x00,0x00,0x00,0x80,
  125.         0x60,0x18,0xF8,0x00,0x00,0x00,0x20,0x20,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
  126.         0x10,0x08,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x20,0x20,0xF8,0x00,0x00,0x00,
  127.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x88,0x68,
  128.         0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  129.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  130.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  131.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,
  132.         0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x7F,0x00,0x00,0x01,0x06,0x18,0x06,0x01,
  133.         0x00,0x00,0x7F,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00,0x00,0x1F,
  134.         0x20,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,
  135.         0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x06,0x01,0x00,
  136.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  138.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  139.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  140.         0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x20,0x20,0xC0,0x00,0x00,0xE0,0x20,0x20,0x20,
  141.         0xE0,0x00,0x00,0x00,0x40,0xE0,0x00,0x00,0x00,0x00,0x60,0x20,0x20,0x20,0xE0,0x00,
  142.         0x00,0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0xE0,0x00,0x00,0x00,0x00,0x00,0x40,0x20,
  143.         0x20,0x20,0xC0,0x00,0x00,0x40,0x20,0x20,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
  144.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  145.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  146.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  147.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  148.         0x00,0x00,0x00,0x00,0x00,0x0C,0x0A,0x0A,0x09,0x0C,0x00,0x00,0x0F,0x08,0x08,0x08,
  149.         0x0F,0x00,0x00,0x00,0x08,0x0F,0x08,0x00,0x00,0x00,0x0C,0x08,0x09,0x09,0x0E,0x00,
  150.         0x00,0x0C,0x00,0x00,0x0F,0x09,0x09,0x09,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x0A,
  151.         0x0A,0x09,0x0C,0x00,0x00,0x0C,0x0A,0x0A,0x09,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
  152.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  153.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  154.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  155.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  156.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  157.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,
  158.         0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  159.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  160.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  161.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  162.         0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,0x00,0x00,0x38,0x54,0x54,0x58,0x00,0x00,
  163.         0x7C,0x04,0x04,0x78,0x00,0x00,0x3C,0x40,0x40,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
  164.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  165.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xAA,0xAA,0xAA,
  166.         0x28,0x08,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  167.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  168.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,
  169.         0x00,0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00,0x7F,0x02,0x04,0x08,0x10,0x7F,0x00,/***************************************/
  170.        
  171. };
  172. const unsigned char code F6x8[][6] =               
  173. {
  174. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
  175. 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
  176. 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
  177. 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
  178. 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
  179. 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
  180. 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
  181. 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
  182. 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
  183. 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
  184. 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
  185. 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
  186. 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
  187. 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
  188. 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
  189. 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
  190. 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
  191. 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
  192. 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
  193. 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
  194. 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
  195. 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
  196. 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
  197. 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
  198. 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
  199. 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
  200. 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
  201. 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
  202. 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
  203. 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
  204. 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
  205. 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
  206. 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
  207. 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
  208. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
  209. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
  210. 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
  211. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
  212. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
  213. 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
  214. 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
  215. 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
  216. 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
  217. 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
  218. 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
  219. 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
  220. 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
  221. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
  222. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
  223. 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
  224. 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
  225. 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
  226. 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
  227. 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
  228. 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
  229. 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
  230. 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
  231. 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
  232. 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
  233. 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
  234. 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
  235. 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
  236. 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
  237. 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
  238. 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
  239. 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
  240. 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
  241. 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
  242. 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
  243. 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
  244. 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
  245. 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
  246. 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
  247. 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
  248. 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
  249. 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
  250. 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
  251. 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
  252. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
  253. 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
  254. 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
  255. 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
  256. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
  257. 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
  258. 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
  259. 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
  260. 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
  261. 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
  262. 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
  263. 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
  264. 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
  265. 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
  266. };
  267. /****************************************8*16的点阵************************************/
  268. const unsigned char code F8X16[]=          
  269. {
  270.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  271.   0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  272.   0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  273.   0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  274.   0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  275.   0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  276.   0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  277.   0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  278.   0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  279.   0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  280.   0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  281.   0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  282.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  283.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  284.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  285.   0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  286.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  287.   0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  288.   0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  289.   0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  290.   0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  291.   0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  292.   0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  293.   0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  294.   0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  295.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  296.   0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  297.   0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  298.   0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  299.   0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  300.   0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  301.   0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  302.   0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
  303.   0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  304.   0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  305.   0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  306.   0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  307.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  308.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  309.   0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  310.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  311.   0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  312.   0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  313.   0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  314.   0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  315.   0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  316.   0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  317.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  318.   0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  319.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  320.   0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  321.   0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  322.   0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  323.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  324.   0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  325.   0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  326.   0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  327.   0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  328.   0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  329.   0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  330.   0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  331.   0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  332.   0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  333.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  334.   0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  335.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  336.   0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  337.   0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  338.   0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  339.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  340.   0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  341.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  342.   0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  343.   0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  344.   0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  345.   0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  346.   0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  347.   0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  348.   0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  349.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  350.   0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  351.   0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  352.   0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  353.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  354.   0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  355.   0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  356.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  357.   0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  358.   0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  359.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  360.   0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  361.   0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  362.   0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  363.   0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  364.   0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
  365. };
  366. unsigned char code Hzk[][32]={
  367. //   "梯",0x11,0x08,0x10,0x88,0x10,0x90,0x11,0xfc,0xfc,0x24,0x10,0x24,0x31,0xfc,0x39,0x20, /* 0 */
  368. //       0x55,0x20,0x51,0xfe,0x90,0x62,0x10,0xa2,0x11,0x2a,0x12,0x24,0x14,0x20,0x10,0x20,
  369. //  "晶",0x0f,0xe0,0x08,0x20,0x08,0x20,0x0f,0xe0,0x08,0x20,0x08,0x20,0x0f,0xe0,0x00,0x00, /* 1 */
  370. //       0x7e,0xfc,0x42,0x84,0x42,0x84,0x7e,0xfc,0x42,0x84,0x42,0x84,0x7e,0xfc,0x42,0x84,   
  371.     {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xC9,0x4E,0x48,0xF8,0x4C,0x4B,0x78,0x00,0x00},
  372.     {0x04,0x03,0x00,0xFF,0x00,0x41,0x20,0x13,0x0A,0x06,0xFF,0x02,0x12,0x22,0x1E,0x00}, /*'梯',0*/
  373.     {0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,0x00},
  374.     {0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00}, /*'晶',1*/
  375.    
  376.     {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
  377.     {0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00}, /*'电',2*/
  378.     {0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
  379.     {0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*'子',3*/
  380.     {0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
  381.     {0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00}, /*'技',4*/
  382.     {0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00},
  383.     {0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00}, /*'术',5*/
  384.    
  385.     {0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00},
  386.     {0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00}, /*'正',6*/
  387.     {0x20,0x18,0x08,0xEA,0xAC,0xA8,0xA8,0xAF,0xA8,0xA8,0xAC,0xEA,0x08,0x28,0x18,0x00},
  388.     {0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00}, /*'常',7*/
  389.     {0x10,0x10,0xD0,0xFF,0x90,0x50,0x20,0x50,0x4C,0x43,0x4C,0x50,0x20,0x40,0x40,0x00},
  390.     {0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x58,0x41,0x4E,0x60,0x58,0x47,0x40,0x40,0x00},/*'检',8*/
  391.     {0x40,0x20,0xF8,0x07,0xF0,0xA0,0x90,0x4C,0x57,0x24,0xA4,0x54,0x4C,0x80,0x80,0x00},
  392.     {0x00,0x00,0xFF,0x00,0x1F,0x80,0x92,0x52,0x49,0x29,0x24,0x12,0x08,0x00,0x00,0x00},/*'修',9*/
  393. //{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00},
  394. //{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/
  395. //{0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00},
  396. //{0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"景",1*/
  397. //{0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00},
  398. //{0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*"园",2*/
  399. //{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
  400. //{0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",3*/
  401. //{0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
  402. //{0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",4*/
  403. //{0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
  404. //{0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00},/*"科",5*/
  405. //{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
  406. //{0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",6*/
  407. };
  408. /**********************************************
  409. //IIC Start
  410. **********************************************/
  411. void OLED_IIC_Start()
  412. {
  413.         OLED_SCLK_Set() ;
  414.          _nop_();_nop_();_nop_();   
  415.         OLED_SDIN_Set();
  416.          _nop_();_nop_();_nop_();   
  417.         OLED_SDIN_Clr();
  418.          _nop_();_nop_();_nop_();   
  419.         OLED_SCLK_Clr();
  420.          _nop_();_nop_();_nop_();   
  421. }
  422. /**********************************************
  423. //IIC Stop
  424. **********************************************/
  425. void OLED_IIC_Stop()
  426. {
  427. OLED_SCLK_Set() ;
  428.          _nop_();_nop_();_nop_();   
  429. //        OLED_SCLK_Clr();
  430.         OLED_SDIN_Clr();
  431.          _nop_();_nop_();_nop_();   
  432.         OLED_SDIN_Set();
  433.          _nop_();_nop_();_nop_();   
  434.        
  435. }
  436. void IIC_Wait_Ack()
  437. {
  438.         //GPIOB->CRH &= 0XFFF0FFFF;        //设置PB12为上拉输入模式
  439.         //GPIOB->CRH |= 0x00080000;
  440. //        OLED_SDA = 1;
  441. //        delay_us(1);
  442.         //OLED_SCL = 1;
  443.         //delay_us(50000);
  444. /*        while(1)
  445.         {
  446.                 if(!OLED_SDA)                                //判断是否接收到OLED 应答信号
  447.                 {
  448.                         //GPIOB->CRH &= 0XFFF0FFFF;        //设置PB12为通用推免输出模式
  449.                         //GPIOB->CRH |= 0x00030000;
  450.                         return;
  451.                 }
  452.         }
  453. */
  454.         OLED_SCLK_Set() ;
  455.          _nop_();_nop_();_nop_();   
  456.         OLED_SCLK_Clr();
  457.          _nop_();_nop_();_nop_();   
  458. }
  459. /**********************************************
  460. // IIC Write byte
  461. **********************************************/
  462. void Write_IIC_Byte(unsigned char IIC_Byte)
  463. {
  464.         unsigned char i;
  465.         unsigned char m,da;
  466.         da=IIC_Byte;
  467.          _nop_();_nop_();_nop_();   
  468.         OLED_SCLK_Clr();
  469.          _nop_();_nop_();_nop_();   
  470.         for(i=0;i<8;i++)               
  471.         {
  472.                         m=da;
  473.                 //        OLED_SCLK_Clr();
  474.                 m=m&0x80;
  475.                 if(m==0x80)
  476.                 {OLED_SDIN_Set();}
  477.                 else OLED_SDIN_Clr();
  478.                  _nop_();_nop_();_nop_();   
  479.                         da=da<<1;
  480.                 OLED_SCLK_Set();
  481.                  _nop_();_nop_();_nop_();   
  482.                 OLED_SCLK_Clr();
  483.                  _nop_();_nop_();_nop_();   
  484.                 }
  485. }
  486. /**********************************************
  487. // IIC Write Command
  488. **********************************************/
  489. void Write_IIC_Command(unsigned char IIC_Command)
  490. {
  491.    OLED_IIC_Start();
  492.    Write_IIC_Byte(0x78);            //Slave address,SA0=0
  493.         IIC_Wait_Ack();       
  494.    Write_IIC_Byte(0x00);                        //write command
  495.         IIC_Wait_Ack();       
  496.    Write_IIC_Byte(IIC_Command);
  497.         IIC_Wait_Ack();       
  498.    OLED_IIC_Stop();
  499. }
  500. /**********************************************
  501. // IIC Write Data
  502. **********************************************/
  503. void Write_IIC_Data(unsigned char IIC_Data)
  504. {
  505.    OLED_IIC_Start();
  506.    Write_IIC_Byte(0x78);                        //D/C#=0; R/W#=0
  507.         IIC_Wait_Ack();       
  508.    Write_IIC_Byte(0x40);                        //write data
  509.         IIC_Wait_Ack();       
  510.    Write_IIC_Byte(IIC_Data);
  511.         IIC_Wait_Ack();       
  512.    OLED_IIC_Stop();
  513. }
  514. void OLED_WR_Byte(unsigned dat,unsigned cmd)
  515. {
  516.         if(cmd)
  517.                         {
  518.    Write_IIC_Data(dat);
  519.    
  520.                 }
  521.         else {
  522.    Write_IIC_Command(dat);
  523.                
  524.         }
  525. }
  526. /********************************************
  527. // fill_Picture
  528. ********************************************/
  529. void fill_picture(unsigned char fill_Data)
  530. {
  531.         unsigned char m,n;
  532.         for(m=0;m<8;m++)
  533.         {
  534.                 OLED_WR_Byte(0xb0+m,0);                //page0-page1
  535.                 OLED_WR_Byte(0x00,0);                //low column start address
  536.                 OLED_WR_Byte(0x10,0);                //high column start address
  537.                 for(n=0;n<128;n++)
  538.                         {
  539.                                 OLED_WR_Byte(fill_Data,1);
  540.                         }
  541.         }
  542. }
  543. /***********************Delay****************************************/
  544. void Delay_50ms(unsigned int Del_50ms)
  545. {
  546.         unsigned int m;
  547.         for(;Del_50ms>0;Del_50ms--)
  548.                 for(m=6245;m>0;m--);
  549. }
  550. void Delay_1ms(unsigned int Del_1ms)
  551. {
  552.         unsigned char j;
  553.         while(Del_1ms--)
  554.         {       
  555.                 for(j=0;j<123;j++);
  556.         }
  557. }
  558. //坐标设置
  559.         void OLED_Set_Pos(unsigned char x, unsigned char y)
  560. {         OLED_WR_Byte(0xb0+y,OLED_CMD);
  561.         OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
  562.         OLED_WR_Byte((x&0x0f),OLED_CMD);
  563. }             
  564. //开启OLED显示   
  565. void OLED_Display_On(void)
  566. {
  567.         OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  568.         OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ON
  569.         OLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON
  570. }
  571. //关闭OLED显示     
  572. void OLED_Display_Off(void)
  573. {
  574.         OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  575.         OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFF
  576.         OLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF
  577. }                                            
  578. //清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!          
  579. void OLED_Clear(void)  
  580. {  
  581.         u8 i,n;                    
  582.         for(i=0;i<8;i++)  
  583.         {  
  584.                 OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
  585.                 OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
  586.                 OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址   
  587.                 for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
  588.         } //更新显示
  589. }
  590. void OLED_On(void)  
  591. {  
  592.         u8 i,n;                    
  593.         for(i=0;i<8;i++)  
  594.         {  
  595.                 OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
  596.                 OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
  597.                 OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址   
  598.                 for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);
  599.         } //更新显示
  600. }
  601. //在指定位置显示一个字符,包括部分字符
  602. //x:0~127
  603. //y:0~63
  604. //mode:0,反白显示;1,正常显示                                 
  605. //size:选择字体 16/12
  606. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
  607. {             
  608.         unsigned char c=0,i=0;       
  609.                 c=chr-' ';//得到偏移后的值                       
  610.                 if(x>Max_Column-1){x=0;y=y+2;}
  611.                 if(Char_Size ==16)
  612.                         {
  613.                         OLED_Set_Pos(x,y);       
  614.                         for(i=0;i<8;i++)
  615.                         OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  616.                         OLED_Set_Pos(x,y+1);
  617.                         for(i=0;i<8;i++)
  618.                         OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  619.                         }
  620.                         else {       
  621.                                 OLED_Set_Pos(x,y);
  622.                                 for(i=0;i<6;i++)
  623.                                 OLED_WR_Byte(F6x8[c][i],OLED_DATA);
  624.                                
  625.                         }
  626. }
  627. //m^n函数
  628. u32 oled_pow(u8 m,u8 n)
  629. {
  630.         u32 result=1;         
  631.         while(n--)result*=m;   
  632.         return result;
  633. }                                  
  634. //显示2个数字
  635. //x,y :起点坐标         
  636. //len :数字的位数
  637. //size:字体大小
  638. //mode:模式        0,填充模式;1,叠加模式
  639. //num:数值(0~4294967295);                           
  640. void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
  641. {                
  642.         u8 t,temp;
  643.         u8 enshow=0;                                                  
  644.         for(t=0;t<len;t++)
  645.         {
  646.                 temp=(num/oled_pow(10,len-t-1))%10;
  647.                 if(enshow==0&&t<(len-1))
  648.                 {
  649.                         if(temp==0)
  650.                         {
  651.                                 OLED_ShowChar(x+(size2/2)*t,y,' ',size2);
  652.                                 continue;
  653.                         }else enshow=1;
  654.                           
  655.                 }
  656.                  OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);
  657.         }
  658. }
  659. //显示一个字符号串
  660. void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)
  661. {
  662.         unsigned char j=0;
  663.         while (chr[j]!='\0')
  664.         {                OLED_ShowChar(x,y,chr[j],Char_Size);
  665.                         x+=8;
  666.                 if(x>120){x=0;y+=2;}
  667.                         j++;
  668.         }
  669. }
  670. //显示汉字
  671. void OLED_ShowCHinese(u8 x,u8 y,u8 no)
  672. {                                  
  673.         u8 t,adder=0;
  674.         OLED_Set_Pos(x,y);       
  675.     for(t=0;t<16;t++)
  676.                 {
  677.                                 OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
  678.                                 adder+=1;
  679.      }       
  680.                 OLED_Set_Pos(x,y+1);       
  681.     for(t=0;t<16;t++)
  682.                         {       
  683.                                 OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
  684.                                 adder+=1;
  685.       }                                       
  686. }
  687. /***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
  688. void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
  689. {        
  690. unsigned int j=0;
  691. unsigned char x,y;
  692.   
  693.   if(y1%8==0) y=y1/8;      
  694.   else y=y1/8+1;
  695.         for(y=y0;y<y1;y++)
  696.         {
  697.                 OLED_Set_Pos(x0,y);
  698.     for(x=x0;x<x1;x++)
  699.             {      
  700.                     OLED_WR_Byte(BMP[j++],OLED_DATA);                   
  701.             }
  702.         }
  703. }
  704. //初始化SSD1306                                            
  705. void OLED_Init(void)
  706. {        
  707.     OLED_WR_Byte(0xAE,OLED_CMD);//--display off
  708.         OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  709.         OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  710.         OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  
  711.         OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  712.         OLED_WR_Byte(0x81,OLED_CMD); // contract control
  713.         OLED_WR_Byte(0xFF,OLED_CMD);//--128   
  714.         OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  715.         OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  716.         OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  717.         OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
  718.         OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  719.         OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  720.         OLED_WR_Byte(0x00,OLED_CMD);//
  721.        
  722.         OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  723.         OLED_WR_Byte(0x80,OLED_CMD);//
  724.        
  725.         OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
  726.         OLED_WR_Byte(0x05,OLED_CMD);//
  727.        
  728.         OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  729.         OLED_WR_Byte(0xF1,OLED_CMD);//
  730.        
  731.         OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  732.         OLED_WR_Byte(0x12,OLED_CMD);//
  733.        
  734.         OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  735.         OLED_WR_Byte(0x30,OLED_CMD);//
  736.        
  737.         OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  738.         OLED_WR_Byte(0x14,OLED_CMD);//
  739.        
  740.         OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  741.         OLED_Clear();
  742. }  
  743. void OLED_Show_Int(char x,char y,long num ,char n,char size2,char ack)
  744. {
  745.         if(ack == 0) //不加符号
  746.         {
  747.                 switch(n)
  748.                 {
  749.                         case 0:
  750.                         case 1:
  751.                                                   OLED_ShowChar(x,y,abs(num)/1%10+0x30,size2);
  752.                                                         break;
  753.                         case 2:
  754.                                             OLED_ShowChar(x,y,abs(num)/10%10+0x30,size2);
  755.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/1%10+0x30,size2);
  756.                                                         break;
  757.                         case 3:
  758.                                                         OLED_ShowChar(x,y,abs(num)/100%10+0x30,size2);
  759.                                             OLED_ShowChar(x+(size2/2),y,abs(num)/10%10+0x30,size2);
  760.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1%10+0x30,size2);
  761.                                                         break;
  762.                         case 4:
  763.                                                         OLED_ShowChar(x,y,abs(num)/1000%10+0x30,size2);
  764.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/100%10+0x30,size2);
  765.                                             OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10%10+0x30,size2);
  766.                                                         OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1%10+0x30,size2);
  767.                                                         break;
  768.                         case 5:
  769.                                                         OLED_ShowChar(x,y,abs(num)/10000%10+0x30,size2);
  770.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/1000%10+0x30,size2);
  771.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/100%10+0x30,size2);
  772.                                             OLED_ShowChar(x+(size2/2)*3,y,abs(num)/10%10+0x30,size2);
  773.                                                         OLED_ShowChar(x+(size2/2)*4,y,abs(num)/1%10+0x30,size2);
  774.                                                         break;
  775.                         case 6: OLED_ShowChar(x,y,abs(num)/100000%10+0x30,size2);   //刷新数据到液晶相应位置
  776.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/10000%10+0x30,size2);
  777.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1000%10+0x30,size2);
  778.                                                         OLED_ShowChar(x+(size2/2)*3,y,abs(num)/100%10+0x30,size2);
  779.                                             OLED_ShowChar(x+(size2/2)*4,y,abs(num)/10%10+0x30,size2);
  780.                                                         OLED_ShowChar(x+(size2/2)*5,y,abs(num)/1%10+0x30,size2);
  781.                                                         break;
  782.                 }
  783.         }
  784.         else //加符号
  785.         {
  786.          if(num<0)  OLED_ShowChar(x,y,'-',size2);
  787.                 else  OLED_ShowChar(x,y,'+',size2);
  788.                 switch(n)
  789.                 {
  790.                         case 0:
  791.                         case 1:
  792.                                                   OLED_ShowChar(x+(size2/2),y,abs(num)/1%10+0x30,size2);
  793.                                                         break;
  794.                         case 2:
  795.                                             OLED_ShowChar(x+(size2/2),y,abs(num)/10%10+0x30,size2);
  796.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1%10+0x30,size2);
  797.                                                         break;
  798.                         case 3:
  799.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/100%10+0x30,size2);
  800.                                             OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10%10+0x30,size2);
  801.                                                         OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1%10+0x30,size2);
  802.                                                         break;
  803.                         case 4:
  804.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/1000%10+0x30,size2);
  805.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/100%10+0x30,size2);
  806.                                             OLED_ShowChar(x+(size2/2)*3,y,abs(num)/10%10+0x30,size2);
  807.                                                         OLED_ShowChar(x+(size2/2)*4,y,abs(num)/1%10+0x30,size2);
  808.                                                         break;
  809.                         case 5:
  810.                                                         OLED_ShowChar(x+(size2/2),y,abs(num)/10000%10+0x30,size2);
  811.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1000%10+0x30,size2);
  812.                                                         OLED_ShowChar(x+(size2/2)*3,y,abs(num)/100%10+0x30,size2);
  813.                                             OLED_ShowChar(x+(size2/2)*4,y,abs(num)/10%10+0x30,size2);
  814.                                                         OLED_ShowChar(x+(size2/2)*5,y,abs(num)/1%10+0x30,size2);
  815.                                                         break;
  816.                         case 6: OLED_ShowChar(x+(size2/2),y,abs(num)/100000%10+0x30,size2);   //刷新数据到液晶相应位置
  817.                                                         OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10000%10+0x30,size2);
  818.                                                         OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1000%10+0x30,size2);
  819.                                                         OLED_ShowChar(x+(size2/2)*4,y,abs(num)/100%10+0x30,size2);
  820.                                             OLED_ShowChar(x+(size2/2)*5,y,abs(num)/10%10+0x30,size2);
  821.                                                         OLED_ShowChar(x+(size2/2)*6,y,abs(num)/1%10+0x30,size2);
  822.                                                         break;
  823.                 }
  824.         }               
  825. }
复制代码
但使龙城飞将在,不教胡马度阴山!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:288
  • 最近打卡:2026-03-12 21:55:50
已绑定手机

9

主题

56

回帖

154

积分

注册会员

积分
154
发表于 2025-11-17 22:05:51 | 显示全部楼层
//////////////////////////////////////////////////////////////////////////////////         
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//中景园电子
//店铺地址:http://shop73023976.taobao.com/?spm=2013.1.0.0.M4PqC2
//
//  文 件 名   : main.c
//  版 本 号   : v2.0
//  作    者   : HuangKai
//  生成日期   : 2018-0101
//  最近修改   :
//  功能描述   : OLED 4接口演示例程(STC8A8K64SA12系列)
//              说明:
//              ----------------------------------------------------------------
//              GND    电源地
//              VCC  接5V或3.3v电源
//              D0   P1^4(SCL)
//              D1   P1^3(SDA)

// 修改历史   :
// 日    期   :
// 作    者   : HuangKai
// 修改内容   : 创建文件
//版权所有,盗版必究。
//Copyright(C) 中景园电子2018/3/16
//All rights reserved
//******************************************************************************/
#include "OLED4P.h"
//OLED的显存
//存放格式如下.
//[0]0 1 2 3 ... 127       
//[1]0 1 2 3 ... 127       
//[2]0 1 2 3 ... 127       
//[3]0 1 2 3 ... 127       
//[4]0 1 2 3 ... 127       
//[5]0 1 2 3 ... 127       
//[6]0 1 2 3 ... 127       
//[7]0 1 2 3 ... 127
unsigned char code BMP1[] =
{
        0x00,0x03,0x05,0x09,0x11,0xFF,0x11,0x89,0x05,0xC3,0x00,0xE0,0x00,0xF0,0x00,0xF8,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x28,0xFF,0x11,0xAA,0x44,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,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,0x83,0x01,0x38,0x44,0x82,0x92,
        0x92,0x74,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xFF,0x01,0x7D,
        0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,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,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,0x01,0x01,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
        0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,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,0x3F,0x3F,0x03,0x03,
        0xF3,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x01,0xF1,0x11,0x61,0x81,0x01,0x01,0x01,
        0x81,0x61,0x11,0xF1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01,0x01,0x01,0x01,0x01,
        0xC1,0x21,0x11,0x11,0x11,0x11,0x21,0xC1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01,
        0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x11,0x11,0x11,0x11,0x11,0xD3,0x33,
        0x03,0x03,0x3F,0x3F,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,
        0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x7F,0x00,0x00,0x01,0x06,0x18,0x06,
        0x01,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00,
        0x1F,0x20,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,
        0x40,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x40,0x30,0x0C,0x03,0x00,0x00,
        0x00,0x00,0xE0,0xE0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x06,
        0x06,0x06,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44,
        0x84,0x04,0x04,0x04,0x84,0xC4,0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,
        0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x04,0x84,0x44,
        0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x06,0x06,
        0x06,0x06,0x07,0x07,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,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,0x10,0x18,0x14,0x12,0x11,0x00,0x00,0x0F,0x10,0x10,0x10,
        0x0F,0x00,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,0x08,0x10,0x12,0x12,0x0D,0x00,
        0x00,0x18,0x00,0x00,0x0D,0x12,0x12,0x12,0x0D,0x00,0x00,0x18,0x00,0x00,0x10,0x18,
        0x14,0x12,0x11,0x00,0x00,0x10,0x18,0x14,0x12,0x11,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,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,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,0x80,0x80,0x80,0x80,
        0x80,0x80,0x80,0x80,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,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,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,0x00,0x00,0x38,0x54,0x54,0x58,0x00,0x00,
        0x7C,0x04,0x04,0x78,0x00,0x00,0x3C,0x40,0x40,0x7C,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,0x00,0xFF,0xAA,0xAA,0xAA,
        0x28,0x08,0x00,0xFF,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,0x00,0x00,0x00,0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,
        0x00,0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00,0x7F,0x02,0x04,0x08,0x10,0x7F,0x00,/********************************/
};

unsigned char code BMP2[] =
{
        0x00,0x03,0x05,0x09,0x11,0xFF,0x11,0x89,0x05,0xC3,0x00,0xE0,0x00,0xF0,0x00,0xF8,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x28,0xFF,0x11,0xAA,0x44,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,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,0x83,0x01,0x38,0x44,0x82,0x92,
        0x92,0x74,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xFF,0x01,0x7D,
        0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,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,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,0x01,0x01,0x00,0x00,0x00,0x00,
        0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,
        0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,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,0xF8,
        0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0xF8,0x18,0x60,0x80,0x00,0x00,0x00,0x80,
        0x60,0x18,0xF8,0x00,0x00,0x00,0x20,0x20,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
        0x10,0x08,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x20,0x20,0xF8,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x88,0x68,
        0x18,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,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,0x7F,
        0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x7F,0x00,0x00,0x01,0x06,0x18,0x06,0x01,
        0x00,0x00,0x7F,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00,0x00,0x1F,
        0x20,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,
        0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x06,0x01,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,
        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,0x00,0x00,0x00,0x00,0x40,0x20,0x20,0x20,0xC0,0x00,0x00,0xE0,0x20,0x20,0x20,
        0xE0,0x00,0x00,0x00,0x40,0xE0,0x00,0x00,0x00,0x00,0x60,0x20,0x20,0x20,0xE0,0x00,
        0x00,0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0xE0,0x00,0x00,0x00,0x00,0x00,0x40,0x20,
        0x20,0x20,0xC0,0x00,0x00,0x40,0x20,0x20,0x20,0xC0,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,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,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x0C,0x0A,0x0A,0x09,0x0C,0x00,0x00,0x0F,0x08,0x08,0x08,
        0x0F,0x00,0x00,0x00,0x08,0x0F,0x08,0x00,0x00,0x00,0x0C,0x08,0x09,0x09,0x0E,0x00,
        0x00,0x0C,0x00,0x00,0x0F,0x09,0x09,0x09,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x0A,
        0x0A,0x09,0x0C,0x00,0x00,0x0C,0x0A,0x0A,0x09,0x0C,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,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,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,0x80,0x80,0x80,0x80,
        0x80,0x80,0x80,0x80,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,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,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,0x00,0x00,0x38,0x54,0x54,0x58,0x00,0x00,
        0x7C,0x04,0x04,0x78,0x00,0x00,0x3C,0x40,0x40,0x7C,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,0x00,0xFF,0xAA,0xAA,0xAA,
        0x28,0x08,0x00,0xFF,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,0x00,0x00,0x00,0x00,0x7F,0x03,0x0C,0x30,0x0C,0x03,0x7F,
        0x00,0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00,0x7F,0x02,0x04,0x08,0x10,0x7F,0x00,/***************************************/
       
};
const unsigned char code F6x8[][6] =               
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};
/****************************************8*16的点阵************************************/
const unsigned char code F8X16[]=          
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
  0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};
unsigned char code Hzk[][32]={

//   "梯",0x11,0x08,0x10,0x88,0x10,0x90,0x11,0xfc,0xfc,0x24,0x10,0x24,0x31,0xfc,0x39,0x20, /* 0 */
//       0x55,0x20,0x51,0xfe,0x90,0x62,0x10,0xa2,0x11,0x2a,0x12,0x24,0x14,0x20,0x10,0x20,
//  "晶",0x0f,0xe0,0x08,0x20,0x08,0x20,0x0f,0xe0,0x08,0x20,0x08,0x20,0x0f,0xe0,0x00,0x00, /* 1 */
//       0x7e,0xfc,0x42,0x84,0x42,0x84,0x7e,0xfc,0x42,0x84,0x42,0x84,0x7e,0xfc,0x42,0x84,   
    {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xC9,0x4E,0x48,0xF8,0x4C,0x4B,0x78,0x00,0x00},
    {0x04,0x03,0x00,0xFF,0x00,0x41,0x20,0x13,0x0A,0x06,0xFF,0x02,0x12,0x22,0x1E,0x00}, /*'梯',0*/

    {0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,0x00},
    {0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00}, /*'晶',1*/
   
    {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
    {0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00}, /*'电',2*/

    {0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*'子',3*/

    {0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
    {0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00}, /*'技',4*/

    {0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00},
    {0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00}, /*'术',5*/


   

    {0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00},
    {0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00}, /*'正',6*/
    {0x20,0x18,0x08,0xEA,0xAC,0xA8,0xA8,0xAF,0xA8,0xA8,0xAC,0xEA,0x08,0x28,0x18,0x00},
    {0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00}, /*'常',7*/
    {0x10,0x10,0xD0,0xFF,0x90,0x50,0x20,0x50,0x4C,0x43,0x4C,0x50,0x20,0x40,0x40,0x00},
    {0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x58,0x41,0x4E,0x60,0x58,0x47,0x40,0x40,0x00},/*'检',8*/
    {0x40,0x20,0xF8,0x07,0xF0,0xA0,0x90,0x4C,0x57,0x24,0xA4,0x54,0x4C,0x80,0x80,0x00},
    {0x00,0x00,0xFF,0x00,0x1F,0x80,0x92,0x52,0x49,0x29,0x24,0x12,0x08,0x00,0x00,0x00},/*'修',9*/

//{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00},
//{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/

//{0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00},
//{0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"景",1*/

//{0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00},
//{0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*"园",2*/

//{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
//{0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",3*/

//{0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
//{0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",4*/

//{0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
//{0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00},/*"科",5*/

//{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
//{0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",6*/

};
/**********************************************
//IIC Start
**********************************************/
void OLED_IIC_Start()
{

        OLED_SCLK_Set() ;
         _nop_();_nop_();_nop_();   
        OLED_SDIN_Set();
         _nop_();_nop_();_nop_();   
        OLED_SDIN_Clr();
         _nop_();_nop_();_nop_();   
        OLED_SCLK_Clr();
         _nop_();_nop_();_nop_();   
}

/**********************************************
//IIC Stop
**********************************************/
void OLED_IIC_Stop()
{
OLED_SCLK_Set() ;
         _nop_();_nop_();_nop_();   
//        OLED_SCLK_Clr();
        OLED_SDIN_Clr();
         _nop_();_nop_();_nop_();   
        OLED_SDIN_Set();
         _nop_();_nop_();_nop_();   
       
}

void IIC_Wait_Ack()
{

        //GPIOB->CRH &= 0XFFF0FFFF;        //设置PB12为上拉输入模式
        //GPIOB->CRH |= 0x00080000;
//        OLED_SDA = 1;
//        delay_us(1);
        //OLED_SCL = 1;
        //delay_us(50000);
/*        while(1)
        {
                if(!OLED_SDA)                                //判断是否接收到OLED 应答信号
                {
                        //GPIOB->CRH &= 0XFFF0FFFF;        //设置PB12为通用推免输出模式
                        //GPIOB->CRH |= 0x00030000;
                        return;
                }
        }
*/
        OLED_SCLK_Set() ;
         _nop_();_nop_();_nop_();   
        OLED_SCLK_Clr();
         _nop_();_nop_();_nop_();   
}
/**********************************************
// IIC Write byte
**********************************************/

void Write_IIC_Byte(unsigned char IIC_Byte)
{
        unsigned char i;
        unsigned char m,da;
        da=IIC_Byte;
         _nop_();_nop_();_nop_();   
        OLED_SCLK_Clr();
         _nop_();_nop_();_nop_();   
        for(i=0;i<8;i++)               
        {
                        m=da;
                //        OLED_SCLK_Clr();
                m=m&0x80;
                if(m==0x80)
                {OLED_SDIN_Set();}
                else OLED_SDIN_Clr();
                 _nop_();_nop_();_nop_();   
                        da=da<<1;
                OLED_SCLK_Set();
                 _nop_();_nop_();_nop_();   
                OLED_SCLK_Clr();
                 _nop_();_nop_();_nop_();   
                }


}
/**********************************************
// IIC Write Command
**********************************************/
void Write_IIC_Command(unsigned char IIC_Command)
{
   OLED_IIC_Start();
   Write_IIC_Byte(0x78);            //Slave address,SA0=0
        IIC_Wait_Ack();       
   Write_IIC_Byte(0x00);                        //write command
        IIC_Wait_Ack();       
   Write_IIC_Byte(IIC_Command);
        IIC_Wait_Ack();       
   OLED_IIC_Stop();
}
/**********************************************
// IIC Write Data
**********************************************/
void Write_IIC_Data(unsigned char IIC_Data)
{
   OLED_IIC_Start();
   Write_IIC_Byte(0x78);                        //D/C#=0; R/W#=0
        IIC_Wait_Ack();       
   Write_IIC_Byte(0x40);                        //write data
        IIC_Wait_Ack();       
   Write_IIC_Byte(IIC_Data);
        IIC_Wait_Ack();       
   OLED_IIC_Stop();
}
void OLED_WR_Byte(unsigned dat,unsigned cmd)
{
        if(cmd)
                        {

   Write_IIC_Data(dat);
   
                }
        else {
   Write_IIC_Command(dat);
               
        }


}

/********************************************
// fill_Picture
********************************************/
void fill_picture(unsigned char fill_Data)
{
        unsigned char m,n;
        for(m=0;m<8;m++)
        {
                OLED_WR_Byte(0xb0+m,0);                //page0-page1
                OLED_WR_Byte(0x00,0);                //low column start address
                OLED_WR_Byte(0x10,0);                //high column start address
                for(n=0;n<128;n++)
                        {
                                OLED_WR_Byte(fill_Data,1);
                        }
        }
}


/***********************Delay****************************************/
void Delay_50ms(unsigned int Del_50ms)
{
        unsigned int m;
        for(;Del_50ms>0;Del_50ms--)
                for(m=6245;m>0;m--);
}

void Delay_1ms(unsigned int Del_1ms)
{
        unsigned char j;
        while(Del_1ms--)
        {       
                for(j=0;j<123;j++);
        }
}

//坐标设置

        void OLED_Set_Pos(unsigned char x, unsigned char y)
{         OLED_WR_Byte(0xb0+y,OLED_CMD);
        OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
        OLED_WR_Byte((x&0x0f),OLED_CMD);
}             
//开启OLED显示   
void OLED_Display_On(void)
{
        OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
        OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ON
        OLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON
}
//关闭OLED显示     
void OLED_Display_Off(void)
{
        OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
        OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFF
        OLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF
}                                            
//清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!          
void OLED_Clear(void)  
{  
        u8 i,n;                    
        for(i=0;i<8;i++)  
        {  
                OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
                OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
                OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址   
                for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
        } //更新显示
}
void OLED_On(void)  
{  
        u8 i,n;                    
        for(i=0;i<8;i++)  
        {  
                OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
                OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
                OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址   
                for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);
        } //更新显示
}
//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示                                 
//size:选择字体 16/12
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
{             
        unsigned char c=0,i=0;       
                c=chr-' ';//得到偏移后的值                       
                if(x>Max_Column-1){x=0;y=y+2;}
                if(Char_Size ==16)
                        {
                        OLED_Set_Pos(x,y);       
                        for(i=0;i<8;i++)
                        OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
                        OLED_Set_Pos(x,y+1);
                        for(i=0;i<8;i++)
                        OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
                        }
                        else {       
                                OLED_Set_Pos(x,y);
                                for(i=0;i<6;i++)
                                OLED_WR_Byte(F6x8[c],OLED_DATA);
                               
                        }
}
//m^n函数
u32 oled_pow(u8 m,u8 n)
{
        u32 result=1;         
        while(n--)result*=m;   
        return result;
}                                  
//显示2个数字
//x,y :起点坐标         
//len :数字的位数
//size:字体大小
//mode:模式        0,填充模式;1,叠加模式
//num:数值(0~4294967295);                           
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
{                
        u8 t,temp;
        u8 enshow=0;                                                  
        for(t=0;t<len;t++)
        {
                temp=(num/oled_pow(10,len-t-1))%10;
                if(enshow==0&&t<(len-1))
                {
                        if(temp==0)
                        {
                                OLED_ShowChar(x+(size2/2)*t,y,' ',size2);
                                continue;
                        }else enshow=1;
                          
                }
                 OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);
        }
}
//显示一个字符号串
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)
{
        unsigned char j=0;
        while (chr[j]!='\0')
        {                OLED_ShowChar(x,y,chr[j],Char_Size);
                        x+=8;
                if(x>120){x=0;y+=2;}
                        j++;
        }
}
//显示汉字
void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{                                  
        u8 t,adder=0;
        OLED_Set_Pos(x,y);       
    for(t=0;t<16;t++)
                {
                                OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
                                adder+=1;
     }       
                OLED_Set_Pos(x,y+1);       
    for(t=0;t<16;t++)
                        {       
                                OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
                                adder+=1;
      }                                       
}
/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
{        
unsigned int j=0;
unsigned char x,y;
  
  if(y1%8==0) y=y1/8;      
  else y=y1/8+1;
        for(y=y0;y<y1;y++)
        {
                OLED_Set_Pos(x0,y);
    for(x=x0;x<x1;x++)
            {      
                    OLED_WR_Byte(BMP[j++],OLED_DATA);                   
            }
        }
}

//初始化SSD1306                                            
void OLED_Init(void)
{        

    OLED_WR_Byte(0xAE,OLED_CMD);//--display off
        OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
        OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
        OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  
        OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
        OLED_WR_Byte(0x81,OLED_CMD); // contract control
        OLED_WR_Byte(0xFF,OLED_CMD);//--128   
        OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
        OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
        OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
        OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
        OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
        OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
        OLED_WR_Byte(0x00,OLED_CMD);//
       
        OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
        OLED_WR_Byte(0x80,OLED_CMD);//
       
        OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
        OLED_WR_Byte(0x05,OLED_CMD);//
       
        OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
        OLED_WR_Byte(0xF1,OLED_CMD);//
       
        OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
        OLED_WR_Byte(0x12,OLED_CMD);//
       
        OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
        OLED_WR_Byte(0x30,OLED_CMD);//
       
        OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
        OLED_WR_Byte(0x14,OLED_CMD);//
       
        OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
        OLED_Clear();
}  
void OLED_Show_Int(char x,char y,long num ,char n,char size2,char ack)
{
        if(ack == 0) //不加符号
        {
                switch(n)
                {
                        case 0:
                        case 1:
                                                  OLED_ShowChar(x,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 2:
                                            OLED_ShowChar(x,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 3:
                                                        OLED_ShowChar(x,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2),y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 4:
                                                        OLED_ShowChar(x,y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 5:
                                                        OLED_ShowChar(x,y,abs(num)/10000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*3,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*4,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 6: OLED_ShowChar(x,y,abs(num)/100000%10+0x30,size2);   //刷新数据到液晶相应位置
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/10000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*3,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*4,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*5,y,abs(num)/1%10+0x30,size2);
                                                        break;
                }
        }
        else //加符号
        {
         if(num<0)  OLED_ShowChar(x,y,'-',size2);
                else  OLED_ShowChar(x,y,'+',size2);
                switch(n)
                {
                        case 0:
                        case 1:
                                                  OLED_ShowChar(x+(size2/2),y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 2:
                                            OLED_ShowChar(x+(size2/2),y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 3:
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 4:
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*3,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*4,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 5:
                                                        OLED_ShowChar(x+(size2/2),y,abs(num)/10000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*3,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*4,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*5,y,abs(num)/1%10+0x30,size2);
                                                        break;
                        case 6: OLED_ShowChar(x+(size2/2),y,abs(num)/100000%10+0x30,size2);   //刷新数据到液晶相应位置
                                                        OLED_ShowChar(x+(size2/2)*2,y,abs(num)/10000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*3,y,abs(num)/1000%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*4,y,abs(num)/100%10+0x30,size2);
                                            OLED_ShowChar(x+(size2/2)*5,y,abs(num)/10%10+0x30,size2);
                                                        OLED_ShowChar(x+(size2/2)*6,y,abs(num)/1%10+0x30,size2);
                                                        break;
                }
        }               
}
但使龙城飞将在,不教胡马度阴山!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-01-17 22:36:16
已绑定手机

0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2026-1-17 22:36:16 | 显示全部楼层
我的DA指令也有问题,和楼主遇到的一模一样
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-24 01:22 , Processed in 0.132761 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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