?? lcd.c
字號:
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_Examples.h" // DSP281x Examples Include File
#include "f2812a.h"
#define LCDDELAY 1
#define LCDCMDTURNON 0x3f
#define LCDCMDTURNOFF 0x3e
#define LCDCMDSTARTLINE 0xc0
#define LCDCMDPAGE 0xb8
#define LCDCMDVERADDRESS 0x40
#define CTRGR *(int *)0x108000
#define CTRLCDCMDR *(int *)0x108001
#define CTRKEY *(int *)0x108001
#define CTRLCDCR *(int *)0x108002
#define CTRCLKEY *(int *)0x108002
#define CTRLCDLCR *(int *)0x108003
#define CTRLCDRCR *(int *)0x108004
#define CTRLA *(int *)0x108005
#define CTRLR *(int *)0x108007
void Delay(unsigned int nTime); // 延時子程序
void TurnOnLCD(); // 打開顯示
void LCDCLS(); // 清除屏幕顯示內(nèi)容
unsigned char ledkey[10][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}
};
void main(void)
{
int i,nCount=0,nBW=0;
InitSysCtrl();
CTRGR=0x80; // 初始化ICETEK-CTR
Delay(LCDDELAY);
CTRGR=0x0;
Delay(LCDDELAY);
CTRGR=0x80;
Delay(LCDDELAY);
CTRLR=0; // 關(guān)閉東西方向的交通燈
Delay(LCDDELAY);
CTRLR=0x40; // 關(guān)閉南北方向的交通燈
Delay(LCDDELAY);
TurnOnLCD(); // 打開顯示
LCDCLS(); // 清除顯示內(nèi)存
CTRLCDCMDR=LCDCMDSTARTLINE; // 設(shè)置顯示起始行
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for (;;)
{
CTRLCDCMDR=LCDCMDPAGE; // 設(shè)置操作頁=0
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
CTRLCDLCR=( nBW==0 )?(ledkey[nCount][i]):(~ledkey[nCount][i]); // 屏幕左側(cè)第1至8行第i列賦值 port8002=0; // (賦值后當(dāng)前操作列自動加1,所以不需設(shè)置)
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
Delay(4096); //延時子程序
nCount++;
if ( nCount==10 )
{
nCount=0;
nBW=1-nBW;
}
}
}
void Delay(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<60;jj++ )
{
kk++;
}
}
}
void TurnOnLCD()
{
CTRLCDCMDR=LCDCMDTURNON;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(2048);
CTRLCDCMDR=LCDCMDSTARTLINE;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
void LCDCLS()
{
int i,j;
CTRLCDCMDR=LCDCMDSTARTLINE;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
CTRLCDCMDR=LCDCMDPAGE+i;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
CTRLCDLCR=0;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
CTRLCDCMDR=LCDCMDPAGE+i;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
CTRLCDRCR=0;
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -