📄 main.c
字号:
#include "config.h"
#define BEEP 1<<27
#define KEY (IO0PIN&(1<<8)) //开始按钮
#define _RST 1<<19
#define _CS 1<<20
#define RS 1<<21
#define _WR 1<<22
#define _RD 1<<23
#define DB0 1<<24
#define DB1 1<<25
#define DB2 1<<26
#define DB3 1<<27
#define DB4 1<<28
#define DB5 1<<29
#define DB6 1<<30
#define DB7 1<<31
void delay(uint16 t)
{
uint16 i,j;
for(j=0;j<t;j++);
for(i=0;i<100;i++);
}
void DelayMS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<5000; i++);
}
void Writebyte(uint8 byte)
{
uint32 temp1=0x00000000,temp2=0x00000000;
if (byte&0x01)
temp1|=DB0;
else
temp2|=DB0;
if (byte&0x02)
temp1|=DB1;
else
temp2|=DB1;
if (byte&0x04)
temp1|=DB2;
else
temp2|=DB2;
if (byte&0x08)
temp1|=DB3;
else
temp2|=DB3;
if (byte&0x10)
temp1|=DB4;
else
temp2|=DB4;
if (byte&0x20)
temp1|=DB5;
else
temp2|=DB5;
if(byte&0x40)
temp1|=DB6;
else
temp2|=DB6;
if (byte&0x80)
temp1|=DB7;
else
temp2|=DB7;
IO1SET=temp1;
IO1CLR=temp2;
}
void CmdWrite(uint8 cmdreg,uint8 cmddata )
{
delay(2);
Writebyte(cmdreg);
IO1CLR=_CS;
IO1SET=_RD;
IO1CLR=RS;
IO1CLR=_WR;
delay(1);
IO1SET=_WR;
delay(1);
IO1SET=RS;
IO1SET=_CS;
delay(1);
Writebyte(cmddata);
IO1CLR=_CS;
IO1SET=_RD;
IO1CLR=RS;
IO1CLR=_WR;
delay(1);
IO1SET=_WR;
delay(1);
IO1SET=RS;
IO1SET=_CS;
}
void DataWrite(uint8 wrdata)
{
delay(2);
IO1SET=_RD;
IO1SET=_WR;
IO1SET=RS;
Writebyte(wrdata);
IO1CLR=_CS;
IO1CLR=_WR;
delay(1);
IO1SET=_WR;
delay(1);
IO1CLR=RS;
IO1SET=_CS;
}
void Printstr(char *pstr)
{
while(*pstr>0)
{
DataWrite(*pstr);
pstr++;
delay(50);
}
}
void FullScreenFill(uint8 fill_data)
{
uint8 i,j;
CmdWrite(0x60,0x00);
CmdWrite(0x70,0x00);
for(i=0;i<24;i++)
for(j=0;j<128;j++)
DataWrite(fill_data);
}
void LCD_Initial()
{
IO1SET=_RST;//_RST=0; //复位
delay(1000);
IO1CLR=_RST;//_RST=1;
delay(400);
CmdWrite(0x20,0x17);//设置工作视窗位置 right
CmdWrite(0x30,0x7f);//bottom
CmdWrite(0x40,0x00);//left
CmdWrite(0x50,0x00);//top
CmdWrite(0x21,0x17);//设置显示视窗位置 right
CmdWrite(0x31,0x7f);//bottom
CmdWrite(0x41,0x00);//left
CmdWrite(0x51,0x00);//top
CmdWrite(0x90,0x0d);//移位时钟
CmdWrite(0xf0,0xa0);//简体中文,
CmdWrite(0x00,0xcd);//文本模式,显示开
CmdWrite(0x11,0x00);//光标高度,
}
char *str=" 阳光是如此耀眼,整个世界白茫茫一片,人潮在身边流动,面孔却个个模糊.我行走在大街上,,..QWQW!@!";
int main(void)
{
PINSEL0 = 0x00000000; // 设置管脚连接GPIO
PINSEL1 = 0x00000000;
PINSEL2 = 0x00000000;
IO0DIR = BEEP; //设置I/O为输出
IO0SET = BEEP|KEY;
IO1DIR = 0xFFFFFFFF;
IO1SET = 0xFFFFFFFF;
LCD_Initial(); //初始化
CmdWrite(0x12,0x91); //选择PAGE1进行读写 0xa2是选择PAGE2 ,0x91是选择PAGE1
CmdWrite(0x00,0xcd); //文本模式,显示开 0xc5 是图形模式,0xcd是文本模式
FullScreenFill(0x00); //清屏
CmdWrite(0x60,0x00); //定义X轴光标
CmdWrite(0x70,0x00); //定义Y轴光标
Printstr(str);
CmdWrite(0x60,0x00);
CmdWrite(0x70,0x32); //定义Y轴光标
CmdWrite(0xf0,0xa4);
Printstr("dfddfdfd");
while(KEY!=0);
while(1)
{ IO0SET=BEEP;
DelayMS(1000);
IO0CLR=BEEP;
DelayMS(1000);
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -