📄 12864.txt
字号:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code hz[];
uchar a,b,c=0xb8,i,j;
sbit E=P3^4;
sbit RS=P3^2;
sbit RW=P3^3;
sbit L=P3^1;
sbit R=P3^0;
sbit Busy=P2^7;
void init12864(void);
void writer_command(uchar command);
void writer_Data(uchar Data);
void delay(uint timer);
void check_busy();
void display(uchar page,uchar col,uchar *temp);
void init12864(void)
{
writer_command(0x3f);//开显示器
writer_command(0xc0);//从零行开始
writer_command(0xb8);//取值范围从0页开始 一个八页
writer_command(0x40);//从0x40列开始 一共有8列,CS1,CS2分两部分4+4
}
void check_busy(void)
{
E=1;
RS=0;
RW=1;
P2=0x80;//将DB7置1
while(!Busy);
}
void writer_command(uchar command)
{
check_busy();
E=1;
RW=0;
RS=0;
P2=command;
E=1; //延时大于1000MS
E=0;
}
void writer_Data(uchar Data)
{
check_busy();
E=1;
RW=0;
RS=1;
P2=Data;
i=1;
while(i--);//延时大于1000MS
E=0;
}
void display(uchar page,uchar y,uchar *temp)
{
uchar j;
L=1;
R=0;
if(y>=0x80)
{
R=1;
L=0;
y-=0x40;
}
writer_command(page); //写入第一页 即一个字的上半部分
writer_command(y);
for(j=0;j<16;j++)
{ writer_Data(temp[j]);}
writer_command(page+1); //写入第一页 即一个字的下半部分
writer_command(y);
for(j=16;j<32;j++)
writer_Data(temp[j]);
}
uchar code wang[]={0x00,0x80,0x60,0x20,0x20,0x20,0x20,0x90,0x70,0x18,0x96,0x90,0x90,0x50,0x30,0x08,
0x00,0x03,0x01,0x01,0x21,0x19,0x07,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00};/*"中",0*/
uchar code ming[]={0x40,0x20,0x20,0x90,0x70,0x18,0x08,0xC4,0xA0,0xE0,0x98,0x96,0x90,0x88,0x88,0x6C,
0x02,0x02,0x02,0x03,0x22,0x1A,0x06,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00};
void main()
{
P2=0x00;
init12864();
display(0xb8,0x40,&wang);
display(0xb8,0x50,&ming);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -