[STM32F1] stm32驱动lcd12864 st7565

[复制链接]
 楼主| RF、龙龙 发表于 2016-11-10 13:51 | 显示全部楼层 |阅读模式
哪位大神使用32驱动过st7565液晶,厂家给的是51的程序,结果我移植到32就毫无反应。延时也加了    主频试着降低也都没用   有没有这种可能,这个液晶真有5V的IO才能驱动呀     谢谢各位
mintspring 发表于 2016-11-10 17:44 | 显示全部楼层
有可能。你看一下技术手册上怎么说这个液晶屏的。如果电压信号满足要求,就是移植程序的时候没有移对
mintspring 发表于 2016-11-10 17:45 | 显示全部楼层
LCD12832.c文件:
  1. #include"stm32f10x_lib.h"
  2. #include "OCM12232.h"
  3. void Lcd12232delay(unsigned int Time)//延时函数
  4. {
  5.   unsigned int i,j;
  6.   for ( i=0;i<Time;i++)
  7.   for (j=0;j<100;j++);
  8. }
  9. void Delay(unsigned int us)//延时微秒
  10. {
  11.   unsigned int i;
  12.   for ( i=0;i<us;i++);
  13. }
  14. void LCD_WriteLByte(u8 Byte)//写PC口的低8位,高8位不变
  15. {
  16.   u16 Data_PAL;
  17.   Data_PAL = GPIO_ReadOutputData(GPIOC);
  18.   Data_PAL = Data_PAL&0xFF00;//保留高8位数据
  19.   Data_PAL = Data_PAL | Byte;//写入低8位数据
  20.   GPIO_Write(GPIOC,Data_PAL );
  21. }
  22. void w_com(unsigned char Byte)//向LCD写指令
  23. {
  24.   A0_0;
  25.   CS_0;
  26.   RD_1;
  27.   WR_0;
  28.   Delay(2);
  29.   LCD_WriteLByte(Byte);
  30.   Delay(2);
  31.   WR_1;
  32. }
  33. void w_data(unsigned char data)//向LCD写数据
  34. {
  35.   A0_1;
  36.   CS_0;
  37.   RD_1;
  38.   WR_0;
  39.   Delay(2);
  40.   LCD_WriteLByte(data);
  41.   Delay(2);
  42.   WR_1;
  43. }
  44. void SetStartPage(u8 StartPageAddress)//设置起始页面地址
  45. {
  46.   w_com(0xB0|StartPageAddress);
  47. }
  48. void SetStartColumn(u8 StartColumnAddress)//设置起始列地址
  49. {
  50.   w_com(0x10|StartColumnAddress);
  51. }
  52. void SetStartLine(u8 StartLineAddress)//设置起始行地址
  53. {
  54.   w_com(0x40|StartLineAddress);
  55. }
  56. void clrscr(void)//清屏
  57. {
  58.   u8 i,page;
  59.   for(page=0xb0;page<0xb4;page++)
  60.   {
  61.     w_com(page);
  62.     w_com(0x10);//列地址,高低字节两次写入,从第0列开始
  63.     w_com(0x40);//行地址,从第0行开始
  64.     for(i=0;i<128;i++)
  65.     {w_data(0);}
  66.   }
  67. }
  68. void ClrOnePage(unsigned StartPage)//清除一页
  69. {
  70.   u8 i;
  71.   w_com(0xb0+StartPage);//页地址
  72.   w_com(0x10);//列地址,从第0列开始
  73.   w_com(0x40);//行地址,从第0行开始
  74.   for(i=0;i<128;i++)
  75.   {w_data(0);}
  76. }
  77. void ClrNumColumn(unsigned char StartPage,unsigned char StartColumn,unsigned Num)//清除StartPage页从StartColumn个汉字位置开始的Num列
  78. {
  79.   u8 i;
  80.   w_com(0xb0+StartPage);
  81.   w_com(0x10+StartColumn);
  82.   w_com(0x40);//行地址,从第0行开始
  83.   for(i=0;i<Num;i++)
  84.   {w_data(0);}
  85. }
  86. void Displayhz(unsigned char num,const unsigned char *p)//从(0,0)开始显示num个16*16的汉字(包括标点符号)
  87. {
  88.   u8 i,j;
  89.   if(num<=8)
  90.   {
  91.     w_com(0xb0);
  92.     w_com(0x10);//列地址,从第0列开始
  93.     w_com(0x40);//行地址,从第0行开始
  94.     for(i=0;i<8;i++)
  95.     {
  96.       for(j=0;j<16;j++)
  97.       {
  98.         if(16*2*i+j<32*num)
  99.         {w_data(p[16*2*i+j]);}
  100.       }
  101.     }
  102.   
  103.     w_com(0xb1);
  104.     w_com(0x10);//列地址,从第0列开始
  105.     w_com(0x40);//行地址,从第0行开始
  106.     for(i=0;i<8;i++)
  107.     {
  108.       for(j=0;j<16;j++)
  109.       {
  110.         if(16*(2*i+1)+j<32*num)
  111.         {w_data(p[16*(2*i+1)+j]);}
  112.       }
  113.     }
  114.   }
  115.   else if(num>8)
  116.     {
  117.       w_com(0xb0);
  118.       w_com(0x10);//列地址,从第0列开始
  119.       w_com(0x40);//行地址,从第0行开始
  120.       for(i=0;i<8;i++)
  121.        {
  122.         for(j=0;j<16;j++)
  123.          {
  124.           if(16*2*i+j<32*num)
  125.            {w_data(p[16*2*i+j]);}
  126.          }
  127.        }
  128.   
  129.         w_com(0xb1);
  130.         w_com(0x10);//列地址,从第0列开始
  131.         w_com(0x40);//行地址,从第0行开始
  132.         for(i=0;i<8;i++)
  133.          {
  134.           for(j=0;j<16;j++)
  135.            {
  136.             if(16*(2*i+1)+j<32*num)
  137.              {w_data(p[16*(2*i+1)+j]);}
  138.            }
  139.          }
  140.    
  141.         w_com(0xb2);
  142.         w_com(0x10);//列地址,从第0列开始
  143.         w_com(0x40);//行地址,从第0行开始
  144.         for(i=8;i<16;i++)
  145.          {
  146.           for(j=0;j<16;j++)
  147.            {
  148.              if(16*2*i+j<32*num)
  149.              {w_data(p[16*2*i+j]);}
  150.            }
  151.          }
  152.    
  153.         w_com(0xb3);
  154.         w_com(0x10);//列地址,从第0列开始
  155.         w_com(0x40);//行地址,从第0行开始
  156.         for(i=8;i<16;i++)
  157.          {
  158.           for(j=0;j<16;j++)
  159.            {
  160.              if(16*(2*i+1)+j<32*num)
  161.              {w_data(p[16*(2*i+1)+j]);}
  162.            }
  163.          }
  164.     }
  165. }
  166. void DisplayHz(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p)//从StartPage页的第Column个汉字位置开始显示Num个汉字
  167. {
  168.   u8 i,j;
  169.   w_com(0xb0+StartPage);
  170.   w_com(0x10+column);//列地址,从第0列开始
  171.   w_com(0x40);//行地址,从第0行开始
  172.   
  173.   for(i=0;i<Num;i++)
  174.     {
  175.       for(j=0;j<16;j++)
  176.       {w_data(p[16*2*i+j]);}
  177.     }
  178.   w_com(0xb1+StartPage);
  179.   w_com(0x10+column);//列地址,从第column个汉字列开始
  180.   w_com(0x40);//行地址,从第0行开始
  181.   for(i=0;i<Num;i++)
  182.   {
  183.     for(j=0;j<16;j++)
  184.     {w_data(p[16*(2*i+1)+j]);}
  185.   }
  186. }
  187. void DisplayZf(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p)//从StartPage页的第Column个字符位置开始显示Num个8*16的字符
  188. {
  189.   u8 i,j;
  190.   
  191.   w_com(0xb0+StartPage);
  192.   w_com(0x10+column);//列地址,从第0列开始
  193.   w_com(0x40);//行地址,从第0行开始
  194.   
  195.   for(i=0;i<Num;i++)
  196.     {
  197.       for(j=0;j<8;j++)
  198.       {w_data(p[8*2*i+j]);}
  199.     }
  200.   
  201.   w_com(0xb1+StartPage);
  202.   w_com(0x10+column);//列地址,从第0列开始
  203.   w_com(0x40);//行地址,从第0行开始
  204.   for(i=0;i<Num;i++)
  205.   {
  206.     for(j=0;j<8;j++)
  207.     {w_data(p[8*(2*i+1)+j]);}
  208.   }
  209. }
  210. void DisplayZF(unsigned char num,const unsigned char *p)//从(0,0)开始显示num个8*16的汉字(包括标点符号)
  211. {
  212.   u8 i,j;
  213.   if(num<=16)
  214.   {
  215.     w_com(0xb0);
  216.       w_com(0x10);//列地址,从第0列开始
  217.       w_com(0x40);//行地址,从第0行开始
  218.       for(i=0;i<16;i++)
  219.        {
  220.         for(j=0;j<8;j++)
  221.          {
  222.           if(8*2*i+j<16*num)
  223.            {w_data(p[8*2*i+j]);}
  224.          }
  225.        }
  226.   
  227.         w_com(0xb1);
  228.         w_com(0x10);//列地址,从第0列开始
  229.         w_com(0x40);//行地址,从第0行开始
  230.         for(i=0;i<16;i++)
  231.          {
  232.           for(j=0;j<8;j++)
  233.            {
  234.             if(8*(2*i+1)+j<16*num)
  235.              {w_data(p[8*(2*i+1)+j]);}
  236.            }
  237.          }
  238.   }
  239.   else if(num>16)
  240.     {
  241.       w_com(0xb0);
  242.       w_com(0x10);//列地址,从第0列开始
  243.       w_com(0x40);//行地址,从第0行开始
  244.       for(i=0;i<16;i++)
  245.        {
  246.         for(j=0;j<8;j++)
  247.          {
  248.           if(8*2*i+j<16*num)
  249.            {w_data(p[8*2*i+j]);}
  250.          }
  251.        }
  252.   
  253.         w_com(0xb1);
  254.         w_com(0x10);//列地址,从第0列开始
  255.         w_com(0x40);//行地址,从第0行开始
  256.         for(i=0;i<16;i++)
  257.          {
  258.           for(j=0;j<8;j++)
  259.            {
  260.             if(8*(2*i+1)+j<16*num)
  261.              {w_data(p[8*(2*i+1)+j]);}
  262.            }
  263.          }
  264.    
  265.         w_com(0xb2);
  266.         w_com(0x10);//列地址,从第0列开始
  267.         w_com(0x40);//行地址,从第0行开始
  268.         for(i=16;i<32;i++)
  269.          {
  270.           for(j=0;j<8;j++)
  271.            {
  272.              if(8*2*i+j<16*num)
  273.              {w_data(p[8*2*i+j]);}
  274.            }
  275.          }
  276.    
  277.         w_com(0xb3);
  278.         w_com(0x10);//列地址,从第0列开始
  279.         w_com(0x40);//行地址,从第0行开始
  280.         for(i=16;i<32;i++)
  281.          {
  282.           for(j=0;j<8;j++)
  283.            {
  284.              if(8*(2*i+1)+j<16*num)
  285.              {w_data(p[8*(2*i+1)+j]);}
  286.            }
  287.          }
  288.     }
  289. }
  290. void display_map(const unsigned char *p)//显示128*32的图片,p是图片数据首地址
  291. {
  292.   unsigned char seg;
  293.   unsigned char page;
  294.   for(page=0xb0;page<0xb4;page++)//写页地址共4页0xb0--0xb3
  295.   {
  296.     w_com(page);
  297.     w_com(0x10);//列地址,高低字节两次写入,从第0列开始
  298.     w_com(0x40);//行地址,从第0行开始
  299.     for(seg=0;seg<128;seg++)//写128列
  300.     {w_data(*p++);}
  301.   }
  302. }
  303. void LCD_Init()//LCD初始化
  304. {
  305.   RES_0;
  306.   Lcd12232delay(10);
  307.   RES_1;
  308.   w_com(0xaf);//ON DSIPLAY
  309.   w_com(0x40);//START Line DISPLAY
  310.   
  311.   w_com(0xa0);//ADC正常
  312.   //w_com(0xa1);//ADC反向
  313.   
  314.   w_com(0xa6);//正常显示
  315.   //w_com(0xa7);//反白显示
  316.   
  317.   w_com(0xa4);//CLEAR--Normal Modle
  318.   //w_com(0xa5);//全屏显示
  319.   
  320.   w_com(0xa2);//1/9BIAS--1/9偏置设置
  321.   //w_com(0xa3);//1/7BIAS--1/7偏置设置
  322.   
  323.   w_com(0xc8);//COMMON OUTPUT DIRECTION
  324.   //w_com(0xc0);
  325.   
  326.   w_com(0x2f);//POWER CONTROL
  327.   w_com(0x20);//RESISTER RATIO--粗调
  328.   w_com(0x81);//VOLUM MODE SET
  329.   w_com(0x20);//RESISTER RATIO--细调
  330. }



mintspring 发表于 2016-11-10 17:46 | 显示全部楼层
LCD12832.h文件:
  1. #ifndef _OCM12232_h_
  2. #define _OCM12232_h_
  3. #define CS_1             GPIO_SetBits(GPIOC, GPIO_Pin_8)    //取消LCD片选
  4. #define CS_0             GPIO_ResetBits(GPIOC, GPIO_Pin_8)  //LCD片选有效
  5. #define RES_1            GPIO_SetBits(GPIOC, GPIO_Pin_9)    //LCD低电平复位,复位之后保持高电平
  6. #define RES_0            GPIO_ResetBits(GPIOC, GPIO_Pin_9)  //LCD复位
  7. #define A0_1             GPIO_SetBits(GPIOC, GPIO_Pin_10)   //Ao=1,向LCD输入数据
  8. #define A0_0             GPIO_ResetBits(GPIOC, GPIO_Pin_10) //Ao=0,向LCD写入指令
  9. #define WR_1             GPIO_SetBits(GPIOC, GPIO_Pin_11)   //LCD写禁止
  10. #define WR_0             GPIO_ResetBits(GPIOC, GPIO_Pin_11) //LCD写允许
  11. #define RD_1             GPIO_SetBits(GPIOC, GPIO_Pin_12)   //LCD读禁止
  12. #define RD_0             GPIO_ResetBits(GPIOC, GPIO_Pin_12) //LCD读允许

  13. void Lcd12232delay(unsigned int Time);//延时函数
  14. void LCD_WriteLByte(u8 Byte);//写PC口的低8位,高8位不变
  15. void w_com(unsigned char Byte);//向LCD写指令
  16. void w_data(unsigned char data);//向LCD写数据
  17. void SetStartPage(u8 StartPageAddress);//设置起始页面地址
  18. void SetStartColumn(u8 StartColumnAddress);//设置起始列地址
  19. void SetStartLine(u8 StartLineAddress);//设置起始行地址
  20. void clrscr(void);//清屏
  21. void ClrOnePage(unsigned StartPage);//清除一页
  22. void ClrNumColumn(unsigned char StartPage,unsigned char StartColumn,unsigned Num);//清除StartPage页从StartColumn个汉字位置开始的Num列
  23. void Displayhz(unsigned char num,const unsigned char *p);//从(0,0)开始显示num个16*16的汉字(包括标点符号)
  24. void DisplayHz(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p);//从StartPage页的第Column个汉字位置开始显示Num个汉字
  25. void DisplayZf(unsigned char StartPage,unsigned char column,unsigned char Num,const unsigned char *p);//从StartPage页的第Column个字符位置开始显示Num个8*16的字符
  26. void DisplayZF(unsigned char num,const unsigned char *p);//从(0,0)开始显示num个8*16的汉字(包括标点符号)
  27. void display_map(const unsigned char *p);//显示128*32的图片,p是图片数据首地址
  28. void LCD_Init();//LCD初始化
  29. #endif
  30. hw_conf.C文件:
  31. #include"stm32f10x_lib.h"
  32. #include "hw_conf.h"
  33. #include "OCM12232.h"
  34. ErrorStatus HSEStartUpStatus;
  35. void RCC_Configuration(void)
  36. {
  37.   RCC_DeInit();
  38.   RCC_HSEConfig(RCC_HSE_ON);
  39.   HSEStartUpStatus = RCC_WaitForHSEStartUp();
  40.   if(HSEStartUpStatus == SUCCESS)
  41.   {
  42.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
  43.     FLASH_SetLatency(FLASH_Latency_2);
  44.     RCC_HCLKConfig(RCC_SYSCLK_Div1);
  45.     RCC_PCLK2Config(RCC_HCLK_Div1);
  46.     RCC_PCLK1Config(RCC_HCLK_Div2);
  47.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  48.     RCC_PLLCmd(ENABLE);
  49.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
  50.     {
  51.     }
  52.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  53.     while(RCC_GetSYSCLKSource() != 0x08)
  54.     {
  55.     }
  56.   }
  57.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  58. }
  59. void GPIO_Configuration(void)
  60. {
  61.   GPIO_InitTypeDef GPIO_InitStructure;
  62.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  63.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  64.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  65.   GPIO_Init(GPIOC, &GPIO_InitStructure);
  66.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
  67.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  68.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  69.   GPIO_Init(GPIOC, &GPIO_InitStructure);
  70. }
  71. void NVIC_Configuration(void)
  72. {
  73. #ifdef  VECT_TAB_RAM
  74.   NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
  75. #else
  76.   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
  77. #endif
  78. }
  79. void Setup_System(void)
  80. {
  81. RCC_Configuration();
  82. GPIO_Configuration();
  83. NVIC_Configuration();
  84. }
  85. hw_conf.h文件:
  86. #ifndef   _hw_conf_H_
  87. #define   _hw_conf_H_
  88. extern void Setup_System(void);
  89. #endif
  90. main.c文件:
  91. #include"stm32f10x_lib.h"
  92. #include "hw_conf.h"
  93. #include"OCM12232.h"
  94. const unsigned char tab4[]={
  95. /*--  文字:  武  --*/
  96. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  97. 0x10,0x10,0x14,0x14,0x14,0xD4,0x14,0x14,0x10,0x7F,0x90,0x12,0x14,0x10,0x10,0x00,
  98. 0x40,0x40,0x7F,0x20,0x20,0x1F,0x11,0x11,0x01,0x00,0x07,0x18,0x20,0x40,0xF0,0x00,
  99. /*--  文字:  汉  --*/
  100. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  101. 0x10,0x60,0x01,0x86,0x60,0x04,0x1C,0xE4,0x04,0x04,0x04,0xE4,0x1C,0x04,0x00,0x00,
  102. 0x04,0x04,0x7E,0x01,0x40,0x20,0x20,0x10,0x0B,0x04,0x0B,0x10,0x30,0x60,0x20,0x00,
  103. /*--  文字:  普  --*/
  104. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  105. 0x40,0x44,0x54,0x64,0x45,0x7E,0x44,0x44,0x44,0x7E,0x45,0x64,0x54,0x44,0x40,0x00,
  106. 0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00,
  107. /*--  文字:  仕  --*/
  108. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  109. 0x80,0x40,0xF0,0x1C,0x27,0x22,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x30,0x20,0x00,
  110. 0x00,0x00,0x7F,0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x30,0x20,0x00,
  111. /*--  文字:  数  --*/
  112. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  113. 0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,
  114. 0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00,
  115. /*--  文字:  控  --*/
  116. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  117. 0x08,0x08,0x08,0xFF,0x88,0x48,0x00,0x98,0x48,0x28,0x0A,0x2C,0x48,0xD8,0x08,0x00,
  118. 0x02,0x42,0x81,0x7F,0x00,0x00,0x40,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x40,0x00,
  119. /*--  文字:  科  --*/
  120. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  121. 0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,
  122. 0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00,
  123. /*--  文字:  技  --*/
  124. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  125. 0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xC8,0x48,0x48,0x7F,0x48,0xC8,0x48,0x08,0x00,
  126. 0x01,0x41,0x80,0x7F,0x00,0x40,0x40,0x20,0x13,0x0C,0x0C,0x12,0x21,0x60,0x20,0x00,
  127. /*--  文字:  有  --*/
  128. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  129. 0x00,0x04,0x84,0x44,0xE4,0x34,0x2C,0x27,0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00,
  130. 0x02,0x01,0x00,0x00,0xFF,0x09,0x09,0x09,0x29,0x49,0xC9,0x7F,0x00,0x00,0x00,0x00,
  131. /*--  文字:  限  --*/
  132. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  133. 0xFE,0x02,0x32,0x4E,0x82,0x00,0xFE,0x4A,0xCA,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,
  134. 0xFF,0x00,0x02,0x04,0x03,0x00,0xFF,0x40,0x20,0x03,0x0C,0x12,0x21,0x60,0x20,0x00,
  135. /*--  文字:  公  --*/
  136. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  137. 0x00,0x00,0x80,0x40,0x30,0x0E,0x84,0x00,0x00,0x0E,0x10,0x60,0xC0,0x80,0x80,0x00,
  138. 0x00,0x01,0x20,0x70,0x28,0x24,0x23,0x31,0x10,0x10,0x14,0x78,0x30,0x01,0x00,0x00,
  139. /*--  文字:  司  --*/
  140. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  141. 0x00,0x10,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x12,0x02,0x02,0xFE,0x00,0x00,
  142. 0x00,0x00,0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x0F,0x00,0x20,0x40,0x3F,0x00,0x00,
  143. /*--  文字:  欢  --*/
  144. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  145. 0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
  146. 0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,
  147. /*--  文字:  迎  --*/
  148. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  149. 0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
  150. 0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,
  151. /*--  文字:  你  --*/
  152. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  153. 0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00,
  154. 0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00,
  155. /*--  文字:  !  --*/
  156. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  157. 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  158. 0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  159. };
  160. const unsigned char tab3[]={
  161. /*--  文字:  北  --*/
  162. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  163. 0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00,
  164. 0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,
  165. /*--  文字:  京  --*/
  166. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  167. 0x00,0x04,0x04,0xE4,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0xE4,0x06,0x04,0x00,0x00,
  168. 0x00,0x20,0x10,0x19,0x0D,0x41,0x81,0x7F,0x01,0x01,0x05,0x0D,0x38,0x10,0x00,0x00,
  169. /*--  文字:  欢  --*/
  170. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  171. 0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
  172. 0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,
  173. /*--  文字:  迎  --*/
  174. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  175. 0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
  176. 0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,
  177. /*--  文字:  你  --*/
  178. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  179. 0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00,
  180. 0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00,
  181. /*--  文字:  !  --*/
  182. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  183. 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  184. 0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  185. };
  186. const unsigned char tab2[]={
  187. /*--  文字:  A  --*/
  188. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  189. 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,
  190. /*--  文字:  B  --*/
  191. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  192. 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,
  193. /*--  文字:  C  --*/
  194. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  195. 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,
  196. /*--  文字:  D  --*/
  197. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  198. 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,
  199. /*--  文字:  E  --*/
  200. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  201. 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,
  202. /*--  文字:  F  --*/
  203. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  204. 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,
  205. /*--  文字:  G  --*/
  206. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  207. 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,
  208. /*--  文字:  H  --*/
  209. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  210. 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,
  211. /*--  文字:  I  --*/
  212. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  213. 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  214. /*--  文字:  J  --*/
  215. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  216. 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,
  217. /*--  文字:  K  --*/
  218. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  219. 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,
  220. /*--  文字:  L  --*/
  221. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  222. 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,
  223. /*--  文字:  M  --*/
  224. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  225. 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,
  226. /*--  文字:  N  --*/
  227. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  228. 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,
  229. /*--  文字:  8  --*/
  230. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  231. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  232. /*--  文字:  8  --*/
  233. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  234. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  235. /*--  文字:  6  --*/
  236. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  237. 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
  238. /*--  文字:  2  --*/
  239. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  240. 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  241. /*--  文字:  9  --*/
  242. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  243. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
  244. /*--  文字:  8  --*/
  245. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  246. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  247. /*--  文字:  8  --*/
  248. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  249. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  250. /*--  文字:  J  --*/
  251. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  252. 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,
  253. /*--  文字:  M  --*/
  254. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  255. 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,
  256. /*--  文字:  A  --*/
  257. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  258. 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,
  259. /*--  文字:  S  --*/
  260. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  261. 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,
  262. /*--  文字:  D  --*/
  263. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  264. 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,
  265. /*--  文字:  F  --*/
  266. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  267. 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,
  268. /*--  文字:  G  --*/
  269. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  270. 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,
  271. /*--  文字:  H  --*/
  272. /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  273. 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,
  274. };
  275. const unsigned char tab5[]={
  276. /*--  调入了一幅图像:D:\My Documents\My Pictures\我爱你.bmp  --*/
  277. /*--  宽度x高度=128x32  --*/
  278. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  279. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  280. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  281. 0x80,0x80,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0x80,0x00,
  282. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  283. 0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x80,0x48,
  284. 0x00,0x02,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  285. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  286. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0xFF,0xB6,0x6F,0xFF,0xFB,0xFF,0xD0,0xE0,
  287. 0x40,0xE0,0xC0,0xE0,0xC0,0xE0,0xE0,0x60,0xA0,0xEE,0xFF,0xFB,0xDE,0x7F,0x00,0x00,
  288. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC4,0x9F,
  289. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9C,0x9C,0x9E,0xFF,0xF3,0xF3,0xF3,0xFF,0xFF,0xFF,
  290. 0x7C,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  291. 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x22,0x50,0x10,0x0C,0x00,0x04,0x04,0x00,
  292. 0x0C,0x02,0x08,0x21,0x90,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  293. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  294. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x3F,0xDD,0xCF,0x8F,0x8E,0xCF,0xFE,0x37,
  295. 0x07,0x07,0x06,0x07,0x07,0x05,0x07,0x07,0x1F,0x3D,0xFE,0xEF,0xFF,0xF5,0x00,0x00,
  296. 0x00,0x00,0x00,0x00,0x00,0x08,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  297. 0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,
  298. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  299. 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x06,0x00,0x0C,0x10,0x08,0x00,0x08,
  300. 0x00,0x08,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  301. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  302. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  303. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  304. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
  305. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  306. 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  307. 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
  308. 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  309. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  310. };
  311. void main(void)
  312. {
  313.   Setup_System();
  314.   LCD_Init();
  315.   clrscr();//清屏
  316.   while(1)
  317.   {
  318.     //display_map(tab3);//显示图片,p是图片数据首地址
  319.     //Display_hz(16,tab4);
  320.     //Disp_ZF(2,2,10,tab2);//从page页的第Column个字符位置开始显示Num个字符
  321.     display_map(tab5);//显示图片,p是图片数据首地址
  322.     //Display_ZF(22,tab2);
  323.     //Disp_Hz(0,1,6,tab4);
  324.     //Lcd12232delay(20000);
  325.     //Disp_Hz(2,1,6,tab3);
  326.     //ClrOnePage(1);
  327.     //ClrNumColumn(1,2,64);//清除page页从16*StartColumn开始的Num列
  328.     //Lcd12232delay(200);
  329.   }
  330. }


