你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何驱动LCD122x32(stm32F207vgt6,含源码)

[复制链接]
caizhiwei 发布时间:2015-1-13 10:42
本帖最后由 caizhiwei 于 2015-2-3 16:28 编辑

      这个液晶估计很少有人知道,但是在工控领域应用非常普遍:
液晶驱动IC基本特性   
1、具有低功耗、供应电压范围宽等特点。  
2、具有16common和61segment输出,并可外接驱动IC扩展驱动。
  3、具有2560位显示RAM(DD RAM),即80×8×4位   
4、具有与68系列或80系列相适配的MPU接口功能,并有专用的指令集,可完成文本显示或图形显示。
工作参数  :
1、逻辑工作电压(VDD-VSS):2.4~6.0V
2、LCD驱动电压(Vdd-Vlcd):3.0~13.5V  
3、工作温度(Ta):0~55℃(常温) / -20~70℃(宽温)


编程要注意的问题:
//写入GDRAM 绘图,Y是Y绘图坐标,2个字节一行,X是图形起始坐标,CLONG是图形长度,以字节
//为单位;HIGHT是图形高度,TAB是图形数据表.12864M的图形显示范围是256*32点阵.
//要在12864M里显示全屏,取模时一幅图横切成两半

/*
ST7920提供64×32 个字节的空间(由扩充指令设定绘图RAM 地址),最多可以控制256×64
点阵的二维绘图缓冲空间,在更改绘图RAM时,由扩充指令设置GDRAM地址先垂直地址后水平
地址(连续2个字节的数据来定义垂直和水平地址),再2个字节的数据给绘图RAM(先高8位
后低8 位)



API函数如下:
  1. #ifndef __LCD12232_H
  2. #define __LCD12232_H

  3. #include "stm32f2xx.h"


  4. extern void Delay(__IO uint32_t nTime);

  5. #define LCD_DATA_INPUT          GPIOD->MODER &=~0x300000
  6. #define LCD_DATA_OUTPUT         GPIOD->MODER |= 0x100000

  7. #define LCD_CLK_HIGH        GPIO_SetBits(GPIOD,GPIO_Pin_11)   
  8. #define LCD_CLK_LOW         GPIO_ResetBits(GPIOD,GPIO_Pin_11)

  9. #define LCD_SID_HIGH        GPIO_SetBits(GPIOD,GPIO_Pin_12)
  10. #define LCD_SID_LOW         GPIO_ResetBits(GPIOD,GPIO_Pin_12)

  11. #define LCD_CS_HIGH         GPIO_SetBits(GPIOD,GPIO_Pin_13)
  12. #define LCD_CS_LOW          GPIO_ResetBits(GPIOD,GPIO_Pin_13)

  13. #define LCD_SID             (uint8_t)(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_12))

  14. //#define LCD_BUSY              (GPIOE->IDR&0x8000)

  15. #define BLK_ON            GPIO_SetBits(GPIOD,GPIO_Pin_14)
  16. #define BLK_OFF           GPIO_ResetBits(GPIOD,GPIO_Pin_14)            

  17. #define writecommand            0xF8
  18. #define writedata               0xFA
  19. #define readestate              0xFC
  20. #define readdata                0xFE


  21. static void SendByte(u8 dat);
  22. static u8 ReceieveByte(void);
  23. static u8 readBF(void);

  24. void LCD_writeCMD(u8 dat);
  25. void LCD_writedata(u8 dat);
  26. void LCD_Init(void);

  27. void LCD_Clear_DDRAM(void);
  28. void LCD_Clear_GDRAM(void);
  29. void LCD_SetPos(u8 row,u8 column);

  30. void ShowASCII(u8 i);
  31. void ShowCharPos(u8 row, u8 col,u8 dat);

  32. void ShowString(u8 *s);
  33. void ShowStringPos(u8 row, u8 col,u8 *s);

  34. void ShowGB(unsigned char *HZ);
  35. void ShowGBPos(u8 row, u8 col, u8 *HZ);
  36. void ShowGBStringPos(u8 row, u8 col,  u8 *s);

  37. void Write_USR_CGRAM(u8 data1,u8 data2,u8 addr);
  38. void Show_USR_CGRAM_Char(u8 addr,u8 i);

  39. void LCD_Test(void);
  40. void ShowBlankPos(u8 row, u8 col, u8 num);



  41. #endif
复制代码

复制代码
IMG_20150112_173050.jpg
收藏 2 评论6 发布时间:2015-1-13 10:42

举报

6个回答
caizhiwei 回答时间:2015-1-13 10:43:47
源代码分享:

LCD.zip

下载

4.13 KB, 下载次数: 22

巅峰残狼 回答时间:2015-1-13 12:20:59
自己写的?谢谢分享
caizhiwei 回答时间:2015-1-13 13:14:55
是呀,嘿嘿,给有需要的人!
caizhiwei 回答时间:2015-2-3 16:30:27
今天对代码升级了:
1.修复了字符串不能自动换行的bug
2.新增了数字转字符串直接显示的功能(sprintf);
caizhiwei 回答时间:2015-2-3 16:33:14
源码下载,嘿嘿
  1. LCD_Init();
  2.    BLK_ON;  
  3.    ShowStringPos(0, 0,"http://jwdz520.taobao.com/")  ;   
  4.    ShowGBStringPos(1,0,"我是大赢家哈哈");
  5.    LCD_Test();
  6.     ShowNumPos(0, 0, 0x35,10);
  7. LCD_2015.02.zip (4.11 KB, 下载次数: 15)
复制代码

abb200628 回答时间:2015-2-3 20:43:14
谢谢分享,赞一个

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版