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

📄 test_lcd.c

📁 关于LCD的编程程序 采用C语言编写
💻 C
字号:
#include <reg52.h>
#include <math.h>
#include <stdio.h>
#include <absacc.h>

#define uchar unsigned char
#define uint unsigned int
#define lcd_com XBYTE[0xefff]  //lcd的指令地址 1110 1111 1111 1111    P2_4接C/E,P2_6接C/D
#define lcd_data XBYTE[0xafff] //lcd的数据地址 1010 1111 1111 1111
/*****************************/
uchar Disp_Buff[16];                 //显示缓冲区
/*****************************/
void Check(void)

{
  uchar sta_1;
  do
  {
    sta_1=lcd_com;
    sta_1=sta_1&0x03;
  }
    while(sta_1!=0x03);
}
/***************字符显示程序*******************/
/*整体刷以便显示缓冲区,将要显示数字的位用空格填充,
  用其他符号填充也可。
  入口为字符串首地址                                                    */
void Chars_dis(uchar *s)
{
  uchar w;
  for(w=0;w<16;w++)
    Disp_Buff[w]=s[w];
}
/************************************************************************/
/************向数据口发数据*****************/
void Out_data(uchar dat)
{
  Check();
  lcd_data=dat;
}
/***********写一个命令**********************/
void Out_com(uchar com)
{
  Check();
  lcd_com=com;
}
/*************写一个参数及命令**************/
void Out_data_com(uchar dat1,uchar com1)
{
  Out_data(dat1);
  Out_com(com1);
}
/************写两个参数及命令***************/
void Out_data2_com(uchar dat1,uchar dat2,uchar com1)
{
  Out_data(dat1);
  Out_data(dat2);
  Out_com(com1);
}
/**************点阵初始化程序*******************/
void Init_Dian(void)
{
  Out_data2_com(0x00,0x00,0x40);
  Out_data2_com(0x10,0x00,0x41);
  Out_data2_com(0x00,0x04,0x42);
  Out_data2_com(0x10,0x00,0x43);
  Out_com(0xa7);
  Out_com(0x80);
  Out_com(0x9c);
}
/*************清RAM区*********************/
void Clear_Dian(uchar a)        //0:清除文本区;1:清除图形区
{
  uint l,i;
  if(a==0)
   {
     Out_data2_com(0x00,0x00,0x24);
     i=129;
   }
  if(a==1)
   {
     Out_data2_com(0x00,0x04,0x24);
     i=1025;
   }
  Out_com(0xb0);
  for(l=i;l>0;l--)
   {
     Out_data(0x00);
   }
  Out_com(0xb2);
}
/******************************************************/
/**************** 显示一行英文字符*******************/
void Dis_line(uchar Line_num)     //显示内容为Disp_Buff内所存内容
{
  uchar l;
  Out_data2_com(Line_num*16,0x00,0x24);
  Out_com(0xb0);
  for(l=0;l<16;l++)
   {
     Out_data(Disp_Buff[l]-0x20);
   }
  Out_com(0xb2);
}
 void main(void)
{
  uint m;
  uchar q;
  //Init_Int();
 // Init_Serial();
  Init_Dian();
  Clear_Dian(0);
  Clear_Dian(1);
  Init_Dian();
  Clear_Dian(0);
  Clear_Dian(1);
  Chars_dis("2005/03/29 By KP");
  Dis_line(7);
  Chars_dis("Wuhan University");
  Dis_line(0);
  Chars_dis(" NEW 8051&FPGA  ");
  Dis_line(1);
  Chars_dis("System EVM Board");
  Dis_line(2);
  Chars_dis("  Test Program  ");
  Dis_line(3);
  }

⌨️ 快捷键说明

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