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

📄 12864f.c

📁 lcd t6963 汇编 51 lcd t6963 汇编 51
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int

sbit CD=P1^2;
sbit Wr=P1^0;
sbit Rd=P1^1;
sbit RST=P1^3;
#define LcdDataPort P0

unsigned char BUSY() 
{
 unsigned char dat;
 CD=1;Rd=1;Wr=1;
 LcdDataPort=0xff;
 Rd=0;
 dat=LcdDataPort;
 Rd=1;
 return(dat);
}

/*
//指令,数据 读写状态检查
#define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03); }
*/

//指令,数据 读写状态检查
void RWCheck()   {  while (( BUSY()&0x03)!=0x03) ; }
//数据自动读 状态检查
void AutoRCheck() {  while (( BUSY()&0x04)!=0x04) ;} 
//数据自动写 状态检查
void AutoWCheck() { while (( BUSY()&0x08)!=0x08) ; }

// 向数据口发Data
void  OutPortData(unsigned char dat) 
{
 RWCheck();
 CD=0;
 Wr=0;
 LcdDataPort=dat;
 Wr=1;
 CD=1;
}
// 向数据口发Data
/*
#define OutPortData(dat ) { RWCheck(); XBYTE[LcdDataPort]=dat; }
*/

//写有 1 个参数命令
void OutPortCom1(unsigned char command) 
{
 RWCheck();
 CD=1;
 Wr=0;
 LcdDataPort=command;
 Wr=1;
}
/*
#define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }
*/
//写有 2个参数命令
#define OutPortCom2(dat, command) { OutPortData(dat); OutPortCom1(command); }
//写有 3 个参数命令
#define OutPortCom3(data1, data2, command) { OutPortData(data1); OutPortData(data2); OutPortCom1(command);}



void ClearScreen()
{
  unsigned int i;   // 清显示 RAM 区 0000h--2000h (8k)
  OutPortCom3(0x00,0x00,0x24); //设置指针地址0000H
  OutPortCom1(0xb0); //设置自动写状态
  for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;
  OutPortCom1(0xb2); // 自动写结束
}

/* lcd初始化 */
void LcdInit(void)
{ 
 OutPortCom3(0x00,0x00,0x40);  /*文本首址*/
 OutPortCom3(0x10,0x00,0x41); /*文本区域*/  //每行显示16个字符

 OutPortCom3(0x00,0x01,0x42); /*图形首址*/
 OutPortCom3(0x10,0x00,0x43); /*图形区域*/
 OutPortCom1(0x81); /*显示方式*/
 OutPortCom1(0x9c); /*显示开关*/
 OutPortCom1(0xa0); /*光标形状*/
 
 ClearScreen();
}


/* 设定图形x,y值*/
void AddPointer(unsigned char x,unsigned char y)
{ 
  unsigned int z;
    z=y*16+x+256;
  OutPortCom3(z&0xff,z/256,0x24);
}


//文本显示一个字符,x水平偏移量(0~15)16列,8行;y垂直偏移量(0~7)
void ShowChar(uchar x,uchar y,uchar dat)
{

  OutPortCom3(16*y+x,0,0x24);
  OutPortCom2(dat-0x20, 0xc0);
}

// 显示16*16点阵汉字,x列地址,分16列,y行地址,分7行
void ShowHZ(uchar x,uchar y,uchar *hzcode) 
{
   unsigned char i,j;
   x=x&0x0f,y=y&0x07;
   for (i=0;i<16;i++) 
      {
        for (j=0;j<2;j++)  
	      {
            AddPointer(j+x,y*8+i);
            OutPortCom2(hzcode[i*2+j], 0xc0);            
          }
      }       
}
//反显一个汉字
void RvShowHZ(uchar x,uchar y,uchar *hzcode) 
{
   unsigned char i,j;
   x=x&0x0f,y=y&0x07;
   for (i=0;i<16;i++) 
      {
        for (j=0;j<2;j++)  
	      {
            AddPointer(j+x,y*8+i);
            OutPortCom2(~hzcode[i*2+j], 0xc0);            
          }
      }       
}

//以屏中心为中心,显示一个宽度为width,高度为high的图象,width,high都应该为8的整数倍
void ShowPicture(uchar width,uchar high,uchar code *picture)
{ uchar i,j;
    for (i=0;i<high;i++)  //i 从上到下
      {
        for (j=0;j<width/8;j++)  //从左到右显示
	      {
            AddPointer(j+(128-width)/16,(64-high)/2+i);
            OutPortCom2(~picture[i*(width/8)+j], 0xc0);            
          }
       }        
}   
//取模方式,从左到右,(左高位),从上到下
unsigned char hz_guo[32] = {
0x00,0x04,0x7f,0xfe,0x40,0x24,0x5f,0xf4,0x41,0x04,0x41,0x04,0x41,0x44,0x4f,0xe4,
0x41,0x04,0x41,0x44,0x41,0x24,0x41,0x04,0x5f,0xf4,0x40,0x04,0x7f,0xfc,0x40,0x04
};


