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

📄 szeda.c

📁 使用C语言与VHDL实现 液晶显示控制器示例使用说明 使用模块有:单片机模块、液晶显示模块。 使用步骤: 1. 打开电源+5V。 2. 信号连接
💻 C
字号:
#include<reg51.h>
#include<stdio.h>
#include<string.h>
#include<absacc.h>
#define uchar unsigned char
#define ulong unsigned long
#define PA XBYTE[0X2000]
char code tbuf[27]={"Welcome to use SanZhi dsps!"};
uchar   code  table1[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0x03,0xC0,0xFF,0x8F,0x02,0x00,0x00,
0xF0,0x0F,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x00,
0xFC,0x7F,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x07,0xFF,0xFF,0xFF,0x01,0x00,
0xFC,0xFF,0xFD,0xFC,0xFF,0xFF,0x07,0x00,0xFC,0xFF,0xFD,0xFD,0xFF,0xFF,0x03,0x00,
0xFC,0x7F,0xFE,0xF1,0xFF,0xFF,0x07,0x00,0xFC,0xDF,0x2E,0xE0,0xFF,0xFF,0x3F,0x00,
0xFC,0x8F,0xD2,0xBF,0xFF,0xFF,0x3F,0x00,0xFC,0xEF,0xDA,0xFF,0xFF,0xFF,0x3F,0x00,
0xFC,0x07,0xF7,0x7F,0xFF,0xFF,0x7F,0x00,0xFC,0x47,0xF7,0x7F,0xFF,0xFF,0x7F,0x00,
0xF4,0x37,0xFD,0x7F,0xFC,0xFF,0x7F,0x00,0xF8,0x0F,0xF8,0x7F,0xFC,0xFF,0xFF,0x00,
0x00,0x00,0xFA,0xFF,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xFC,0x3F,0xFC,0xFF,0xFF,0x00,
0x00,0x00,0xF6,0xA7,0xFF,0xF3,0x7F,0x00,0x00,0x00,0xF6,0xE3,0xFF,0xF3,0x7F,0x00,
0x00,0x00,0xC3,0xCD,0xFB,0xFF,0xFF,0x1F,0x00,0x00,0x0A,0xDF,0xFF,0xFF,0xFF,0x3F,
0x00,0x00,0x7F,0xCF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xDC,0xFF,0xFF,0xFF,0x3F,
0x00,0x00,0xFE,0xCD,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFC,0xCD,0xFF,0xFF,0xFF,0x3F,
0x00,0x00,0xFC,0xCF,0xF3,0xFF,0xFF,0x1F,0x00,0x00,0xFD,0xD3,0xFC,0xFF,0xFF,0x1F,
0x00,0x00,0xFD,0x13,0xFF,0xFF,0xFF,0x0F,0xF0,0x0B,0xFC,0x6F,0xFF,0xFF,0xFF,0x0F,
0xFC,0x07,0xFC,0xBF,0xFF,0xFF,0xFF,0x07,0xFC,0x07,0xFC,0x9F,0xFF,0xFF,0xFF,0x07,
0xFE,0x07,0xF9,0x9F,0xFF,0xFF,0xFF,0x01,0xFE,0xE7,0xFB,0xDF,0xFF,0xFF,0xFF,0x01,
0xFE,0xFF,0xFA,0xCF,0xFF,0xFF,0x7F,0x00,0xFE,0x9F,0xD2,0xE3,0xFF,0xFF,0x7F,0x00,
0xFE,0xFF,0x4C,0xF0,0xFF,0xFF,0x7F,0x00,0xFE,0xFF,0x00,0xFC,0xFF,0xFF,0x3F,0x00,
0xFE,0xFF,0x00,0xFC,0xFF,0xFF,0x3F,0x00,0xFE,0xF7,0xFF,0xFF,0xFF,0xFF,0x33,0x00,
0xFE,0xEF,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0xFE,0xDF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,
0xFC,0x23,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xE0,0xFE,0xFF,0xFF,0xFF,0x3F,0x00,
0x00,0xE0,0xFE,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xE0,0xFB,0xFF,0xF3,0xFF,0x3F,0x00,
0x00,0xE0,0x06,0x00,0xF5,0xFF,0x3F,0x00,0x00,0xF0,0x01,0x00,0xF8,0xFF,0x3F,0x00,
0x00,0xD0,0x01,0x00,0xFC,0xFF,0x1F,0x00,0x00,0xF0,0x01,0x00,0xFC,0xFF,0x07,0x00,
0x00,0xF0,0x01,0x00,0xFC,0xFF,0x07,0x00,0x00,0xE0,0x00,0x80,0xFF,0xFF,0x03,0x00,
0x00,0xE0,0x00,0xC0,0xFF,0xFF,0x03,0x00,0x00,0x80,0x07,0xF0,0xFF,0xFF,0x01,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,
0x00,0x00,0xFC,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x07,0x00,0x00,
0x00,0x00,0xC0,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//;??????????: ??x??=64x64,  ????: 64x64
};
void delay10ms(int count)
{int  i,j,k;
for (i=0;i<count;i++)
for (j=0;j<10;j++)
for (k=0;k<120;k++);
}
void dicenga(void)  /*??1????*/
{
while(ACC&0x80==0);
 ACC=P0;
{ P2=0x00;
  ACC=P0;}
}
void dicengb(void)  /*??2?????*/
{  ACC=P0;
 while(ACC&0x80==0);
 {  P2=0x01;
     ACC=P0;
  }
}
void lcdwc1(uchar dat) /*??1?????*/
{
dicenga();
P2=0x04;
P0=dat;
}
void lcdwc2(uchar dat)  /*??2???????*/
{
dicengb();
P2=0x05;
P0=dat;
}
void lcdwd1(uchar dat)  /*??1??????*/
{
dicenga();
P2=0x06;
P0=dat;
}
void lcdwd2(uchar dat)  /*??2??????*/
{
dicengb();
P2=0x07;
P0=dat;
}
void lcdreset(void)   /*lcd reset */
{uchar dat;
 dat=0x3f;
 lcdwc1(dat);
 lcdwc2(dat);
 dat=0xc0;
 lcdwc1(dat);
 lcdwc2(dat);
}
void lcdwd(uchar dat,uchar ypos,uchar xpos)  /* lcd write data*/
{
uchar bbb;
bbb=dat;
dat=xpos;
if(dat<64)
   {
dat=bbb;
 lcdwd1(dat);
    }
else
   {
dat=bbb;
  lcdwd2(dat);
   }
}
void lcdpos(uchar ypos,uchar xpos)
{
uchar bbb;
bbb=xpos;
if(bbb<64)
  {
bbb=ypos;
bbb=bbb&0x07;
bbb=bbb+0x0B8;
lcdwc1(bbb);
bbb=xpos;
bbb=bbb&0x3f;
bbb=bbb+0x40;
lcdwc1(bbb);
   }
else
    {
bbb=ypos;
bbb=bbb&0x07;
bbb=bbb+0x0b8;
lcdwc2(bbb);
bbb=xpos;
bbb=bbb&0x3F;
bbb=bbb+0x40;
lcdwc2(bbb);
   }
}
void lcdwrite(uchar dat,uchar ypos,uchar xpos)
{
lcdpos( ypos, xpos);
lcdwd(dat,ypos,xpos);
}
void lcdfill(uchar dat,uchar ypos,uchar xpos )
{
dat=0x0;
for(ypos=0;ypos<=7;ypos++)
   {
    for(xpos=0;xpos<0x81;xpos++)
       {
     lcdwrite(dat,ypos,xpos);
        }
   }
}
void rs232fill(uchar dat)
{     uchar ypos,xpos;
   dat=0x0;
for(ypos=4;ypos<=7;ypos++)
   {
    for(xpos=0;xpos<=0x80;xpos++)
       {
     lcdwrite(dat,ypos,xpos);
       }
   }
}
void play()               
{
   uchar dat1,ypos,xpos;
   ulong x;
   x=0;
  for(xpos=31;xpos<95;xpos++)
  {
      for(ypos=0;ypos<=7;ypos++)
       {
      dat1=table1[x];
      lcdwrite(dat1,ypos,xpos);
      x=x+1;
       }
  }
}

main(void)
  {   char bdata flag;
      uchar dat5,dat6,ddd;
      ulong i;
      lcdreset();

      lcdfill();
      play();
      for (;;)
      {}            //       ????   key5
 }







⌨️ 快捷键说明

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