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

📄 lcddisp.c

📁 点阵液晶8*8点阵ASIIC字符全驱动
💻 C
字号:
#include <absacc.h>
#include <reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define lcdDl XBYTE [0xA201]
#define lcdDr XBYTE [0xA301]
#define lcdlCommand XBYTE [0xA200]
#define lcdrCommand XBYTE [0xA300]

#define strat_yaddr 0x40
#define strat_xaddr 0xb8
#define strat_dispaddr 0xc0
#define libleng 0x5F
#define dataleng 16*8



sbit RW=P1^6;
uchar code worddata[dataleng]="National University of defence technology's ASIC R&D Center";
//uchar codedata[dataleng][8];


//8*8字符表
uchar code ASCII[libleng][8]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*SPACE*/
                               
{0x00,0x00,0x7e,0x21,0x21,0x21,0x7e,0x00},/*A*/
                               
{0x00,0x00,0x7f,0x49,0x49,0x49,0x36,0x00},/*B*/
                               
{0x00,0x00,0x3e,0x41,0x41,0x41,0x22,0x00},/*C*/
                               
{0x00,0x00,0x7f,0x41,0x41,0x22,0x1c,0x00},/*D*/
                               
{0x00,0x00,0x7f,0x49,0x49,0x49,0x49,0x00},/*E*/
                               
{0x00,0x00,0x7f,0x09,0x09,0x09,0x01,0x00},/*F*/
                               
{0x00,0x00,0x3e,0x41,0x49,0x49,0x7a,0x00},/*G*/
                               
{0x00,0x00,0x7f,0x08,0x08,0x08,0x7f,0x00},/*H*/
                               
{0x00,0x00,0x41,0x7f,0x41,0x00,0x00,0x00},/*I*/
                               
{0x00,0x00,0x20,0x40,0x41,0x3f,0x01,0x00},/*J*/
                               
{0x00,0x00,0x7f,0x08,0x14,0x22,0x41,0x00},/*K*/
                               
{0x00,0x00,0x7f,0x40,0x40,0x40,0x40,0x00},/*L*/
                               
{0x00,0x00,0x7f,0x02,0x0c,0x02,0x7f,0x00},/*M*/
                               
{0x00,0x00,0x7f,0x04,0x08,0x10,0x7f,0x00},/*N*/
                               
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},/*O*/
                               
{0x00,0x00,0x7f,0x09,0x09,0x09,0x06,0x00},/*P*/
                               
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},/*Q*/
                               
{0x00,0x00,0x7f,0x09,0x19,0x29,0x46,0x00},/*R*/
                               
{0x00,0x00,0x46,0x49,0x49,0x49,0x31,0x00},/*S*/
                               
{0x00,0x00,0x01,0x01,0x7f,0x01,0x01,0x00},/*T*/
                               
{0x00,0x00,0x3f,0x40,0x40,0x40,0x3f,0x00},/*U*/
                               
{0x00,0x00,0x1f,0x20,0x40,0x20,0x1f,0x00},/*V*/
                               
{0x00,0x00,0x3f,0x40,0x38,0x40,0x3f,0x00},/*W*/
                               
{0x00,0x00,0x63,0x14,0x08,0x14,0x63,0x00},/*X*/
                               
{0x00,0x00,0x07,0x08,0x70,0x08,0x07,0x00},/*Y*/
                               
{0x00,0x00,0x61,0x51,0x49,0x45,0x43,0x00},/*Z*/
                               
{0x00,0x00,0x20,0x54,0x54,0x54,0x7c,0x00},/*a*/
                               
{0x00,0x00,0x7f,0x48,0x44,0x44,0x38,0x00},/*b*/
                               
{0x00,0x00,0x38,0x44,0x44,0x44,0x20,0x00},/*c*/
                               
{0x00,0x00,0x38,0x44,0x44,0x48,0x7f,0x00},/*d*/
                               
{0x00,0x00,0x38,0x54,0x54,0x54,0x18,0x00},/*e*/
                               
{0x00,0x00,0x08,0x7e,0x09,0x01,0x02,0x00},/*f*/
                               
{0x00,0x00,0x0c,0x52,0x52,0x52,0x3e,0x00},/*g*/
                               
{0x00,0x00,0x7f,0x08,0x04,0x04,0x78,0x00},/*h*/
                               
