查看: 6701|回复: 8

基于STM8/32的LCD点阵屏GB2312字库显示

  [复制链接]
  • TA的每日心情
    无聊
    2015-10-12 10:23
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-8-25 11:53:53 | 显示全部楼层 |阅读模式
    分享到:
    本方案主控采用STM8S207C8T61.7128*64LCD显示屏,LCD驱动芯片采用UC1701(可兼容ST7565),字库显示采用高通GT20L16S1Y字库芯片, 以实现LCD界面上的显示。详细资料及代码可查看附件。
    以下分别是STM8S207C8T6UC1701GT20L16S1Y在原理图中的模块电路。

    原理图1jpg.jpg
    原理图2.jpg
    原理图3.jpg
    原理图是依据datasheet中的阐述所绘制,其中主控电路是使用了stm8s207c8t6芯片绘制的最小系统,显示屏部分是根据设置BM0BM1来选择总线模式绘制的电路。这里我使用了SPI总线模式。而字库芯片本身就是SPI总线模式通信,直接根据规格书的电路例子使用即可。完成了电路部分,知道了总线模式,再结合数据手册就可以对改设备编写程序代码了。首先是LCD液晶屏的驱动,要液晶屏显示你想要的数据,主要是LCD初始化成功,下面是LCD初始化程序,根据指令列表编写的程序代码:
    1. void Lcd_Init(void)
    2. {
    3.   Lcd_Reset();
    4.   Delay(10);
    5.   LcdWriteCmd(0xFA);
    6.   LcdWriteCmd(0x92);
    7.   LcdWriteCmd(0xA1);//Set SEG Direction
    8.   LcdWriteCmd(0xC8);//Set COM Direction
    9.   LcdWriteCmd(0xA2);//Set LCD Bias Ratio      
    10.   LcdWriteCmd(0x23);//Set Vlcd Resistor Ratio
    11.   Delay(10);
    12.   LcdWriteCmd(0x81);//Set Electronic Volume
    13.   LcdWriteCmd(0x3A);//Set Electronic Volume  
    14.   Delay(10);
    15.   LcdWriteCmd(0x2F);//set boost
    16.   LcdWriteCmd(0xAF);//Set Display Enable
    17.   LcdWriteCmd(0x40);//Set Scroll Line
    18.   LcdWriteCmd(0xE0);//Set Cursor Update Mode
    19. }
    复制代码
    初始化显示屏之前必须对引脚的模式进行相对应的配置
    1. void GPIOConfiguration(void)
    2. {  
    3.   /* 显示屏配置引脚模式 */
    4.   GPIO_Init(GPIOE, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);  //PE0高速推挽输出低电平[SDA]
    5.   GPIO_Init(GPIOE, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);  //PE1高速推挽输出低电平[SCLK]
    6.   GPIO_Init(GPIOC, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);  //PC1高速推挽输出低电平[CS0]
    7.   GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST); //PC2高速推挽输出高电平[RET]
    8.   GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST);  //PC3高速推挽输出低电平[CD]
    9.       
    10.   /* GT20L16S1Y 引脚配置 */
    11.   GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST);  //高速推挽输出低电平[SCLK]
    12.   GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_FAST);  //高速推挽输出低电平[CS]
    13.   GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST);  //高速推挽输出低电平[SI]
    14.   GPIO_Init(GPIOD, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);      //上拉输入[SO]
    15.   
    16.   /* 按键引脚配置上拉输入模式 */
    17.   GPIO_Init(GPIOE, GPIO_PIN_5, GPIO_MODE_IN_PU_NO_IT);
    18.   GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);
    19.   GPIO_Init(GPIOE, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);  
    20. }
    复制代码
    显示驱动成功后则接着是对字库芯片的文字数据获取进行编程调试,以下是获取GB2312文字的函数代码。
    1. void S1Y_gt16_GetData (u8 MSB,u8 LSB,u8 *S1YDZ_Data)
    2. {
    3.   u32 temp=(MSB-0xB0)*94+LSB-0xA1;
    4.   u32 BaseAdd=0,Address;
    5.   if(MSB == 0xA9 && LSB >=0xA1)
    6.      Address = (282 + (LSB - 0xA1))*32+BaseAdd;
    7.   else if(MSB >=0xA1 && MSB <= 0xA3 && LSB >=0xA1)
    8.          Address =( (MSB - 0xA1) * 94 + (LSB - 0xA1))*32+ BaseAdd;  
    9.   
    10.   else if(MSB >=0xB0 && MSB <= 0xF7 && LSB >=0xA1)
    11.           Address = (846+temp)*32+ BaseAdd;
    12.   S1Y_rdat_bat(Address,32,S1YDZ_Data);
    13. }
    复制代码
    PCB实物图
    PCB实物图2.jpg
    实际效果图
    以下有三个界面,分别是门禁显示,行驶记录仪和一个图形页面。文字显示采用GT20L16S1Y字库芯片,这款芯片包含最常用的GB2312汉字,字型符合国家标准。

    整体图.jpg
    门禁界面中的数字采用字库芯片内的24点阵不等宽时钟体字库。

    门禁.jpg
    图形LOGO可存储至字库芯片中的64K可擦写空间。

    工商银行.jpg
    湖南卫视.jpg

    下载资料.rar (6.54 MB, 下载次数: 931)

    评分

    参与人数 1与非币 +5 收起 理由
    loveeeboard + 5 三周年铜板双倍!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-8-25 12:02:36 | 显示全部楼层
    赞赞赞!!!!!!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 20:59
  • 签到天数: 1512 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    发表于 2015-8-25 18:48:17 | 显示全部楼层
    好资料,参考下,谢谢分享!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-17 15:49
  • 签到天数: 46 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-8-26 09:26:26 | 显示全部楼层
    不错,现在用不着也赞一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-8-10 17:40
  • 签到天数: 641 天

    连续签到: 2 天

    [LV.9]以坛为家II

    发表于 2015-8-27 16:12:46 | 显示全部楼层
    支持一个。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-9-2 14:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-9-2 14:05:24 | 显示全部楼层
    参考下,谢谢分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-1-16 14:30
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-12-27 00:57:15 来自手机 | 显示全部楼层
    谢谢分享。。。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-5-13 21:25:56 | 显示全部楼层
    我看了你的程序好久,怎么没有发现主函数在哪里呢?还是不需要主函数?麻烦您告知一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-10-25 17:06:38 | 显示全部楼层
    顶顶顶,现在正在为这个字库移植烦恼,感谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 01:48 , Processed in 0.196117 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.