⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xinashi.c

📁 这个程序是液晶显示模块fmlcd12232的程序
💻 C
字号:
#include <reg52.h>

#define uint  unsigned int
#define uchar unsigned char
uchar valve,k,record ;
uchar idata  astring[12]={0,0,0,0,0,0,0,0,0,0,0,0};

#define comm  0
#define dat   1

sbit rs = P1^1;   //H=data; L=command;
sbit rw = P1^0;   //H=read; L=write;
sbit  e = P1^7;   //input enable;

sbit busy=P0^7;   //lcd busy bit

void wr_lcd (uchar dat_comm,uchar content);
void chk_busy (void);
void delay (uint us);


uchar code tab1[]={
"内置二级字库可在"
"任意位置反白显示"
};

uchar code tab3[]={
"金鹏电子有限公司"
"Golden Palm TECH"
};
uchar code tab4[]={"0123456789"};


/*------------------初始化-----------------*/
void init_lcd (void)
{
  wr_lcd (comm,0x30);  /*30---基本指令动作*/   
  wr_lcd (comm,0x01);  /*清屏,地址指针指向00H*/
  wr_lcd (comm,0x06);  /*光标的移动方向*/
  wr_lcd (comm,0x0c);  /*开显示,关游标*/
}
/*---------------显示汉字或字符----------------*/
void chn_disp (uchar code *chn,uchar i,uchar addr)
{
  
  wr_lcd (comm,0x30);
  wr_lcd (comm,addr);
  
  wr_lcd (dat,chn[i]);
  
}
/*----------------显示图形-----------------*/

/*--------------显示点阵----------------*/

/*-----------------------------------------------*/
//当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
{
  uchar i,j;
  for(j=0;j<yl;j++)
  {
    for(i=0;i<xl;i++)
    {
      wr_lcd (comm,0x34);
      wr_lcd (comm,y0+j);
      wr_lcd (comm,x0+i);
      wr_lcd (comm,0x30);
      wr_lcd (dat,data1);
      wr_lcd (dat,data2);
    }
  }
  wr_lcd (comm,0x36);
}
/*--------------清DDRAM------------------*/
void clrram (void)
{
  wr_lcd (comm,0x30);
  wr_lcd (comm,0x01);
}
/*---------------------------------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
  chk_busy ();
  if(dat_comm)
   {
    rs=1;   //data
    rw=0;   //write
   }
  else 
   {
    rs=0;   //command
    rw=0;   //write
   }
  P0=content;   //output data or comm
  e=1;
 
  e=0;
}
serial()interrupt 4 using 1
{

RI=0;
//if(a==1)
//{
if(SBUF==64)

    {record=1;
     k=0;
     }
if(record==1)
      {
    valve=SBUF;
    astring[k]=valve-48;
     k++;
     if(k>=12)
   {
record=0;
        }
         }
//a=0;
//}
}

void chk_busy (void)
{
  P0=0xff;
  rs=0;
  rw=1;
  e =1;
  while(busy==1);
  e =0;
}
/*---------------------------------------*/
void delay (uint us)   //delay time
{
  while(us--);
}
void delay1 (uint ms)
{
  uint i,j;
  for(i=0;i<ms;i++)
  for(j=0;j<15;j++)
  delay(1);
}
/*------------------主程序--------------------*/
void main ()
{ 
 TMOD=0X20;
 TH1=0XFD;
 TL1=0XFD;
 SCON=0X50;
 PCON=0X00;
 TR1=1;
 EA=1;ES=1;
init_lcd ();
 
 chn_disp(tab4,5,0x80);
   delay1 (1000);
	 chn_disp(tab4,6,0x81);
 delay1 (1000);
	  chn_disp(tab4,7,0x82);
	   delay1 (1000);
	   chn_disp(tab4,8,0x83);
		 delay1 (1000);
		 chn_disp(tab4,9,0x84);
		  delay1 (1000);
		  chn_disp(tab4,9,0x85);
		   delay1 (1000);

 while (1)
  {
    chn_disp(tab4,astring[4],0x80);
	 chn_disp(tab4,astring[5],0x81);
	  chn_disp(tab4,astring[6],0x82);
	   chn_disp(tab4,astring[7],0x83);
		 chn_disp(tab4,astring[8],0x84);
		  chn_disp(tab4,astring[9],0x85);

  }
}

⌨️ 快捷键说明

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