📄 st7920.c
字号:
#include "..\st7920.h"
void init_lcd (void)
{
wr_lcd (0,0x30); /*30---基本指令动作*/
wr_lcd (0,0x01); /*清屏,地址指针指向00H*/
LCDDelay (100);
wr_lcd (0,0x06); /*光标的移动方向*/
wr_lcd (0,0x0c); /*开显示,关游标*/
}
/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (0,0x30);
wr_lcd (0,0x01);
LCDDelay (180);
}
void wr_lcd (uchar flag,uchar content)
{
uchar dat,i;
dat=content;
CS_H;
SCLK_H;
SID_H;
for(i = 0;i < 5;i ++)
{
SCLK_L;
SCLK_H;
}
SID_L;
SCLK_L;
SCLK_H;
if(flag)
SID_H;
else
SID_L;
SCLK_L;
SCLK_H;
SID_L;
SCLK_L;
SCLK_H; //sclk变高
for (i=8; i>4; i--)
{
uchar temp = 1 << (i-1);
if (dat & temp)
SID_H;
else
SID_L;
SCLK_L;
SCLK_H;
}
SID_L;
for(i=0;i<4;i++)
{
SCLK_L;
SCLK_H;
}
for (i=4; i>0; i--)
{
uchar temp = 1<< (i-1);
if (dat&temp)
SID_H;
else
SID_L;
SCLK_L;
SCLK_H;
}
SID_L;
for(i=0;i<4;i++)
{
SCLK_L;
SCLK_H;
}
CS_L;
}
void LCDDelay (uint us) //delay time
{
while(us--);
}
/*---------------显示汉字或字符----------------*/
void chn_disp (uchar first ,uchar lie,uchar *chn)
{
wr_lcd (0,0x30);
if (lie<3)
{
wr_lcd (0, 0x70+first+lie*16);
}
else
{
wr_lcd (0, 0x58+first+lie*16);
}
while(*chn != '\0')
{
wr_lcd (1,*chn++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -