本帖最后由 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函数如下:
- #ifndef __LCD12232_H
- #define __LCD12232_H
- #include "stm32f2xx.h"
- extern void Delay(__IO uint32_t nTime);
- #define LCD_DATA_INPUT GPIOD->MODER &=~0x300000
- #define LCD_DATA_OUTPUT GPIOD->MODER |= 0x100000
- #define LCD_CLK_HIGH GPIO_SetBits(GPIOD,GPIO_Pin_11)
- #define LCD_CLK_LOW GPIO_ResetBits(GPIOD,GPIO_Pin_11)
- #define LCD_SID_HIGH GPIO_SetBits(GPIOD,GPIO_Pin_12)
- #define LCD_SID_LOW GPIO_ResetBits(GPIOD,GPIO_Pin_12)
- #define LCD_CS_HIGH GPIO_SetBits(GPIOD,GPIO_Pin_13)
- #define LCD_CS_LOW GPIO_ResetBits(GPIOD,GPIO_Pin_13)
- #define LCD_SID (uint8_t)(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_12))
- //#define LCD_BUSY (GPIOE->IDR&0x8000)
- #define BLK_ON GPIO_SetBits(GPIOD,GPIO_Pin_14)
- #define BLK_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_14)
- #define writecommand 0xF8
- #define writedata 0xFA
- #define readestate 0xFC
- #define readdata 0xFE
- static void SendByte(u8 dat);
- static u8 ReceieveByte(void);
- static u8 readBF(void);
- void LCD_writeCMD(u8 dat);
- void LCD_writedata(u8 dat);
- void LCD_Init(void);
- void LCD_Clear_DDRAM(void);
- void LCD_Clear_GDRAM(void);
- void LCD_SetPos(u8 row,u8 column);
- void ShowASCII(u8 i);
- void ShowCharPos(u8 row, u8 col,u8 dat);
- void ShowString(u8 *s);
- void ShowStringPos(u8 row, u8 col,u8 *s);
- void ShowGB(unsigned char *HZ);
- void ShowGBPos(u8 row, u8 col, u8 *HZ);
- void ShowGBStringPos(u8 row, u8 col, u8 *s);
- void Write_USR_CGRAM(u8 data1,u8 data2,u8 addr);
- void Show_USR_CGRAM_Char(u8 addr,u8 i);
- void LCD_Test(void);
- void ShowBlankPos(u8 row, u8 col, u8 num);
- #endif
复制代码
|
LCD.zip
2015-1-13 10:43 上传
点击文件名下载附件
4.13 KB, 下载次数: 24
1.修复了字符串不能自动换行的bug
2.新增了数字转字符串直接显示的功能(sprintf);