?? tg12232e.c
字號:
/****************************************Copyright (c) ****************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**―――File Info――――――――――――――――――――――――――――――――――――――
** File name: TG12232E.h
** Last modified Date: 2006年11月13日
** Last Version: V1.0
** Descriptions: TG12232E液晶顯示器驅(qū)動文件,實現(xiàn)LCD驅(qū)動程序
**
**――――――――――――――――――――――――――――――――――――――――――――――
** Created by: 郭敏輝
** Created date: 2006年11月13日
** Version: V1.0
** Descriptions: TG12232E液晶顯示器驅(qū)動文件,實現(xiàn)LCD驅(qū)動程序
**
**――――――――――――――――――――――――――――――――――――――――――――――
** Modified by: 黃欽寧
** Modified date: 2007-04-13
** Version: V2.0
** Descriptions:
**
*******************************************************************************************/
#include "main.h"
#include "TG12232E.h"
#include <stdarg.h>
#include <stdio.h>
/*******************************************************************************************
**函數(shù)名稱: void LCD_Init(void)
**函數(shù)功能: LCD初始化
**入口參數(shù): 無
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_TimeDly(uint16 Time)
{
OSTimeDly(Time);
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_Init(void)
**函數(shù)功能: LCD初始化
**入口參數(shù): 無
**返 回 值: 無
**說 明:
*******************************************************************************************/
int32 Spi_Handles ; // SPI句柄
void LCD_Init(void)
{
/* 初始化SPI接口 */
Spi_Handles=dopen("SPI0",O_RDWR,OCCUPY); // 以獨占方式打開SPI 設備
if(Spi_Handles <0) // dopen成功,句柄將大于0
{
Spi_Handles = getlasterr(Spi_Handles); // 查看錯誤狀態(tài)
while(1)
{
OSTimeDly(OS_TICKS_PER_SEC);
}
}
//diocontrol(Spi_Handles,SPI_SELDEVICE,(void*)GPIOA1);
diocontrol(Spi_Handles,SPI_SCKPSET,(void*)SPISCK_L);
diocontrol(Spi_Handles,SPI_OPMOD,(void*) SPISIMPLEX); // 數(shù)據(jù)單向模式
//液晶IO口初始化
gpio_clr(LCD_CS);
gpio_set(LCD_RST); // LCD模塊復位
gpio_clr(LCD_RST);
LCD_TimeDly(1);
gpio_set(LCD_RST);
LCD_DisplaySwitch(1,0,0);
LCD_Clear();//清屏
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_Write(uint8 *SndDatBuff,uint16 length)
**函數(shù)功能: 向LCD寫數(shù)據(jù)
**入口參數(shù): uint8 *SndDatBuff 要寫入數(shù)據(jù)地址的指針
** uint16 length 要寫入數(shù)據(jù)的長度
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_Write(uint8 *SndDatBuff,uint16 length)
{
gpio_clr(LCD_CS); // 片選LCD
gpio_set(LCD_CS);
dwrite(Spi_Handles,(char *)SndDatBuff,length);
gpio_clr(LCD_CS);
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_SendControl(uint8 Data)
**函數(shù)功能: 發(fā)送一個控制字節(jié)
**入口參數(shù): Data 發(fā)送控制命令。
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_SendControl(uint8 Data)
{
uint8 Buff[3];
Buff[0]=LCD_WriteCommand;
Buff[1]=Data&0xF0;
Buff[2]=Data<<4;
LCD_Write((uint8 *)Buff,3);
LCD_TimeDly(2);
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_SendData(uint8 Data)
**函數(shù)功能: 發(fā)送一個顯示數(shù)據(jù)
**入口參數(shù): Data 發(fā)的顯示數(shù)據(jù)。
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_SendData(uint8 Data)
{
uint8 Buff[3];
Buff[0]=LCD_Write_Data;
Buff[1]=Data&0xF0;
Buff[2]=Data<<4;
LCD_Write((uint8 *)Buff,3);
}
/*******************************************************************************************
**函數(shù)名稱: LCD_SendStr(uint8 Row,uint8 Col,uint8 *String)
**函數(shù)功能: 設定LCD顯示的起始位置
**入口參數(shù): x x軸位置
y y軸位置
**返 回 值: TRUE 設定成功;FALSE 設定失敗。
**說 明:
*******************************************************************************************/
uint8 LCD_SetPos(uint8 x,uint8 y)
{
if ((x < 2) && (y < 8)) // 漢字字符為2行7.5列(漢字必須偶數(shù)對齊)
{
LCD_SendControl((0x80+(x*16+y)));
return TRUE; // 成功返回
}
else
return FALSE; // 失敗返回
}
/*******************************************************************************************
**函數(shù)名稱: LCD_SendStr(uint8 x,uint8 y,char *fmt,...)
**函數(shù)功能: 指定位置顯示字符串
**入口參數(shù): x x軸位置
y y軸位置
char *fmt 發(fā)送的數(shù)據(jù)指針
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_SendStr(uint8 x,uint8 y,char *fmt,...)
{
va_list ap;
char String[256];
uint8 *StringData;
va_start(ap,fmt);
vsprintf(String,fmt,ap); // 轉(zhuǎn)換格式
va_end(ap);
StringData=(uint8 *)String;
if (LCD_SetPos(x, y)==TRUE)
{
while(*StringData)
LCD_SendData(*StringData ++);
}
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_Clear(void)
**函數(shù)功能: 清屏
**入口參數(shù):
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_Clear(void)
{
LCD_SendControl(Display_Clear);
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_DisplaySwitch(uint8 D,uint8 C,uint8 B)
**函數(shù)功能: 顯示狀態(tài)開/關(guān)
**入口參數(shù): D=0: 整體顯示OFF D=1: 整體顯示ON
** C=0: 游標OFF C=1: 游標ON
** B=0: 光標位置反白OFF B=1: 光標位置反白ON
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_DisplaySwitch(uint8 D,uint8 C,uint8 B)
{
LCD_SendControl((0x08+(D<<2)+(C<<1)+(B<<0)));
}
/*******************************************************************************************
**函數(shù)名稱: void LCD_CurDispShift(uint8 y,int8 Num)
**函數(shù)功能: 設定光標的移動與顯示的移位控制位
**入口參數(shù): CS=0 光標的移動; CS=1 顯示的移動.
** int8 Num 移動的位數(shù); Num>0 右移Num; Num<0 左移Num.
**返 回 值: 無
**說 明:
*******************************************************************************************/
void LCD_CurDispShift(uint8 CS,int8 Num)
{
if(Num>0) //右移
{
while(Num--)
LCD_SendControl((0x10+(CS<<3)+(1<<2)));
}
else
{
Num=(-1)*Num;
while(Num--)
LCD_SendControl((0x10+(CS<<3)+(0<<2)));
}
}
/*******************************************************************************************
** End Of File
*******************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -