📄 12864.c
字号:
#include<reg52.h>
#include"12864.h"
#include"const.h"
void delay(uint us) //delay time
{
uint i;
for (i=1;i<=3;i++)
while(us--);
}
void SendByte(uchar Dbyte)
{
uchar i;
for(i=0;i<8;i++)
{
SCLK = 0;
Dbyte=Dbyte<<1;
SID = CY;
SCLK = 1;
SCLK = 0;
}
}
uchar ReceiveByte(void)
{
uchar i,temp1,temp2;
temp1 = 0;
temp2 = 0;
for(i=0;i<8;i++)
{
temp1=temp1<<1;
SCLK = 0;
SCLK = 1;
SCLK = 0;
if(SID)
temp1++;
}
for(i=0;i<8;i++)
{
temp2=temp2<<1;
SCLK = 0;
SCLK = 1;
SCLK = 0;
if(SID)
temp2++;
}
return ((0xf0&temp1)+(0x0f&temp2));
}
void CheckBusy( )
{
do SendByte(0xfc);
while(0x80&ReceiveByte());
}
void Lcd_WriteCmd(uchar Cbyte )
{
CheckBusy();
SendByte(0xf8); //11111,RW(0),RS(0),0
SendByte(0xf0&Cbyte); //高四位
SendByte(0xf0&Cbyte<<4); //低四位(先执行<<)
}
void Lcd_WriteData(uchar Dbyte )
{
CheckBusy();
SendByte(0xfa); //11111,RW(0),RS(1),0
SendByte(0xf0&Dbyte); //高四位
SendByte(0xf0&Dbyte<<4); //低四位(先执行<<)
}
void Lcd_pos(uchar X,uchar Y) //行列确定
{
uchar pos;
if(X==0)
X=0X80;
else if(X==1)
X=0X90;
else if(X==2)
X=0X88;
else if(X==3)
X=0x98;
pos=X+Y;
Lcd_WriteCmd(pos);
}
void Lcd_Init(void)
{
Lcd_WriteCmd(0x30); //选择基本指令集
delay(1);
Lcd_WriteCmd(0x0c); //开显示(无游标、不反白)
delay(1);
Lcd_WriteCmd(0x01); //清除显示,并且设定地址指针为00H
delay(20);
}
void Lcd_Display()
{
uchar num;
Lcd_pos(0,0);
while(table[num]!='\0')
{
Lcd_WriteData(table[num]);
num++;
// delay(1);
}
num=0;
Lcd_pos(1,0);
while(table1[num]!='\0')
{
Lcd_WriteData(table1[num]);
num++;
// delay(1);
}
num=0;
Lcd_pos(2,0);
while(table[num]!='\0')
{
Lcd_WriteData(table2[num]);
num++;
// delay(1);
}
num=0;
Lcd_pos(3,0);
while(table[num]!='\0')
{
Lcd_WriteData(table3[num]);
num++;
// delay(1);
}
// Lcd_pos(0,4);
}
void Lcd_display_shu(uint S)
{
uint a,b,c,d;
d=S%10;
c=S/10%10;
b=S/100%10;
a=S/1000%10;
Lcd_pos(0,3);
Lcd_WriteData(a+0x30); //0x30就是将变量的转换,如果没有这个显示的结果会是a,并且,改变a的值的时候,不会发生如何变化
Lcd_WriteData(b+0x30);
Lcd_WriteData(c+0x30);
Lcd_WriteData(d+0x30);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -