当前位置:   article > 正文

基于MM32的oled驱动代码_write_iic_byte(0x78); write_iic_byte(0x40);

write_iic_byte(0x78); write_iic_byte(0x40);

一:

屏幕选用的是中景园电子的0.98英寸的oled屏幕

模块接口定义:

1. GND 电源地

2. VCC 电源正(3~5.5V)

3. D0 OLED 的D0 脚,在SPI 和IIC 通信中为时钟管脚

4. D1 OLED 的D1 脚,在SPI 和IIC 通信中为数据管

5. RES OLED 的RES#脚,用来复位(低电平复位)

6. DC OLED 的D/C#E 脚,数据和命令控制管脚

7. CS OLED 的CS#脚,也就是片选管脚

七针SPI/IIC OLED 模块使用方法:

七针SPI/IIC OLED 模块共有七个管脚,1~7 分别为 GDN、VCC、D0、D1、RES、DC、CS

此模块支持四线SPI、三线SPI、IIC 接口;

在iic 接口中需要将BS1 配置为1,BS0 为0;所以R1,R4 焊接,R2,R3 不焊接,R8 可焊接也可不焊接

  1. #include "HAL_conf.h"
  2. #include "delay.h"
  3. #include "iic.h"
  4. #include "font.h"
  5. /********************************************************************************************************
  6. **函数信息 :I2CInitMasterMode(I2C_TypeDef *I2Cx,unsigned long apb_mhz,unsigned long i2c_baud_rate) //unit is Khz
  7. **功能描述 :初始化I2C
  8. **输入参数 :I2C_TypeDef *I2Cx,选择I2C1,I2C2
  9. **输出参数 :无
  10. ********************************************************************************************************/
  11. void IIC_Init(void)//初始gpio
  12. {
  13. GPIO_InitTypeDef GPIO_InitStructure;
  14. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB端口时钟
  15. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //LD2-->PB12 13 端口配置
  16. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  17. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
  18. GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB12 13
  19. GPIO_SetBits(GPIOB,GPIO_Pin_14|GPIO_Pin_15); //PG15 OUT 输出高
  20. }
  21. void IIC_Start(void )//START
  22. {
  23. OLED_SCLK_Set() ;
  24. OLED_SDIN_Set();
  25. OLED_SDIN_Clr();
  26. OLED_SCLK_Clr();
  27. }
  28. void IIC_Stop(void )//STOP
  29. {
  30. OLED_SCLK_Set() ;
  31. OLED_SDIN_Clr();
  32. OLED_SDIN_Set();
  33. }
  34. void IIC_Wait_Ack(void)//RESPONSE
  35. {
  36. OLED_SCLK_Set() ;
  37. OLED_SCLK_Clr();
  38. }
  39. void Write_IIC_Byte(unsigned char IIC_Byte)//WRITE_BYTE
  40. {
  41. unsigned char i;
  42. unsigned char m,da;
  43. da=IIC_Byte;
  44. OLED_SCLK_Clr();
  45. for(i=0;i<8;i++)
  46. {
  47. m=da;
  48. m=m&0x80;
  49. if(m==0x80)
  50. {OLED_SDIN_Set();}
  51. else OLED_SDIN_Clr();
  52. da=da<<1;
  53. OLED_SCLK_Set();
  54. OLED_SCLK_Clr();
  55. }
  56. }
  57. void Write_IIC_Command(unsigned char IIC_Command)//WRITE_CMD
  58. {
  59. IIC_Start();
  60. Write_IIC_Byte(0x78); //Slave address,SA0=0
  61. IIC_Wait_Ack();
  62. Write_IIC_Byte(0x00); //write command
  63. IIC_Wait_Ack();
  64. Write_IIC_Byte(IIC_Command);
  65. IIC_Wait_Ack();
  66. IIC_Stop();
  67. }
  68. void Write_IIC_Data(unsigned char IIC_Data)//WRITE_DATA
  69. {
  70. IIC_Start();
  71. Write_IIC_Byte(0x78); //D/C#=0; R/W#=0
  72. IIC_Wait_Ack();
  73. Write_IIC_Byte(0x40); //write data
  74. IIC_Wait_Ack();
  75. Write_IIC_Byte(IIC_Data);
  76. IIC_Wait_Ack();
  77. IIC_Stop();
  78. }
  79. void OLED_WR_Byte(unsigned dat,unsigned cmd)
  80. {
  81. if(cmd)
  82. {
  83. Write_IIC_Data(dat);
  84. }
  85. else {
  86. Write_IIC_Command(dat);
  87. }
  88. }
  89. void fill_picture(unsigned char fill_Data)
  90. {
  91. unsigned char m,n;
  92. for(m=0;m<8;m++)
  93. {
  94. OLED_WR_Byte(0xb0+m,0); //page0-page1
  95. OLED_WR_Byte(0x00,0); //low column start address
  96. OLED_WR_Byte(0x10,0); //high column start address
  97. for(n=0;n<128;n++)
  98. {
  99. OLED_WR_Byte(fill_Data,1);
  100. }
  101. }
  102. }
  103. void OLED_Set_Pos(unsigned char x, unsigned char y)
  104. { OLED_WR_Byte(0xb0+y,OLED_CMD);
  105. OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
  106. OLED_WR_Byte((x&0x0f),OLED_CMD);
  107. }
  108. void OLED_Display_On(void)
  109. {
  110. OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
  111. OLED_WR_Byte(0X14,OLED_CMD); //DCDC ON
  112. OLED_WR_Byte(0XAF,OLED_CMD); //DISPLAY ON
  113. }
  114. void OLED_Display_Off(void)
  115. {
  116. OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
  117. OLED_WR_Byte(0X10,OLED_CMD); //DCDC OFF
  118. OLED_WR_Byte(0XAE,OLED_CMD); //DISPLAY OFF
  119. }
  120. void OLED_Clear(void)
  121. {
  122. u8 i,n;
  123. for(i=0;i<8;i++)
  124. {
  125. OLED_WR_Byte (0xb0+i,OLED_CMD); //设置页地址(0~7
  126. OLED_WR_Byte (0x00,OLED_CMD); //设置显示位置—列低地址
  127. OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
  128. for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
  129. } //更新显示
  130. }
  131. void OLED_On(void)
  132. {
  133. u8 i,n;
  134. for(i=0;i<8;i++)
  135. {
  136. OLED_WR_Byte (0xb0+i,OLED_CMD); //设置页地址(0~7
  137. OLED_WR_Byte (0x00,OLED_CMD); //设置显示位置—列低地址
  138. OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
  139. for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);
  140. } //更新显示
  141. }
  142. //在指定位置显示一个字符,包括部分字符
  143. //x:0~127
  144. //y:0~63
  145. //mode:0,反白显示;1,正常显示
  146. //size:选择字体 16/12
  147. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
  148. {
  149. unsigned char c=0,i=0;
  150. c=chr-' ';//得到偏移后的值
  151. if(x>Max_Column-1){x=0;y=y+2;}
  152. if(Char_Size ==16)
  153. {
  154. OLED_Set_Pos(x,y);
  155. for(i=0;i<8;i++)
  156. OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  157. OLED_Set_Pos(x,y+1);
  158. for(i=0;i<8;i++)
  159. OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  160. }
  161. else {
  162. OLED_Set_Pos(x,y);
  163. for(i=0;i<6;i++)
  164. OLED_WR_Byte(F6x8[c][i],OLED_DATA);
  165. }
  166. }
  167. u32 oled_pow(u8 m,u8 n)
  168. {
  169. u32 result=1;
  170. while(n--)result*=m;
  171. return result;
  172. }
  173. //显示2个数字
  174. //x,y :起点坐标
  175. //len :数字的位数
  176. //size:字体大小
  177. //mode:模式 0,填充模式;1,叠加模式
  178. //num:数值(0~4294967295);
  179. void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
  180. {
  181. u8 t,temp;
  182. u8 enshow=0;
  183. for(t=0;t<len;t++)
  184. {
  185. temp=(num/oled_pow(10,len-t-1))%10;
  186. if(enshow==0&&t<(len-1))
  187. {
  188. if(temp==0)
  189. {
  190. OLED_ShowChar(x+(size2/2)*t,y,' ',size2);
  191. continue;
  192. }else enshow=1;
  193. }
  194. OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);
  195. }
  196. }
  197. //显示一个字符号串
  198. void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)
  199. {
  200. unsigned char j=0;
  201. while (chr[j]!='\0')
  202. { OLED_ShowChar(x,y,chr[j],Char_Size);
  203. x+=8;
  204. if(x>120){x=0;y+=2;}
  205. j++;
  206. }
  207. }
  208. //显示汉字
  209. void OLED_ShowCHinese(u8 x,u8 y,u8 no)
  210. {
  211. u8 t,adder=0;
  212. OLED_Set_Pos(x,y);
  213. for(t=0;t<16;t++)
  214. {
  215. OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
  216. adder+=1;
  217. }
  218. OLED_Set_Pos(x,y+1);
  219. for(t=0;t<16;t++)
  220. {
  221. OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
  222. adder+=1;
  223. }
  224. }
  225. /***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0127,y为页的范围07*****************/
  226. void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
  227. {
  228. unsigned int j=0;
  229. unsigned char x,y;
  230. if(y1%8==0) y=y1/8;
  231. else y=y1/8+1;
  232. for(y=y0;y<y1;y++)
  233. {
  234. OLED_Set_Pos(x0,y);
  235. for(x=x0;x<x1;x++)
  236. {
  237. OLED_WR_Byte(BMP[j++],OLED_DATA);
  238. }
  239. }
  240. }
  241. void OLED_INIT()
  242. {
  243. OLED_WR_Byte(0xAE,OLED_CMD);//--display off//关闭显示
  244. OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  245. OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  246. OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
  247. OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  248. OLED_WR_Byte(0x81,OLED_CMD); // contract control
  249. OLED_WR_Byte(0xFF,OLED_CMD);//--128 这两条指令一块使用设置对比度
  250. OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  251. OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  252. OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  253. OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
  254. OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  255. OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  256. OLED_WR_Byte(0x00,OLED_CMD);//
  257. OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  258. OLED_WR_Byte(0x80,OLED_CMD);//
  259. OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
  260. OLED_WR_Byte(0x05,OLED_CMD);//
  261. OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  262. OLED_WR_Byte(0xF1,OLED_CMD);//
  263. OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  264. OLED_WR_Byte(0x12,OLED_CMD);//
  265. OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  266. OLED_WR_Byte(0x30,OLED_CMD);//
  267. OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  268. OLED_WR_Byte(0x14,OLED_CMD);//
  269. OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  270. }

具体的指令解释如下:

 OLED_WR_Byte(0xAE,OLED_CMD); //关闭显示
 OLED_WR_Byte(0xD5,OLED_CMD); //设置时钟分频因子,震荡频率
 OLED_WR_Byte(80,OLED_CMD);   //[3:0],分频因子;[7:4],震荡频率
 OLED_WR_Byte(0xA8,OLED_CMD); //设置驱动路数
 OLED_WR_Byte(0X3F,OLED_CMD); //默认0X3F(1/64)
 OLED_WR_Byte(0xD3,OLED_CMD); //设置显示偏移
 OLED_WR_Byte(0X00,OLED_CMD); //默认为0

 OLED_WR_Byte(0x40,OLED_CMD); //设置显示开始行 [5:0],行数.
                
 OLED_WR_Byte(0x8D,OLED_CMD); //电荷泵设置
 OLED_WR_Byte(0x14,OLED_CMD); //bit2,开启/关闭
 OLED_WR_Byte(0x20,OLED_CMD); //设置内存地址模式
 OLED_WR_Byte(0x02,OLED_CMD); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
 OLED_WR_Byte(0xA1,OLED_CMD); //段重定义设置,bit0:0,0->0;1,0->127;
 OLED_WR_Byte(0xC0,OLED_CMD); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
 OLED_WR_Byte(0xDA,OLED_CMD); //设置COM硬件引脚配置
 OLED_WR_Byte(0x12,OLED_CMD); //[5:4]配置
  
 OLED_WR_Byte(0x81,OLED_CMD); //对比度设置
 OLED_WR_Byte(0xEF,OLED_CMD); //1~255;默认0X7F (亮度设置,越大越亮)
 OLED_WR_Byte(0xD9,OLED_CMD); //设置预充电周期
 OLED_WR_Byte(0xf1,OLED_CMD); //[3:0],PHASE 1;[7:4],PHASE 2;
 OLED_WR_Byte(0xDB,OLED_CMD); //设置VCOMH 电压倍率
 OLED_WR_Byte(0x30,OLED_CMD); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;

 OLED_WR_Byte(0xA4,OLED_CMD); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)
 OLED_WR_Byte(0xA6,OLED_CMD); //设置显示方式;bit0:1,反相显示;0,正常显示             
 OLED_WR_Byte(0xAF,OLED_CMD); //开启显示 

可以看出,SSD1306 的每页包含了 128 个字节,总共 8 页,这样刚好是 12864 的点阵大小。因为每次写入都是按字节写入的,这就存在一个问题,如果我们使用只写方式操作模块,那么,每次要写 8 个点,这样,我们在画点的时候,就必须把要设置的点所在的字节的每个位都搞清楚当前的状态(0/1?),否则写入的数据就会覆盖掉之前的状态,结果就是有些不需要显示的点,显示出来了,或者该显示的没有显示了。这个问题在能读的模式下,我们可以先读出来要写入的那个字节,得到当前状况,在修改了要改写的位之后再写进 GRAM,这样就不会影响到之前的状况了。但是这样需要能读 GRAM,对于 4 线 SPI 模式/IIC 模式,模块是不支持读的,而且读->改->写的方式速度也比较慢。所以我们采用的办法是在 STM32F4 的内部建立一个 OLED 的 GRAM(共 128*8 个字节),在每次修改的时候,只是修改 STM32F4 上的 GRAM(实际上就是 SRAM),在修改完了之后,一次性把 STM32F4 上的 GRAM 写入到 OLED 的 GRAM。

 

  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "uart_nvic.h"
  5. #include "iic.h"
  6. /********************************************************************************************************
  7. **函数信息 :int main (void)
  8. **功能描述 :开机后,串口发送数据,并等待上位机发送信息,然后再打印出来
  9. **输入参数 :
  10. **输出参数 :
  11. ********************************************************************************************************/
  12. int main(void)
  13. {
  14. delay_init(); //延时函数初始化
  15. uart_nvic_init(115200); //串口初始化为115200
  16. IIC_Init ();
  17. OLED_INIT ();
  18. OLED_Clear();
  19. OLED_ShowCHinese(0,0,0);//
  20. OLED_ShowCHinese(90,0,5);//
  21. OLED_ShowCHinese(108,0,5);//
  22. OLED_ShowString(6,3,"0.96' MM32_CP",16);
  23. while(1)
  24. {
  25. }
  26. }

 

 

  1. #ifndef __FONT_H
  2. #define __FONT_H
  3. const unsigned char F6x8[][6] =
  4. {
  5. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
  6. 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
  7. 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
  8. 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
  9. 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
  10. 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
  11. 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
  12. 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
  13. 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
  14. 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
  15. 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
  16. 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
  17. 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
  18. 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
  19. 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
  20. 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
  21. 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
  22. 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
  23. 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
  24. 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
  25. 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
  26. 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
  27. 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
  28. 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
  29. 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
  30. 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
  31. 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
  32. 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
  33. 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
  34. 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
  35. 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
  36. 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
  37. 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
  38. 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
  39. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
  40. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
  41. 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
  42. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
  43. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
  44. 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
  45. 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
  46. 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
  47. 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
  48. 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
  49. 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
  50. 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
  51. 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
  52. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
  53. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
  54. 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
  55. 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
  56. 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
  57. 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
  58. 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
  59. 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
  60. 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
  61. 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
  62. 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
  63. 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
  64. 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
  65. 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
  66. 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
  67. 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
  68. 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
  69. 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
  70. 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
  71. 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
  72. 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
  73. 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
  74. 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
  75. 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
  76. 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
  77. 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
  78. 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
  79. 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
  80. 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
  81. 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
  82. 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
  83. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
  84. 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
  85. 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
  86. 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
  87. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
  88. 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
  89. 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
  90. 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
  91. 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
  92. 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
  93. 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
  94. 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
  95. 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
  96. 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
  97. };
  98. /****************************************8*16的点阵************************************/
  99. const unsigned char F8X16[]=
  100. {
  101. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  102. 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  103. 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  104. 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  105. 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  106. 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  107. 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  108. 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  109. 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  110. 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  111. 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  112. 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  113. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  114. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  115. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  116. 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  117. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  118. 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  119. 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  120. 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  121. 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  122. 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  123. 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  124. 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  125. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  126. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  127. 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  128. 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  129. 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  130. 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  131. 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  132. 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  133. 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
  134. 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  135. 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  136. 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  137. 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  138. 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  139. 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  140. 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  141. 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  142. 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  143. 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  144. 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  145. 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  146. 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  147. 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  148. 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  149. 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  150. 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  151. 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  152. 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  153. 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  154. 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  155. 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  156. 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  157. 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  158. 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  159. 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  160. 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  161. 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  162. 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  163. 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  164. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  165. 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  166. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  167. 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  168. 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  169. 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  170. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  171. 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  172. 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  173. 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  174. 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  175. 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  176. 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  177. 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  178. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  179. 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  180. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  181. 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  182. 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  183. 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  184. 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  185. 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  186. 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  187. 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  188. 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  189. 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  190. 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  191. 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  192. 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  193. 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  194. 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  195. 0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
  196. };
  197. char Hzk[][32]={
  198. {0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00},
  199. {0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/
  200. {0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00},
  201. {0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"景",1*/
  202. {0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00},
  203. {0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*"园",2*/
  204. {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
  205. {0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",3*/
  206. {0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
  207. {0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",4*/
  208. {0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
  209. {0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00},/*"科",5*/
  210. {0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
  211. {0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"?",0*/
  212. {0x40,0x40,0x48,0x48,0x48,0xC8,0x78,0x4F,0x48,0x48,0x48,0x48,0x48,0x40,0x40,0x00},
  213. {0x00,0x00,0x00,0x00,0x03,0x12,0x12,0x22,0x22,0x52,0x8A,0x06,0x00,0x00,0x00,0x00},/*"专",0*/
  214. {0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0x30,0x00,0x00},
  215. {0x40,0x40,0x40,0x43,0x40,0x7F,0x40,0x40,0x40,0x7F,0x42,0x41,0x40,0x40,0x40,0x00},/*"业",1*/
  216. {0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
  217. {0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",2*/
  218. {0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00},
  219. {0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00},/*"术",3*/
  220. {0x00,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0xFE,0x82,0x82,0x92,0xA2,0x9E,0x00,0x00},
  221. {0x80,0x60,0x1F,0x02,0x42,0x82,0x7F,0x00,0xFF,0x40,0x2F,0x10,0x2C,0x43,0x80,0x00},/*"服",4*/
  222. {0x00,0x00,0x90,0x88,0x4C,0x57,0xA4,0x24,0x54,0x54,0x8C,0x84,0x00,0x00,0x00,0x00},
  223. {0x01,0x01,0x80,0x42,0x22,0x1A,0x07,0x02,0x42,0x82,0x42,0x3E,0x01,0x01,0x01,0x00},/*"务",5*/
  224. {0x00,0x04,0xE4,0x24,0x2C,0xB4,0x25,0x26,0x24,0xB4,0x2C,0x24,0xE4,0x04,0x00,0x00},
  225. {0x00,0x00,0xFF,0x02,0x01,0x1E,0x12,0x12,0x12,0x1E,0x41,0x82,0x7F,0x00,0x00,0x00},/*"商",6*/
  226. };
  227. #endif

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/309497
推荐阅读
  

闽ICP备14008679号