control.c

来自「程序是基于STC89C58的点阵屏显示程序」· C语言 代码 · 共 103 行

C
103
字号
#include"reg51.h"
extern void Readtodisp_hanzi(unsigned char *hzstr);
extern void write_eight_byte(unsigned char *p,unsigned char ADDRH);
extern unsigned char read_eight_byte(unsigned char *p,unsigned char ADRH);
unsigned char hz_dis[3][8];

extern unsigned char hz_dis_geshu[3];
extern unsigned char page=0;
extern unsigned char m;
unsigned char xdata hzstring[8];

unsigned char eprom_geshu=0;


void Clear_one_hanzi()
{

	if(hz_dis_geshu[page]!=0)
	{	
		hz_dis_geshu[page]--;
		hz_dis[page][hz_dis_geshu[page]*2]=0xa1;
		hz_dis[page][hz_dis_geshu[page]*2+1]=0xa1;		
		Readtodisp_hanzi(hz_dis[page]);	
		write_eight_byte(hz_dis[page],(0xee+page*2));	
	}
}

void Pageup()
{
	if(page!=0)
		page--;	
	Readtodisp_hanzi(hz_dis[page]);
}

void Pagedown()
{
	if(page<2)
		page++;
	Readtodisp_hanzi(hz_dis[page]);
}

void Save_eprom()
{
	if(m<=39)
		write_eight_byte(hz_dis[page],0x90+m*2);
			
}
void Read_eprom()
{	
	if(m<=39)
	{
		eprom_geshu=read_eight_byte(hzstring,0x90+m*2);
		Readtodisp_hanzi(hzstring);
	}
}

void Choose_eprom()
{
	unsigned char i=0;
	hz_dis_geshu[page]=eprom_geshu;
	for(i=0;i<8;i++)
		*(hz_dis[page]+i)=*(hzstring+i);
	write_eight_byte(hz_dis[page],0x90+m*2);
    Readtodisp_hanzi(hz_dis[page]);
}


void Init()
{
	hz_dis_geshu[0]=read_eight_byte(hz_dis[0],0xee);
	hz_dis_geshu[1]=read_eight_byte(hz_dis[1],0xf0);
	page=1;
	Readtodisp_hanzi(hz_dis[1]);
	hz_dis_geshu[2]=read_eight_byte(hz_dis[2],0xf2);
	page=2;
	Readtodisp_hanzi(hz_dis[2]);
	page=0;
	Readtodisp_hanzi(hz_dis[0]);

}

void flash_disply(void)
{
	EA=0;
	page=1;
	Readtodisp_hanzi(hz_dis[1]);
	page=2;
	Readtodisp_hanzi(hz_dis[2]);
	page=0;
	Readtodisp_hanzi(hz_dis[0]);
	EA=1;

}

void flash_this_page(void)
{
	Readtodisp_hanzi(hz_dis[page]);	
}

void begin(void)
{
	Readtodisp_hanzi("欢迎使用");
}

⌨️ 快捷键说明

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