12864.c

来自「单片机写的程序都含有Protues仿真结果」· C语言 代码 · 共 94 行

C
94
字号
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int

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);
	writer_command(0x40);
}
void check_busy(void)
{
	E=1;
	RS=0;
	RW=1;
	P2=0xFF;
	while(!Busy);
}
void writer_command(uchar command)
{
	check_busy();
	E=1;
	RW=0;
	RS=0;
	P2=command;
	E=1;
	E=0;
}
void writer_Data(uchar Data)
{
	check_busy();
	E=1;
	RW=0;
	RS=1;
	P2=Data;
	E=1;
	E=0;
}
void display(uchar page,uchar col,uchar *temp)
{
	uchar j;
	L=1;
	R=0;
	if(col>=0x80)
	{
		R=1;
		L=0;
		col-=0x40;
	}
	writer_command(page);
	writer_command(col);
	for(j=0;j<16;j++)
		writer_Data(temp[j]);
	writer_command(page+1);
	writer_command(col);
	for(j=16;j<32;j++)
		writer_Data(temp[j]);
}
uchar code zhou[]={0x00,0x00,0x00,0xFF,0xFE,0x82,0x92,0x92,
0xFE,0xFE,0x92,0x92,0x82,0xFE,0xFF,0x02,
0x00,0x80,0x70,0x3F,0x0F,0x00,0x3F,0x1E,
0x12,0x12,0x3E,0x5F,0x42,0xFF,0x7F,0x00
};
uchar code yuan[]={0x00,0x20,0x20,0x22,0x22,0xE2,0xE2,0x22,
0x22,0xE2,0xE2,0x22,0x22,0x22,0x20,0x20,
0x00,0x40,0x60,0x30,0x1C,0x0F,0x03,0x00,
0x00,0x3F,0x7F,0x40,0x40,0x40,0x70,0x70
};

void main()
{
	P2=0x00;
	init12864();
	display(0xb8,0x40,&zhou);
	display(0xb8,0x50,&yuan);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?