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

如何驱动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, 下载次数: 24

巅峰残狼 回答时间: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
谢谢分享,赞一个

所属标签

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