unsigned char code bmp_pig1[]={
/*--  调入了一幅图像:C:\Documents and Settings\zhaochao288\桌面\picture\207.bmp  --*/
/*--  宽度x高度=112x40  --*/
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,0x01,0x3F,0xC0,0x80,0x42,0x04,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x8A,0x1F,0xFC,0x42,0x04,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,
0x01,0xFF,0xDE,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x2A,0x87,0xF0,0xA2,
0x0A,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x84,0x10,0xA2,0x0A,0x88,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0xFC,0xA2,0x0A,0xF8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x90,0x05,0x2F,0xCA,0xA4,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x80,0x03,0xE1,0xA8,0x4A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xBF,0xC2,0x24,0x48,0x44,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x92,0x84,0x24,0xA8,0x4A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA6,0x58,
0x3D,0x0F,0xD0,0xC4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1C,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x23,0x08,0x37,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x10,0x08,0x40,0x00,0xFF,0x90,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x81,
0x86,0x10,0x40,0x00,0x08,0x08,0x10,0xFF,0x86,0x00,0x00,0x00,0x01,0x02,0x49,0x40,
0x40,0x00,0x7F,0x0B,0xFC,0x08,0x0F,0x00,0x00,0x00,0x01,0x08,0x00,0x40,0x20,0x00,
0x10,0x00,0x10,0x49,0x0F,0x00,0x00,0x00,0x02,0x08,0x00,0x20,0x20,0x01,0xFF,0xDD,
0x10,0x2A,0x0F,0x00,0x00,0x00,0x04,0x31,0x83,0x20,0x20,0x00,0x20,0x04,0x91,0xFF,
0xC6,0x00,0x00,0x00,0x04,0x52,0x44,0x90,0x20,0x00,0x7F,0x04,0x90,0x1C,0x06,0x00,
0x00,0x00,0x09,0xA4,0x28,0x4C,0x10,0x00,0xA1,0x04,0x10,0x2A,0x00,0x00,0x00,0x00,
0x0E,0x44,0xE9,0xC3,0x90,0x01,0x3F,0x04,0x70,0x49,0x06,0x00,0x00,0x00,0x00,0x82,
0xC5,0x81,0x70,0x00,0x21,0x0A,0x01,0x88,0xC6,0x00,0x00,0x00,0x01,0x01,0x83,0x00,
0x80,0x00,0x3F,0x11,0xFC,0x08,0x00,0x00,0x00,0x00,0x01,0x0C,0x70,0x00,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x87,0x10,0x40,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x20,0x78,0xA0,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x02,0x21,0x80,0x60,0x40,0x00,0x00,0x71,0xEE,0x3C,0x00,0x00,0x00,0x00,
0x01,0x11,0x98,0x90,0x80,0x00,0x00,0x8E,0x31,0xC6,0x00,0x00,0x00,0x00,0x01,0x08,
0x18,0x80,0x80,0x00,0x01,0x24,0x24,0x83,0x00,0x00,0x00,0x00,0x00,0x96,0x01,0x01,
0x00,0x00,0x01,0x40,0x28,0x03,0x00,0x00,0x00,0x00,0x00,0x49,0x86,0x03,0x00,0x00,
0x01,0x40,0x28,0x03,0x00,0x00,0x00,0x00,0x00,0x34,0x78,0x8C,0x00,0x00,0x01,0x00,
0x20,0x03,0x00,0x00,0x00,0x00,0x00,0x0E,0x01,0x30,0x00,0x00,0x00,0x80,0x30,0x06,
0x00,0x00,0x00,0x00,0x00,0x71,0x87,0xCE,0x00,0x00,0x00,0x40,0x68,0x0C,0x00,0x00,
0x00,0x00,0x00,0xE0,0x78,0x07,0x00,0x00,0x00,0x20,0xC4,0x18,0x00,0x00,0x00,0x00,
};
unsigned char code bmp_girl[]={

/*--  调入了一幅图像:C:\Documents and Settings\zhaochao288\桌面\picture\test1.bmp  --*/
/*--  宽度x高度=96x48  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,
0x00,0x00,0x00,0x02,0x10,0x00,0x0F,0xFB,0x00,0x02,0x42,0x80,0x00,0x00,0x00,0x19,
0x18,0x00,0x0B,0xFF,0x00,0x02,0xC2,0x80,0x00,0x00,0x00,0x21,0xFF,0x00,0x0F,0xFF,

⌨️ 快捷键说明

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