{0x00,0x00,0x00,0x44,0x7d,0x40,0x00,0x00},/*i*/
                               
{0x00,0x00,0x40,0x40,0x44,0x3d,0x00,0x00},/*j*/
                               
{0x00,0x00,0x7f,0x10,0x28,0x44,0x00,0x00},/*k*/
                                 
{0x00,0x00,0x00,0x41,0x7e,0x40,0x00,0x00},/*l*/
                               
{0x00,0x00,0x7c,0x04,0x18,0x04,0x78,0x00},/*m*/
                               
{0x00,0x00,0x7c,0x08,0x04,0x04,0x78,0x00},/*n*/
                               
{0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},/*o*/
                               
{0x00,0x00,0x7c,0x14,0x14,0x14,0x08,0x00},/*p*/
                               
{0x00,0x00,0x08,0x14,0x14,0x14,0x7c,0x00},/*q*/
                               
{0x00,0x00,0x7c,0x08,0x04,0x04,0x08,0x00},/*r*/
                               
{0x00,0x00,0x48,0x54,0x54,0x54,0x20,0x00},/*s*/
                                
{0x00,0x00,0x04,0x3f,0x44,0x44,0x24,0x00},/*t*/
                               
{0x00,0x00,0x3c,0x40,0x40,0x20,0x7e,0x00},/*u*/
                               
{0x00,0x00,0x1d,0x20,0x40,0x20,0x1c,0x00},/*v*/
                               
{0x00,0x00,0x3c,0x40,0x30,0x40,0x3c,0x00},/*w*/
                               
{0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00},/*x*/
                               
{0x00,0x00,0x06,0x48,0x48,0x48,0x3e,0x00},/*y*/
                               
{0x00,0x00,0x44,0x64,0x54,0x4c,0x44,0x00},/*z*/
                               
{0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00},/*`*/
                               
{0x00,0x00,0x00,0x42,0x7f,0x40,0x40,0x00},/*1*/
                               
{0x00,0x00,0x62,0x51,0x51,0x49,0x46,0x00},/*2*/
                               
{0x00,0x00,0x21,0x41,0x45,0x4b,0x31,0x00},/*3*/
                               
{0x00,0x00,0x18,0x14,0x12,0x7f,0x10,0x00},/*4*/
                               
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},/*5*/
                               
{0x00,0x00,0x3c,0x4a,0x49,0x49,0x30,0x00},/*6*/
                               
{0x00,0x00,0x01,0x71,0x09,0x05,0x03,0x00},/*7*/
                               
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},/*8*/
                               
{0x00,0x00,0x06,0x49,0x49,0x29,0x1e,0x00},/*9*/
                               
{0x00,0x00,0x3e,0x51,0x49,0x45,0x3e,0x00},/*0*/  
                               
{0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00},/*-*/
                               
{0x00,0x00,0x14,0x14,0x14,0x14,0x14,0x00},/*=*/
                               
{0x00,0x00,0x01,0x02,0x08,0x10,0x20,0x00},/*\\*/
                               
{0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x00},/*~*/
                               
{0x00,0x00,0x00,0x00,0x4f,0x00,0x00,0x00},/*!*/
                               
{0x00,0x00,0x3e,0x59,0x55,0x79,0x3e,0x00},/*@*/
                               
{0x00,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00},/*#*/
                               
{0x00,0x00,0x24,0x2a,0x7f,0x2a,0x12,0x00},/*$*/
                               
{0x00,0x00,0x23,0x13,0x08,0x62,0x61,0x00},/*%*/
                               
{0x00,0x00,0x04,0x02,0x01,0x02,0x04,0x00},/*^*/
                               
{0x00,0x00,0x36,0x49,0x55,0x22,0x50,0x00},/*&*/
                               
{0x00,0x00,0x14,0x08,0x3e,0x08,0x14,0x00},/***/
                               
{0x00,0x00,0x00,0x1c,0x22,0x41,0x00,0x00},/*(*/
                               
{0x00,0x00,0x00,0x41,0x22,0x1c,0x00,0x00},/*)*/
                               
{0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x00},/*_*/
                               
{0x00,0x00,0x08,0x08,0x3e,0x08,0x08,0x00},/*+*/
                               
{0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00},/*|*/
                               
{0x00,0x00,0x00,0x7f,0x41,0x41,0x00,0x00},/*[*/
                               
