lcd12232controler.c

来自「未写入字模程序和字符显示程序段」· C语言 代码 · 共 83 行

C
83
字号

#define CWAD1 0x8c00  //写指令代码地址 	0xcc00  0x4c00
#define CRAD1 0x8d00  //读状态字地址	0xce00	0x4e00
#define DWAD1 0x8e00  //写显示数据地址	0xcd00	0x4d00
#define DRAD1 0x8f00  //读显示数据地址	0xcf00	0x4f00
#define CWAD2 0x4c00  //写指令代码地址	0xac00	0x8c00
#define CRAD2 0x4d00  //读状态字地址	0xae00	0x8e00
#define DWAD2 0x4e00  //写显示数据地址	0xad00	0x8d00
#define DRAD2 0x4f00  //读显示数据地址	0xaf00	0x8f00

void int_fm12232(void);  
void dclear(uchar); 


void pr0(uchar com)   //写指令代码子程序
  {
   temp_3=XBYTE[CRAD1];  //读状态字
   while(t7) 
   temp_3=XBYTE[CRAD1];
   XBYTE[CWAD1]=com;
  }

void pr1(uchar dat)  //写显示数据子程序
  {
   temp_3=XBYTE[CRAD1];
   while(t7)
   temp_3=XBYTE[CRAD1];
   XBYTE[DWAD1]=dat;
  }

void pr3(uchar com)    //写指令代码子程序
  {
   temp_3=XBYTE[CRAD1];
   while(t7) 
   temp_3=XBYTE[CRAD1];
   XBYTE[CWAD2]=com;
  }

void pr4(uchar dat)  //写显示数据子程序
  {
   temp_3=XBYTE[CRAD2];
   while(t7)
   temp_3=XBYTE[CRAD1];
   XBYTE[DWAD2]=dat;
  }

void int_fm12232(void)    //显示器初始化
{
	uchar com,i;
   	uchar D[]={0xe2,0xa4,0xa9,0xa0,0xc0,0xaf};  //复位、关休闲状态、设置1/32占空比、设置显示起始行为第一行、开显示设置
   	for(i=0;i<6;i++)
    {
	  	com=D[i];
	  	pr0(com);
	  	pr3(com);
	}
	
	
	for(i=0;i<7;i++)
	{
		disp_buf[i]=0;
	}
    dclear(0);
	dian=0;  
}
void dclear(uchar dat)  //清屏或全显 dat为0清屏,为1全显
  {
   uchar i,j,com;
   for(i=0;i<4;i++)
     {
      com=i|0xb8;
 	  pr0(com);
	  pr3(com);
	  com=0;
	  pr0(com);
	  pr3(com);
	  for (j=0;j<0x50;j++)  //一页清80字节
	     {
		  pr1(dat);
		  pr4(dat);
		 }
     }
  }

⌨️ 快捷键说明

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