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

📄 esdram.c

📁 C程序实现图像信号发生器 C程序实现图像信号发生器
💻 C
字号:
#include<reg51.h>
#include<stdio.h>
#include<absacc.h>
#include<math.h>
#include<INTRINS.h>
#define uchar unsigned char
uchar *p,*p1,*p2;/*建立数组指针*/
sbit A0=P2^0;
sbit A1=P2^1;
sbit E=P2^7;/*读写使能信号,1有效*/
sbit R_W=P3^6;/*读写选择信号;1为读选通,0为写选通*/
sbit D_I=P3^7;/*数据指令选择信号;1为数据操作,0为写指令或读状态*/
char code hanzi[25][33]=
{
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,
 0x01,0xF0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xF0,0x00,0x00,
 0x00,0x00,0xE0,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x78,0x00,
 0x00,0x00,0x78,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x0F,0xF8,0x00,0x00,0x00,0x70,
 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xE0,
 0x00,0x00,0x07,0xFE,0xF8,0x00,0x00,0x38,0x70,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,
 0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0xE0,0xE0,0x00,0x00,
 0x3C,0x70,0x00,0x00,0x00,0x7F,0xFE,0x00,0xC0,0x01,0xFC,0x00,0x1F,0x00,0x00,0x00,
 0x00,0xE0,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x1C,0x70,0x00,0x00,0x3F,0xFC,0x00,
 0x00,0xC7,0xFF,0xFE,0x00,0xF3,0x80,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x03,0x80,
 0x00,0x00,0x1C,0x70,0x00,0x3F,0xFE,0x00,0x00,0x01,0xFF,0x00,0x3F,0x00,0x03,0x80,
 0x00,0x00,0x00,0xE7,0xE0,0x00,0x00,0x07,0x00,0x00,0x00,0x18,0x60,0xC0,0x0F,0x00,
 0x00,0x00,0x01,0xC0,0x00,0x38,0x00,0x03,0x80,0x00,0x00,0x03,0xFF,0xF8,0x00,0x00,
 0x1E,0x00,0x00,0x00,0x18,0x61,0xE0,0x00,0x00,0x0C,0x00,0x03,0xC0,0x00,0x60,0x00,
 0x03,0x80,0x00,0x00,0xFF,0xE0,0xF0,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x61,0xE0,
 0x00,0x00,0xFF,0x00,0x07,0x80,0x00,0x00,0x00,0x03,0xF8,0x07,0x00,0x70,0xE0,0xF0,
 0x00,0x00,0x0E,0x1F,0xC0,0x00,0x38,0x67,0x80,0x00,0x7F,0x8F,0x80,0x03,0x80,0x00,
 0x00,0x00,0x3F,0x80,0x7F,0xC0,0x70,0xE0,0xE0,0x00,0x00,0x0F,0xFF,0xF0,0x0F,0xF8,
 0x6E,0x00,0x00,0x38,0x0E,0x00,0x00,0x00,0x1F,0xF0,0x07,0xFF,0x0F,0xE7,0xC0,0x30,
 0xFE,0xE0,0x00,0x01,0xFF,0xC0,0x00,0x07,0x18,0x78,0x00,0x00,0x18,0x0C,0x00,0x00,
 0x07,0xFF,0xF0,0x07,0x8F,0x0E,0x03,0x80,0x3F,0xF8,0xE0,0x01,0xFF,0xE7,0x00,0x00,
 0x00,0x18,0x60,0x00,0x00,0x18,0x1C,0x00,0x00,0x7F,0xE0,0x00,0x00,0x0F,0x06,0x07,
 0x80,0x38,0xE0,0xE0,0x00,0xF8,0x07,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x1C,0x7C,
 0x00,0x00,0x00,0x70,0x00,0x00,0x1F,0x07,0x07,0x00,0x38,0xE1,0xC0,0x00,0x00,0x07,
 0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x70,0x00,0x00,0x3F,
 0xF7,0x07,0x00,0x38,0xE1,0xC0,0x00,0x00,0x07,0x00,0x00,0x00,0x18,0x60,0x18,0x00,
 0x0D,0xC0,0x00,0x00,0x00,0x70,0x00,0x00,0x3B,0x77,0x07,0x00,0x18,0xFF,0xC0,0x00,
 0x00,0x07,0x00,0x00,0x00,0x38,0x60,0x18,0x00,0x00,0xC0,0x00,0x00,0x00,0x70,0x00,
 0x00,0x73,0x07,0x3F,0x00,0x1F,0xFF,0xC3,0x00,0x00,0x07,0x00,0x00,0x00,0x78,0x60,
 0x18,0x00,0x60,0xC0,0x00,0x00,0x00,0x70,0x00,0x00,0xE3,0x03,0xFE,0x00,0x18,0xE1,
 0x83,0x00,0x00,0x07,0x00,0x00,0x03,0xD8,0x60,0x18,0x00,0x60,0xC7,0xC0,0x00,0x00,
 0x30,0x00,0x01,0xC3,0x03,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x07,0x00,0x00,0x0F,
 0x98,0x70,0x3C,0x00,0xE0,0xC3,0xE0,0x00,0x00,0x30,0x00,0x03,0x83,0x03,0x00,0x00,
 0x00,0xE0,0x03,0x00,0x00,0x07,0x00,0x00,0x3E,0x18,0x7C,0xFC,0x00,0xE0,0xC1,0xF0,
 0x00,0x00,0x70,0x00,0x06,0x03,0x00,0x00,0x00,0x00,0x60,0x03,0x80,0x00,0x07,0x00,
 0x00,0x1C,0x18,0x3F,0xF8,0x01,0xE0,0xC0,0xF0,0x00,0x00,0x70,0x00,0x00,0x03,0x00,
 0x00,0x00,0x00,0x70,0x07,0x80,0x00,0x07,0x00,0x00,0x00,0x18,0x07,0x80,0x01,0xC0,
 0xC0,0x70,0x00,0x00,0x70,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x78,0x1F,0x80,0x00,
 0xFF,0x00,0x00,0x00,0x18,0x00,0x00,0x01,0x8D,0xC0,0x00,0x00,0x03,0x70,0x00,0x00,
 0x07,0x00,0x00,0x00,0x00,0x3F,0xFF,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x07,0xC0,0x00,0x00,0x01,0xF0,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x07,0xF8,
 0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0xF0,
 0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,
 0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //52
};
uchar data l1;
uchar data l2;
uchar data page;                /*行地址*/
uchar data col1;                /*列地址高字节*/
uchar data col=0x00;            /*列地址低字节*/
uchar data yanse1;              /*背景色*/
uchar data yanse10;
uchar data yanse2;              /*前景色-显示字符颜色*/
uchar data yanse20;
#define dlcd XBYTE[0x0000]/*定义送数据的地址*/  //每个像素点显示颜色为16位色,连续写入两个字节(16位)显示一个像素点颜色
#define clcd1 XBYTE[0x0100]/*定义送指令的地址*/ //写数据前用:设定行地址低8位,行地址0-255对应液晶屏从上到下1到256行
#define clcd2 XBYTE[0x0200]/*定义送指令的地址*/ //设定列地址低8位,列地址0-255
#define clcd3 XBYTE[0x0300]/*定义送指令的地址*/ //设定显示页、操作页地址;行列地址高位
/**************************************************/
void Clearlcd();/*清屏*/
void Hanz();
void Hanz1();
//void Xian();
//void Xian1();
//void Xian2();
//void Xian3();
//void Xian4();
//void Imim();/*初始化*/
void Delay();/*延时*/
/********************主程序********************/
void main()
{
while(1)
{
    yanse1=0x00;        /*蓝色*/
    yanse10=0x1f;       //后5位是蓝色
    Clearlcd();
    Delay();
    yanse1=0xff;        /*白*/
    yanse10=0xff;
    Clearlcd();
    Delay();
    yanse1=0xf8;        /*红*/
    yanse10=0x00;
    Clearlcd();
    Delay();
    yanse1=0x00;        /*黑*/
    yanse10=0x00;
    Clearlcd();
    Delay();
    yanse1=0x07;        /*绿*/
    yanse10=0xe0;
    Clearlcd();
    Delay();
    //例如:在第16行16列显示一行兰底黄字
    l1=33;
    l2=25;
    page=0x10;//行地址16
    col1=0x00;//列地址低字节
    col=0x10;//列地址高字节
    yanse1=0x00;        /*蓝色*/
    yanse10=0x1f;
    yanse2=0xff;        /*黄色*/
    yanse20=0xe0;
    p=hanzi;
    Hanz();
    
 //Delay();/*延时*/
 //Imim();/*初始化*/
//  Clearlcd();
 //p=hanzi;
 //Hanz();
 }
 //loop:goto loop;
 }