{0x00,0x00,0x00,0x41,0x41,0x7f,0x00,0x00},/*]*/
                               
{0x00,0x00,0x00,0x56,0x36,0x00,0x00,0x00},/*;*/
                               
{0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x00},/*'*/
                               
{0x00,0x00,0x00,0x00,0x28,0x18,0x00,0x00},/*,*/
                               
{0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00},/*.*/
                               
{0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x00},/*//*/
                               
{0x00,0x00,0x00,0x08,0x36,0x41,0x00,0x00},/*{*/
                               
{0x00,0x00,0x00,0x41,0x36,0x08,0x00,0x00},/*}*/
                               
{0x00,0x00,0x00,0x36,0x36,0x00,0x00,0x00},/*:*/
                               
{0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00},/*"*/
                               
{0x00,0x00,0x08,0x14,0x22,0x41,0x00,0x00},/*<*/
                               
{0x00,0x00,0x00,0x41,0x22,0x14,0x08,0x00},/*>*/
                               
{0x00,0x00,0x02,0x01,0x51,0x09,0x06,0x00}/*?*/
                               };    
//////////////////////////////////
void lcdlon_off(uchar D)
{RW=0;
lcdlCommand=D;
_nop_();
}

void setlstartx(uchar D)
{RW=0;
lcdlCommand=D;
_nop_();
}

void setlstarty(uchar D)
{
RW=0;
lcdlCommand=D;
_nop_();
}

void setlstartline(uchar D)
{
RW=0;
lcdlCommand=D;
_nop_();
}
//////////////////////////////

void lcdron_off(uchar D)
{RW=0;
lcdrCommand=D;
_nop_();
}

void setrstartx(uchar D)
{RW=0;
lcdrCommand=D;
_nop_();
}

void setrstarty(uchar D)
{
RW=0;
lcdrCommand=D;
_nop_();
}

void setrstartline(uchar D)
{RW=0;
lcdrCommand=D;
_nop_();
}
///////////////////////////////

uchar GetIndex(uchar szText)
{
    uchar code TAB[libleng]={' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q'
,'R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q'
,'r','s','t','u','v','w','x','y','z','`','1','2','3','4','5','6','7','8','9','0','-','=','\\','~','!','@','#','$','%','^','&','*','(',')','_'
,'+','|','[',']',';','\'',',','.','/','{','}',':','"','<','>','?'};
    uchar i;
	uchar j=0;
    for(i=0;i<=libleng;i++)     
      {
	  if(szText==TAB[i]) 
	     {j=1;
		 return i;
		 break;}
	  }
   if(j==0)
    return 0x00;
}

void delay400ms(void)
{uchar i,j;
for(i=20;i>0;i--)
   for(j=20;j>0;j--)
     _nop_();
}

///////////////////////////////////
void lcdlwrite(uchar D) 
{RW=0;
//_nop_();
lcdDl=D;
_nop_();
}

void lcdrwrite(uchar D) 
{RW=0;
//_nop_();
lcdDr=D;
_nop_();
}
////////////////////////////////////
void writelcd(void)
{uchar i=0;//8*8字符数
uchar j=0;//8位数据中第几位
uchar k=0;//行数
uchar index=0;
uchar z=0;
for(i=0;i<dataleng;i++)
   {
   index=GetIndex(worddata[i]);
 //  for(j=0;j<8;j++)
 //     codedata[i][j]=ASCII[index][j];
   z=i%8;
   k=i/16;
   if(k>7) k=0;  
   if(i%16<8)
     { 
      setlstartx(strat_xaddr+k);
      for(j=0;j<8;j++)
	      {_nop_();
		  setlstarty(strat_yaddr+8*z+j);
		  lcdlwrite(ASCII[index][j]);
	    
		  }
       _nop_();
	  }
  if(i%16>=8)
     {
      setrstartx(strat_xaddr+k);
      for(j=0;j<8;j++)
	      {_nop_();
		  setrstarty(strat_yaddr+8*z+j);
		  lcdrwrite(ASCII[index][j]);
	 	  
		  }
       _nop_();
	  }
	delay400ms();
   }
}


void main(void)
{

while(1){

lcdlon_off(0x3F);
lcdron_off(0x3F);  //LCD两屏都打开
setlstartline(strat_dispaddr);
setrstartline(strat_dispaddr);//初始化
writelcd();//写数据
   }

}

⌨️ 快捷键说明

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