mintspring 发表于 2016-11-10 17:46 | 显示全部楼层
上面是:stm32驱动12832液晶屏程序(ST7565R控制器)
我在网上找的,你试试好用不。
 楼主| RF、龙龙 发表于 2016-11-10 21:10 | 显示全部楼层
好的   非常感谢    我先试试
qianshuyong21 发表于 2016-11-10 22:52 | 显示全部楼层
我有ST7567的驱动文件,不知是否兼容?需要的话,可以回我。
 楼主| RF、龙龙 发表于 2016-11-10 23:24 | 显示全部楼层
qianshuyong21 发表于 2016-11-10 22:52
我有ST7567的驱动文件,不知是否兼容?需要的话,可以回我。

好的   回复
 楼主| RF、龙龙 发表于 2016-11-10 23:25 | 显示全部楼层
qianshuyong21 发表于 2016-11-10 22:52
我有ST7567的驱动文件,不知是否兼容?需要的话,可以回我。

你用什么MCU驱动过
 楼主| RF、龙龙 发表于 2016-11-11 00:10 来自手机 | 显示全部楼层
试了半天还是不行     程序我都可以倒着背下来了    好几年前的屏了   资料都丢的差不多了
ticomi 发表于 2016-11-11 08:41 | 显示全部楼层
驱动LCD主要就是时序控制,按照手册上的要求进行时序控制即可,无论是什么接口都可以很容易实现。
robter 发表于 2016-11-11 08:55 | 显示全部楼层
感觉应该是时序的问题
pywmiss 发表于 2016-11-11 09:26 | 显示全部楼层
示波器....抬出来看看波形如何
 楼主| RF、龙龙 发表于 2016-11-11 17:14 | 显示全部楼层
51的移植到32,时序不需要太大的改动吧,延时多加点就可以了吧
Rollo 发表于 2016-11-12 21:15 | 显示全部楼层
可能是时序问题吧
qianshuyong21 发表于 2017-3-16 14:36 | 显示全部楼层

抱歉!比较少上论坛;还需要吗?
benscottsih 发表于 2019-6-18 09:47 来自手机 | 显示全部楼层
楼主后来怎么解决的啊?我也碰见这样的问题
绝恋牛牛 发表于 2019-8-10 16:53 | 显示全部楼层
qianshuyong21 发表于 2016-11-10 22:52
我有ST7567的驱动文件,不知是否兼容?需要的话,可以回我。

你好,我需要STM32 ST7567的驱动 8080并口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

173

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部