/********************延时子程序********************/
void Delay()
{
 uchar data i,j;
 for(i=0;i<255;i++)
  for(j=0;j<255;j++);
}
//1.用某颜色清屏
void Clearlcd()     /*入口:yanse1,yanse10=清屏颜色*/
{
 uchar data i,j;
 uchar data k=0x00;
 clcd3=0x00;        /*设定显示页和操作页*/
 for(i=0;i<255;i++)
 {
    clcd1=k;        /*设定行地址*/
    clcd2=0x00;     /*设定列地址*/
   for(j=0;j<160;j++)   /*连续写4个像素点显示数据*/
   {
     dlcd=yanse1;   
     dlcd=yanse10;
     dlcd=yanse1;
     dlcd=yanse10;
     dlcd=yanse1;   
     dlcd=yanse10;
     dlcd=yanse1;
     dlcd=yanse10;
   }
   k=k+0x01;
 }
     clcd1=k;       /*设定行地址*/
    clcd2=0x00;     /*设定列地址*/
   for(j=0;j<160;j++)   /*连续写4个像素点显示数据*/
   {
     dlcd=yanse1;   
     dlcd=yanse10;
     dlcd=yanse1;
     dlcd=yanse10;
     dlcd=yanse1;   
     dlcd=yanse10;
     dlcd=yanse1;
     dlcd=yanse10;
   }
 
 k=0x00;
 clcd3=0x04;        /*设定显示页和操作页*/
 for(i=0;i<224;i++)
 {
    clcd1=k;        /*设定行地址*/
    clcd2=0x00;     /*设定列地址*/
  for(j=0;j<160;j++)    /*连续写4个像素点显示数据*/
   {
    dlcd=yanse1;    
     dlcd=yanse10;
    dlcd=yanse1;
    dlcd=yanse10;
    dlcd=yanse1;    
   dlcd=yanse10;
   dlcd=yanse1;
   dlcd=yanse10;
  }
  k=k+0x01;
}
}
//2.显示一行汉字子程序,汉字字模表在程序中
void Hanz()         /*入口:*p=汉字字模16位首地址*/
{               /*page=汉字显示位置左上角坐标行地址*/
 uchar data i,j,col2;       /*col,col1=汉字显示位置左上角坐标列地址*/
 for(i=0;i<l1;i++)      /*yanse1,yanse10=汉字显示背景色,yanse2,yanse20=汉字显示颜色*/
 {              /*l1=字模表中显示一行字节数*/
  clcd3=0x00;           /*l2=显示汉字行数*/
  clcd1=page; clcd2=col;
  clcd2=col1;
  page=page+0x01;
  for(j=0;j<l2;j++)
  {
   Hanz1();
  }
  col2=col1;
  col2=col2+0x01;
  if((col2|0x00)!=0x00)
  {
  }
  else
  {
   col=0x01;
  }
 }
}
void Hanz1()
{
 uchar data i,wbyte,wbyte1;
 wbyte=*p;
 for(i=0;i<8;i++)
  {
   wbyte1=wbyte;
   if((wbyte1&0x80)!=0x80)
   {
    wbyte=wbyte<<1;
dlcd=yanse1;
dlcd=yanse10;
   }
    else
    {
     wbyte=wbyte<<1;
     dlcd=yanse2;
    dlcd=yanse20;
    }
  }
 p=p+1;
}

⌨️ 快捷键说明

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