新闻详情

320240点阵液晶模块的设计与应用2

日期:2024-11-23 11:19
浏览次数:1523
摘要:

320240点阵液晶模块的设计与应用2

接上一篇文章

HG3202407液晶模块与8051单片机典型应用电路:



3202407液晶模块示例程序:
/********* 时间延时程序 *********/ 
void delay(uint t)     /* 1.02500 ms */
{ uint i,j;
  for(i=t;i>0;i--)
    for(j=125;j>0;j--);
}

/******** “忙”状态程序 ********/
void busy()
{ data=0xff;
  cs=0;
  a0=1;
  wr=1;
  rd=0;
  while(data&0x80); 
  rd=1;
  cs=1;
}                                                                                                                                                                                                                                                                                            

/******** 写“指令”程序 ********/
void write_com(uchar com)
{ while(Busy==0);
//  busy();
  cs=0; 
  a0=1; 
  rd=1;                   
  data=com;
  wr=0; 
  wr=1;
  cs=1;
}

/******** 写“数据”程序 ********/
void write_data(uchar dat)
{ while(Busy==0); 
//  busy();
  data=0xff;
  cs=0;
  a0=0; 
  rd=1;
  data=dat;
  wr=0;
  wr=1;
  cs=1;
}

/******** 写“指令数据”程序 ********/
void write_comdat(uchar com,uchar dat)
{ write_com(com);
  write_data(dat);
}
 
/******* 读“数据”程序 ********/
uchar read_data(void)
{ uchar temp;
  while(Busy==0);
//  busy();
  data=0xff;
  cs=0;
  a0=0;
  wr=1;
  rd=0;
  temp=data;
  rd=1;
  cs=1;
  return temp;
}

/******** 全屏(文本)显示程序 ********/
void fill_txt(uchar coder)
{ uchar i,j;
  write_comdat(CPXR,0x00);  //60H光标列地址
  write_comdat(CPYR,0x00);  //70H光标行地址
  write_com(MWCR);  //写指令
  for(i=0;i<HD/16;i++)   //地址到右边界时自动换行 
    for(j=0;j<WD/8;j++)
   write_data(coder);
}

/******** 全屏(图形)显示程序 ********/
void fill_graph(uchar dat)
{ uchar i,j;
  write_comdat(CPXR,0x00);  //60H光标列地址
  write_comdat(CPYR,0x00);  //70H光标行地址
  write_com(MWCR);  //写指令
  for(i=0;i<HD;i++)
    for(j=0;j<WD/8;j++)
    write_data(dat);
}