📄 lcd.c
字号:
#include "2407c.h"
#define LCDDELAY 1
#define LCDCMDTURNON 0x3f
#define LCDCMDTURNOFF 0x3e
#define LCDCMDSTARTLINE 0xc0
#define LCDCMDPAGE 0xb8
#define LCDCMDVERADDRESS 0x40
ioport unsigned int port8000;
ioport unsigned int port8005;
ioport unsigned int port8001;
ioport unsigned int port8002;
ioport unsigned int port8003;
ioport unsigned int port8004;
ioport unsigned int port8007;
#define CTRGR port8000
#define CTRLCDCMDR port8001
#define CTRKEY port8001
#define CTRLCDCR port8002
#define CTRCLKEY port8002
#define CTRLCDLCR port8003
#define CTRLCDRCR port8004
#define CTRLA port8005
#define CTRLR port8007
void Delay(unsigned int nTime); // 延时子程序
void TurnOnLCD(); // 打开显示
void LCDCLS(); // 清除屏幕显示内容
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}
};
main()
{
int i,nCount=0;
unsigned int uWork;
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa;
*SCSR1=0x81fe;
*IMR=0x0;
*IFR=0xffff;
uWork=(*WSGR);
uWork&=0x0fe3f;
(*WSGR)=uWork;
LCDCLS(); // 清除显示内存
TurnOnLCD(); // 打开显示
CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行
CTRLCDCR=0;
Delay(LCDDELAY);
for (;;)
{
CTRLCDCMDR=LCDCMDPAGE; // 设置操作页=0
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
CTRLCDLCR=ledkey[nCount][i]; // 屏幕左侧第1至8行第i列赋值 port8002=0; // (赋值后当前操作列自动加1,所以不需设置)
CTRLCDCR=0;
Delay(LCDDELAY);
}
Delay(2048);
nCount++;
nCount%=10;
}
}
void Delay(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<64;jj++ )
{
kk++;
}
}
}
void TurnOnLCD()
{
CTRLCDCMDR=LCDCMDTURNON;
CTRLCDCR=0;
Delay(1024);
CTRLCDCMDR=LCDCMDSTARTLINE;
CTRLCDCR=0;
Delay(LCDDELAY);
}
void LCDCLS()
{
int i,j;
CTRLCDCMDR=LCDCMDSTARTLINE;
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
CTRLCDCMDR=LCDCMDPAGE+i;
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS;
CTRLCDCR=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
CTRLCDLCR=0;
CTRLCDCR=0;
Delay(LCDDELAY);
}
CTRLCDCMDR=LCDCMDPAGE+i;
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS;
CTRLCDCR=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
CTRLCDRCR=0;
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -