📄 lcd11_4.txt
字号:
for(i=1;i<9;i++)
{
lcdWrLineVerticalR1(5, 39, 24*i+1,23);
}
lcdWrLineVerticalR1(5, 39, 217,21);
for(j=1;j<10;j++)
{
lcdWrLineHorizontal(5,0,24*j,4);
}
lcdWrLineVertical(5, 0, 2,22);
for(k=1;k<9;k++)
{
lcdWrLineVertical(5, 0, 24*k+1,23);
}
lcdWrLineVertical(5, 0, 217,21);
lcdWrLineVertical(5, 13, 49,23);
lcdWrLineVertical(5, 26, 49,23);
lcdWrLineVertical(5, 13, 97,23);
lcdWrLineVertical(5, 26, 97,23);
lcdWrLineVertical(5, 26, 193,23);
lcdWrLineVertical(3, 13, 217,21);
lcdWrLineVertical(3, 34, 217,21);
lcdWrWord(5,Data_Bu,16,6);
lcdWrWord(5,Data_Ping,18,6);
lcdWrWord(5,Data_Heng,20,6);
lcdWrWord(5,Data_Du,22,6);
lcdWrWord(5,Data_Dian,2,28);
lcdWrWord(5,Data_Ya,8,28);
lcdWrLetter(5,Data_V, 12, 28);
lcdWrWord(5,Data_Bu,2,76);
lcdWrWord(5,Data_Ping,4,76);
lcdWrWord(5,Data_Heng,6,76);
lcdWrWord(5,Data_Du,8,76);
lcdWrLetter(5,Data_B, 38, 76);
lcdWrWord(5,Data_Dian,2,100);
lcdWrWord(5,Data_Liu,8,100);
lcdWrLetter(5,Data_A, 12, 100);
lcdWrWord(5,Data_Bu,2,148);
lcdWrWord(5,Data_Ping,4,148);
lcdWrWord(5,Data_Heng,6,148);
lcdWrWord(5,Data_Du,8,148);
lcdWrLetter(5,Data_B, 38, 148);
lcdWrWord(5,Data_Ce,30,198);
lcdWrWord(5,Data_Liang,34,198);
lcdWrWord(5,Data_Zhuang,1,219);
lcdWrWord(5,Data_Tai,3,219);
lcdWrWord(5,Data_Wei,7,219);
lcdWrWord(5,Data_Ce,9,219);
lcdWrWord(5,Data_Liang,11,219);
lcdWrWord(5,Data_Ce,14,219);
lcdWrWord(5,Data_Liang,16,219);
lcdWrWord(5,Data_Fang,18,219);
lcdWrWord(5,Data_Shi41,20,219);
lcdWrWord(5,Data_Dan,22,219);
lcdWrWord(5,Data_Xiang,24,219);
lcdWrWord(5,Data_Dian,26,219);
lcdWrWord(5,Data_Ya,28,219);
lcdWrWord(5,Data_Dian,30,219);
lcdWrWord(5,Data_Liu,32,219);
lcdWrWord(5,Data_Tui,35,219);
lcdWrWord(5,Data_Chu,37,219);
}
/*
void key_read()
{
Uint16 k1,k2,k3,k4;
EALLOW;
GpioMuxRegs.GPAMUX.all=0x0DFF;//IOPA0~7 IOPB4~7 设置为IO方式
GpioMuxRegs.GPBMUX.all=0xFF0F;
GpioMuxRegs.GPADIR.all=0x0FFF;//IOPA0~7 设置为输入方式
GpioMuxRegs.GPBDIR.all=0x00F0;//IOPB4~7 设置为输出方式
EDIS;
k1=GpioDataRegs.GPADAT.bit.GPIOA15;
k2=GpioDataRegs.GPADAT.bit.GPIOA14;
k3=GpioDataRegs.GPADAT.bit.GPIOA13;
k4=GpioDataRegs.GPADAT.bit.GPIOA12;
}*/
void test()
{
Uint16 i,j,k;
lcdWrLineHorizontal(5, 0, 0,8);
lcdWrLineHorizontal(5, 0, 238,8);
lcdWrLineVerticalR1(5, 39, 2,22);
for(i=1;i<9;i++)
{
lcdWrLineVerticalR1(5, 39, 24*i+1,23);
}
lcdWrLineVerticalR1(5, 39, 217,21);
for(j=1;j<10;j++)
{
lcdWrLineHorizontal(5,0,24*j,4);
}
lcdWrLineVertical(5, 0, 2,22);
for(k=1;k<9;k++)
{
lcdWrLineVertical(5, 0, 24*k+1,23);
}
lcdWrLineVertical(5, 0, 217,21);
lcdWrWord(5,Data_Tui,35,219);
lcdWrWord(5,Data_Chu,37,219);
// lcdWrLetter(5, Data_A,0,0);
// lcdNegDis2(5,0,0,1);
// LCD_WR_CMD(0x47);
//ttmp1=LCD_RD_DAT();
// ttmp2=LCD_RD_DAT();
//ttmp3=ttmp1|ttmp2;
// key_read();
}
void keyprocess(void)
{
Uint16 temp;
temp=keyvalue;
switch(temp)
{
case 1:
CLEAR();
Screen1Display();
break;
case 2:
CLEAR();
Screen2Display();
break;
case 3:
CLEAR();
Screen3Display();
break;
case 4:
CLEAR();
Screen4Display();
break;
default :
break;
}
}
////////////////////////////////////////////////////////////////////////
void main(void)
{
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE中断噶勘?/
InitPieVectTable();
/*初始化外设*/
InitPeripherals();
InitGpio();
EALLOW;
PieVectTable.TINT0 = &ISRTimer0;
PieVectTable.TINT2 = &ISRTimer2;
EDIS;
/*设置CPU*/
ConfigCpuTimer(&CpuTimer0, 100,10000);
ConfigCpuTimer(&CpuTimer2, 50, 1000000);
StartCpuTimer0();
StartCpuTimer2();
/*开中断*/
IER |= M_INT1;
IER |= M_INT14;
PieCtrl.PIEIER1.bit.INTx7=1;
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
*Led8Lock = 0XB7;
EALLOW;
GpioMuxRegs.GPFMUX.bit.XF_GPIOF14 = 0;
GpioMuxRegs.GPFDIR.bit.GPIOF14 = 1;
EDIS;
F2812_GPIOF14 = 0;
lcd_2int();
CLEAR();
while(1)
{
// Screen5Display();
//test();
keyprocess();
}
}
void Getkey()
{
GpioMuxRegs.GPAMUX.all=0x0FFF;//IOA12~15 为IO口
GpioMuxRegs.GPADIR.all=0x0FFF;//IOA12~15为输入口
Curkey=GpioDataRegs.GPADAT.all;
//NXT_sta=KEY_IDL;
switch(NXT_sta)
{
case KEY_CON:
if(keycnt>=4)
NXT_sta=KEY_END;
else
NXT_sta=KEY_IDL;
break;
case KEY_END:
if(((Curkey|0xDFFF)==0xDFFF)&&(keytemp==KEY_k1))
{
keyvalue=KEY_k1;
keycnt=0;
}
else if(((Curkey|0xEFFF)==0xEFFF)&&(keytemp==KEY_k2))
{
keyvalue=KEY_k2;
keycnt=0;
}
else if(((Curkey|0x7FFF)==0x7FFF)&&(keytemp==KEY_k3))
{
keyvalue=KEY_k3;
keycnt=0;
}
else if(((Curkey|0xBFFF)==0xBFFF)&&(keytemp==KEY_k4))
{
keyvalue=KEY_k4;
keycnt=0;
}
NXT_sta=KEY_IDL;
break;
case KEY_IDL:
if((Curkey|0xDFFF)==0xDFFF) //k1被按下
{
keytemp=KEY_k1;
keyvalue=NO_KEY;
if(Prekeytemp==keytemp)
{
keycnt++;
}
else
keycnt=0;
Prekeytemp=KEY_k1;
NXT_sta=KEY_CON;
}
else if((Curkey|0xEFFF)==0xEFFF) //k2被按下
{
keytemp=KEY_k2;
keyvalue=NO_KEY;
if(Prekeytemp==keytemp)
{
keycnt++;
}
else
keycnt=0;
Prekeytemp=KEY_k2;
NXT_sta=KEY_CON;
}
else if((Curkey|0x7FFF)==0x7FFF) //k3被按下
{
keytemp=KEY_k3;
keyvalue=NO_KEY;
if(Prekeytemp==keytemp)
{
keycnt++;
}
else
keycnt=0;
Prekeytemp=KEY_k3;
NXT_sta=KEY_CON;
}
else if((Curkey|0xDFFF)==0xDFFF) //k1被按下
{
keytemp=KEY_k4;
keyvalue=NO_KEY;
if(Prekeytemp==keytemp)
{
keycnt++;
}
else
keycnt=0;
Prekeytemp=KEY_k4;
NXT_sta=KEY_CON;
}
break;
default:
break;
}
}
interrupt void ISRTimer0(void)
{
PieCtrl.PIEACK.bit.ACK7=1;
LedCount++;
if(LedCount>4)
{
F2812_GPIOF14 = ~F2812_GPIOF14;
LedCount=0;
};
Getkey();
return;
}
interrupt void ISRTimer2(void)
{
SendData(SpiCode[SpiCount]);
SpiCount++;
if (SpiCount>16){ SpiCount=0;
F2812_GPIOF14 = ~F2812_GPIOF14;}
}
void SendData(Uint16 data)
{
Uint16 i,Temp;
Temp = 0x80;
for (i=0;i<8;i++)
{
if ((data & Temp)==0) ClrData;
else SetData;
Temp >>= 1;
ClrClk;
Delay(10);
SetClk;
}
*Led8Lock = 0xB7;
Delay(10);
*Led8Lock = 0xBF;
SetData;
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -