📄 240160.c
字号:
#include <hnk51.h>
//#include <lcd_command.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcd_CS =P2^2;
sbit lcd_RD =P2^1;
sbit lcd_WR =P2^0;
sbit lcd_A0 =P2^3;
sbit lcd_RES =P2^4;
#define lcd_CMD P1
#define lcd_DATA P1
uchar code ZKWU[]=
{0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x10,0x3F,
0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x02,0x80,0x02,0x40,0x04,0x20,0x18,0x1C,0x60,0x08};
uchar code ZKLIN[]=
{0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70,
0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26,0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20};
void delay1ms(unsigned int count)
{
int i,j;
for(i=0;i<=count;i++)
for(j=0;j<=583;j++);
}
void lcd_reset(void)
{
lcd_RES = 1;
delay1ms(2);
// lcd_SEL1 = 0;
lcd_A0 = 0;
lcd_WR = 1;
lcd_RD = 1;
lcd_CS = 1;
lcd_RES = 0;
delay1ms(100);
lcd_RES = 1;
delay1ms(500);
}
void lcd_cmdwrite(unsigned char cmdx)
{
// lcd_SEL1 = 0;
lcd_CMD = cmdx;
lcd_A0 = 1;
lcd_CS = 0;
lcd_WR = 0;
lcd_WR = 1;
lcd_CS = 1;
// lcd_A0 = 0;
}
void lcd_datawrite(unsigned char datax)
{
lcd_A0 = 0;
lcd_DATA = datax;
lcd_CS = 0;
lcd_WR = 0;
lcd_WR = 1;
lcd_CS = 1;
lcd_A0 = 1;
}
void lcd_initial(void)
{
uint i;
lcd_cmdwrite(0x40); /* ---------LCD SYSTEM SET?????,8???--------
*/
lcd_datawrite(0x30);
lcd_datawrite(0x87);
lcd_datawrite(0x07);
lcd_datawrite(39); /* ??????320dot */
lcd_datawrite(0x36); /* ???????? */
lcd_datawrite(239); /* ??????240dot */
lcd_datawrite(40); /* ???????????????(L) */
lcd_datawrite(0); /* ???????????????(H) */
delay1ms(0x9);
lcd_cmdwrite(0x44); /* ---------LCD SCROLL???????,??10???---
------ */
lcd_datawrite(0x00); /* ??1??????RAM???8??? */
lcd_datawrite(0x00); /* ??1??????RAM???8??? */
lcd_datawrite(240); /* ??1???240?dot? */
lcd_datawrite(0x80); /* ??2??????RAM???8??? */
lcd_datawrite(0x25); /* ??2??????RAM???8??? */
lcd_datawrite(240); /* ??3???240?dot? */
lcd_datawrite(0x00); /* ??3??????RAM???8??? */
lcd_datawrite(0x4b); /* ??3??????RAM???8??? */
delay1ms(0x9);
lcd_cmdwrite(0x5a); /* ????,???????? */
lcd_datawrite(0x00);
delay1ms(0x9);
lcd_cmdwrite(0x5b); /* ??????????,1??? */
lcd_datawrite(0x1c); /* ??:???????????,??? */
delay1ms(0x9);
lcd_cmdwrite(0x59); /* ????,1??? */
lcd_datawrite(0x04); /* ??????????? */
delay1ms(0x9);
lcd_cmdwrite(0x4c); /* ?????????*/
delay1ms(0x9);
lcd_cmdwrite(0x46); /* ???????? */
lcd_datawrite(0); /* ?0000???? */
lcd_datawrite(0);
delay1ms(0x9);
lcd_cmdwrite(0x42); /* ??MPU???????????????? */
for(i=0;i<32760;i++)
{
lcd_datawrite(0); /* ?32K??????,?LCD??????? */
}
}
/* -------------------------设定光标,允许显示------------------------- */
void SetCursor(uchar CursorHIGH,uchar CursorLOW)
{
delay1ms(0x9);
lcd_cmdwrite(0x46);
lcd_datawrite(CursorLOW);
lcd_datawrite(CursorHIGH);
delay1ms(0x9);
lcd_cmdwrite(0x42);
}
//==============在指定位置显示一个汉字=========
void WriteOneWork(uchar CurHIGH,uchar CurLOW,uchar * ZiKu)
{
uchar i;
SetCursor(CurHIGH,CurLOW);
i=0;
do
{
lcd_datawrite(ZiKu[i]);
i=i+2;
}
while(i<0x1e);
SetCursor(CurHIGH,CurLOW+1);
i=1;
while(i<0x1f)
{
lcd_datawrite(ZiKu[i]);
i=i+2;
}
}
void lcd_cursorxy(unsigned char x,unsigned char y)
{
lcd_cmdwrite(0x46);
lcd_datawrite(x);
lcd_datawrite(y);
}
/*
void lcd_showbig(unsigned char *text,unsigned int x)
{
while(*text != '\0')
{
lcd_datawrite(*text);
++text;
delay1ms(x);
}
}*/
void lcd_clear(void)
{
unsigned int i;
lcd_cursorxy(0x00,0x00);
lcd_cmdwrite(0x42);
for(i=0;i<0x7fff;i++)
lcd_datawrite(0x00);
}
void main(void)
{
//uchar i;
lcd_reset();
lcd_initial();
while(1)
{
lcd_clear();
delay1ms(0x30);
delay1ms(0x9);
lcd_cmdwrite(0x4f);
WriteOneWork(0,0,ZKWU);
WriteOneWork(0x2,0x80,ZKLIN);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -