?? lcd_driver_user.c
字號:
//========================================================================
// 文件名: LCD_Driver_User.c
// 描 述: 底層接口驅動擴展程序集
//========================================================================
#include "LCD_Config.h"
#include "LCD_PortConfig.h"
//========================================================================
// 函數: void LCD_DataWrite(unsigned int Data)
// 描述: 寫一個字節的顯示數據至LCD中的顯示緩沖RAM當中
// 參數: Data 寫入的數據
// 返回: 無
//========================================================================
void LCD_DataWrite(LCDBYTE Dat)
{
unsigned char Num;
LCD_CS_CLR();// = 0;
LCD_A0_SET();// = 1;
for(Num=0;Num<8;Num++)
{
if((Dat&0x80) == 0) LCD_SDI_CLR();// = 0;
else LCD_SDI_SET();// = 1;
Dat = Dat << 1;
LCD_CLK_CLR();// = 0;
LCD_CLK_SET();// = 1;
}
LCD_CS_SET();// = 1;
}
//========================================================================
// 函數: void LCD_RegWrite(unsigned char Command)
// 描述: 寫一個字節的數據至LCD中的控制寄存器當中
// 參數: Command 寫入的數據,低八位有效(byte)
// 返回: 無
//========================================================================
void LCD_RegWrite(LCDBYTE Command)
{
unsigned char Num;
LCD_CS_CLR();// = 0;
LCD_A0_CLR();// = 0;
for(Num=0;Num<8;Num++)
{
if((Command&0x80) == 0) LCD_SDI_CLR();// = 0;
else LCD_SDI_SET();// = 1;
Command = Command << 1;
LCD_CLK_CLR();// = 0;
LCD_CLK_SET();// = 1;
}
LCD_CS_SET();// = 1;
}
//========================================================================
// 函數: void LCD_Fill(unsigned int Data)
// 描述: 會屏填充以Data的數據至各點中
// 參數: Data 要填充的顏色數據
// 返回: 無
// 備注: 僅在LCD初始化程序當中調用
//========================================================================
void LCD_Fill(LCDBYTE Data)
{
unsigned char i,j;
unsigned char uiTemp;
uiTemp = Dis_Y_MAX;
uiTemp = uiTemp>>3;
for(i=0;i<=uiTemp;i++) //往LCD中填充初始化的顯示數據
{
LCD_RegWrite(0xb0+i);
LCD_RegWrite(0x00);//1);
LCD_RegWrite(0x10);
for(j=0;j<=Dis_X_MAX;j++)
{
LCD_DataWrite(Data);
}
}
}
//========================================================================
// 函數: void LCD_Init(void)
// 描述: LCD初始化程序,在里面會完成LCD初始所需要設置的許多寄存器,具體如果
// 用戶想了解,建議查看DataSheet當中各個寄存器的意義
// 參數: 無
// 返回: 無
// 備注:
//========================================================================
//延時程序
void TimeDelay(int Time)
{
int i;
while(Time > 0)
{
for(i = 0;i < 8000;i++)
{
;//_nop_();
}
Time --;
}
}
void LCD_Init(void)
{
//LCD驅動所使用到的端口的初始化(如果有必要的話)
LCD_Ctrl_GPIO();
LCD_Ctrl_Out();
TimeDelay(200);
LCD_RE_CLR();// = 0;
TimeDelay(200);
LCD_RE_SET();// = 1;
TimeDelay(20);
LCD_RegWrite(M_LCD_ON); //LCD On
LCD_RegWrite(M_LCD_POWER_ALL); //設置上電控制模式
LCD_RegWrite(M_LCD_ELE_VOL); //電量設置模式(顯示亮度)
LCD_RegWrite(0x1f); //指令數據0x0000~0x003f
LCD_RegWrite(M_LCD_VDD_SET); //V5內部電壓調節電阻設置
LCD_RegWrite(M_LCD_VDD); //LCD偏壓設置,V3時選
LCD_RegWrite(M_LCD_COM_REV); //Com 掃描方式設置
LCD_RegWrite(M_LCD_SEG_NOR); //Segment方向選擇
LCD_RegWrite(M_LCD_ALL_LOW); //全屏點亮/變暗指令
LCD_RegWrite(M_LCD_ALL_NOR); //正向反向顯示控制指令
LCD_RegWrite(M_LCD_STATIC_OFF); //關閉靜態指示器
LCD_RegWrite(0x00); //指令數據
LCD_RegWrite(M_LCD_BEGIN_LINE); //設置顯示起始行對應RAM
LCD_Fill(LCD_INITIAL_COLOR);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -