📄 st7920.c
字号:
#include "DSP280x_Device.h" // DSP280x Headerfile Include File
#include "DSP280x_Examples.h" // DSP280x Examples Include File
#define SetRS GpioDataRegs.GPADAT.bit.GPIO1 = 1
#define ClrRS GpioDataRegs.GPADAT.bit.GPIO1 = 0
#define SetRW GpioDataRegs.GPADAT.bit.GPIO2 = 1
#define ClrRW GpioDataRegs.GPADAT.bit.GPIO2 = 0
#define SetE GpioDataRegs.GPADAT.bit.GPIO0 = 1
#define ClrE GpioDataRegs.GPADAT.bit.GPIO0 = 0
void SendData(Uint16 num,Uint16 data);
void LcdInit(void);
void WriteData(Uint16 data);
void WriteCom(Uint16 com);
extern const Uint16 UserTab[];
Uint16 Temp;
void main(void)
{
Uint16 i,j;
const Uint16 *pBuffer;
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
InitGpio();
SetCs(1);
SetCs(0);
SendData(0,0xFF);
SendData(1,0xFF);
DELAY_US(40000);
LcdInit();
WriteCom(0x80);
for (i=0;i<64;i++)
WriteData(i+0x10); //显示半角,从0X10处开始显示
WriteCom(0x80);
for (i=0;i<64;i++)
{
WriteData(0xB4);
WriteData(0xDE + i); //以上是从字库中“崔”字处开始显示汉字
}
WriteCom(0x01);
WriteCom(0x32);
WriteCom(0x36);
pBuffer = UserTab;
for (i=0;i<32;i++)
{
WriteCom(i+0x80);
WriteCom(0x80);
for(j=0;j<16;j++)
{
WriteData(*pBuffer);
pBuffer++;
}
}
for (i=0;i<32;i++)
{
WriteCom(i+0x80);
WriteCom(0x88);
for(j=0;j<16;j++)
{
WriteData(*pBuffer);
pBuffer++;
}
}
for(;;);
}
void LCDPIN(void)
{
EALLOW;
GpioCtrlRegs.GPADIR.bit.GPIO3 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO4 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO5 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO6 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO7 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO8 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO10 = 0;
EDIS;
GpioDataRegs.GPADAT.bit.GPIO11 = 1;
}
void LCDPOUT(void)
{
EALLOW;
GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO4 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO8 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;
EDIS;
GpioDataRegs.GPADAT.bit.GPIO11 = 0;
}
//============================================
// 查忙
//============================================
void Busy(void)
{
Uint16 Temp = 0x0400;
LCDPIN();
DELAY_US(50);
ClrRS;
SetRW;
DELAY_US(5);
while(Temp)
{
SetE;
DELAY_US(3);
Temp = GpioDataRegs.GPADAT.all;
Temp = Temp & 0x0400;
DELAY_US(2);
ClrE;
DELAY_US(2);
}
}
//==========================================
// 描述:写命令函数
// 入口:’COM‘
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -