📄 sock-system-lcd.c
字号:
#include <C8051f020.h>
#define uint unsigned int
#define uchar unsigned char
#define PORT P2
#define Left 1
#define Right 2
code uchar tg[16]={0x00,0xE0,0x10,0x08,0x08,0x48,0x48,0xD0,0x00,0x00,0x01,0x02,0x02,0x02,0x03,0x03};
code uchar ts[16]={0x00,0x30,0x48,0x48,0x48,0x48,0x90,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00};
code uchar tm[16]={0x00,0xF8,0x10,0x60,0x80,0x00,0x80,0x60,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00};
code uchar to[16]={0x00,0xF0,0x18,0x08,0x08,0x08,0x18,0xF0,0x00,0x01,0x03,0x02,0x02,0x02,0x03,0x01};
code uchar tt[16]={0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00};
code uchar tr[16]={0x00,0xF8,0x48,0x48,0x48,0x48,0x48,0xB0,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x03};
code uchar t[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
///////////////////////
//LCD PORT DEFINE
sbit RS=P3^7;//RS=P3^7;
sbit RW=P3^6;//RW=P3^6;
sbit EN=P3^5;//EN=P3^5;
sbit CS1=P1^7;//CS1=P1^7;
sbit CS2=P1^6;//CS2=P1^6;
sbit RST=P1^5;//REST=P1^5;
////////////////////////////////////////////////////
main()
{
for(;;)
{
uchar i,d,page,y;
XBR2=0x40;
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0xc0;EN=1;EN=0; RW=1;//first address
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0x3f;EN=1;EN=0; RW=1;
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0xb8;EN=1;EN=0; RW=1;//page//b8
for(i=0;i<200;i++);
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0x40;EN=1;EN=0; RW=1;//y//40
for(i=0;i<200;i++);RS=1;RW=0;CS1=0;CS2=1;P2=0x01;EN=1;EN=0; RW=1;
for(i=0;i<200;i++);RS=1;RW=0;CS1=0;CS2=1;P2=0x02;EN=1;EN=0; RW=1;
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0x42;EN=1;EN=0; RW=1;
for(i=0;i<200;i++);RS=1;RW=0;CS1=0;CS2=1;P2=0x04;EN=1;EN=0; RW=1;
//////////////////////////////////////////////////////////////
for(i=0;i<200;i++);RS=0;RW=0;CS1=0;CS2=1;P2=0xc0;EN=1;EN=0; RW=1;//first address
Initial();
WriteData(0x3F,Left);
}
}
////////////////////////////////////////////////////////////////////
void Delay_us(unsigned int DelayTime)
{
while(DelayTime) DelayTime--;
}
//////////////////////////////////////////////////////////////////////////////////////
void Delay_x10ms(unsigned char DelayTime) //***************10ms延时**********//
{
unsigned char i,j,k;
for(i=0;i<DelayTime;i++)
for(j=0;j<50;j++)
for(k=0;k<120;k++) {;}
}
////////////////////////////////////////////////////////////////////
Initial(void)
{
RST=0;
Delay_us(2);
RST = 1;
}
//////////////////////////////////////////////////////////////
void WriteCommand(uchar Command, uchar CS_Num)
{
Delay_x10ms(1);
if(CS_Num==1) /*选择左半屏*/
{
CS1 = 0;
CS2 = 1;
}
else if(CS_Num==2) /*选择右半屏*/
{
CS1 = 1;
CS2 = 0;
}
EN = 0; /* 使能信号为L */
RS = 0; /* 置寄存器选择为L */
RW = 0; /* 置读/写选择为L */
PORT = Command; /* 将控制指令代码输出到的数据端口 */
EN = 1; /* 使能信号为H */
Delay_us(5); /* 延时2us */
EN = 0; /* 使能信号为L */
CS1 = 1; /* 置片选1为L */
CS2 = 1; /* 置片选2为L */
} ///////////////////////////////////////////////////////////////
WriteData(uchar Data,uchar CS_Num)
{
Delay_x10ms(1);
if(CS_Num==1) /*选择左半屏*/
{
CS1 = 0;
CS2 = 1;
}
else if(CS_Num==2) /*选择右半屏*/
{
CS1 = 1;
CS2 = 0;
}
EN = 0;
RS = 1; /* 置寄存器选择为H */
RW = 0; /* 置读/写选择为L */
PORT = Data; /* 将显示数据输出到的数据端口 */
EN = 1; /* 使能信号为H */
Delay_us(5); /* 延时2us */
EN = 0; /* 使能信号为L */
CS1= 1; /* 置片选1为L */
CS2= 1; /* 置片选2为L */
}
////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -