📄 l12864.c
字号:
#include "L12864.h"
void delay12864(uint x)
{
for(uint i=x;i>0;i--)
for(uint j=100;j>0;j--);
}
void sendbyte(unsigned char zdata)//送八位数据
{
unsigned int i;
for(i=0; i<8; i++)
{
if((zdata << i) & 0x80)
{
SID_SET;
}
else
{
SID_CL;
}
SCLK_CL;
SCLK_SET;
}
}
void write_com(unsigned char cmdcode)//写命令
{
CS_SET;
sendbyte(0xf8);
sendbyte(cmdcode & 0xf0);
sendbyte((cmdcode << 4) & 0xf0);
delay12864(1);
CS_CL;
}
void write_data(unsigned char Dispdata)//写数据
{
CS_SET;
sendbyte(0xfa);
sendbyte(Dispdata & 0xf0);
sendbyte((Dispdata << 4) & 0xf0);
delay12864(1);
CS_CL;
}
void L12864_address(uchar x,uchar y) //地址转换
{
uchar address=0;
switch(y)
{
case 0: address=0x80+x;break;
case 1: address=0x90+x;break;
case 2: address=0x88+x;break;
case 3: address=0x98+x;break;
default:break;
}
write_com(address); //写命令
}
void L12864_String(uchar x,uchar y,uchar *p) //地址 字符串
{
L12864_address(x,y);
while(*p!='\0')
{
write_data(*p);
p++;
}
}
void L12864_Char(uchar x,uchar y,uchar p) //地址 1字符
{
L12864_address(x,y);
write_data(p);
}
void L12864DisNum(uchar x,uchar y,uchar size,unsigned long number)//地址 数的长度 数
{
uchar i,devicenum[10];
L12864_address(x,y);
devicenum[0]=number/1000000000;
devicenum[1]=number%1000000000/100000000;
devicenum[2]=number%100000000/10000000;
devicenum[3]=number%10000000/1000000;
devicenum[4]=number%1000000/100000;
devicenum[5]=number%100000/10000;
devicenum[6]=number%10000/1000;
devicenum[7]=number%1000/100;
devicenum[8]=number%100/10;
devicenum[9]=number%10;
for(i=10-size;i<=9;i++)
{
write_data(devicenum[i]+0x30);
}
}
void L12864_int()
{
PdirtSet;
delay12864(1);
write_com(0x30);
delay12864(1);
write_com(0x30);
delay12864(1);
write_com(0x08);
delay12864(1);
write_com(0x10);
delay12864(1);
write_com(0x0c);
delay12864(1);
write_com(0x01);
delay12864(1);
write_com(0x06);
delay12864(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -