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

📄 2401283.c

📁 已经上机调试过的青云液晶读写控制程序
💻 C
字号:
#include <reg52.h>#include <absacc.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit wr_=P2^0;sbit rd_=P2^1;sbit cs_=P2^2;sbit a0=P2^3;sbit rst=P2^4;uchar data cradd1,cradd2,dat2,dat0,com,ctrlcode;uchar urow,ucol,h;uchar code hztab[2*32]={0x40,0x00,0x27,0xF0,0x24,0x10,0x07,0xF0,0x94,0x10,0x54,0x10,0x17,0xF0,0x20,0x00,0x2F,0xFC,0xC9,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x5F,0xFE,0x40,0x00,  /* 温*/0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x2F,0xFC,0x22,0x20,0x23,0xE0,0x20,0x00,0x27,0xF8,0x22,0x10,0x21,0x20,0x20,0xC0,0x41,0x30,0x46,0x0E,0x98,0x04,   /* 度*/};/*=======================================================*/    /* 延时子程序*/void short_delay(uint i)     { uint j;       for(j=0;j<=i;j++);     }void delayms(uchar tickms)     { uchar count,i;       _nop_();       _nop_();       _nop_();       for(i=tickms;i>0;i--)         { for(count=0;count<=58;count++) {;}           _nop_();         }      }  /* ----------------------------------------*/ void WraDataByte(uchar dat0)/* 写显示数据子程些*/    {      P0=0xff;      a0=0;      _nop_();      P0=dat0;      _nop_();      _nop_();      cs_=0;      wr_=0;      _nop_();      wr_=1;      cs_=1;     }   /* ----------------------------------------*/ void WraControlByte(uchar com)/* 写指令代码子程序)*/    {      P0=0xff;      a0=1;      _nop_();      _nop_();      P0=com;       _nop_();      _nop_();      cs_=0;      wr_=0;      _nop_();      wr_=1;      cs_=1;      a0=1;    }  /* ----------------------------------------*/void FullWithTwoByte(uchar data1,uchar data2)   {     uchar i,j;           for(i=0;i<30;i++)             {               WraDataByte(data1);             }           for(j=0;j<30;j++)             {               WraDataByte(data2);             }   }    /* -----------清屏子程序-----------------------------*/ void clr(void)        { uchar i;             WraControlByte(0x59);//关显示             WraDataByte(0x54);             WraControlByte(0x46);//设置光标指针             WraDataByte(0x00);             WraDataByte(0x40);             WraControlByte(0x4C);    //光标下移  0x4c-4f             WraControlByte(0x42);            for(i=0;i<120;i++)              {             FullWithTwoByte(0x00,0x00);             }        }   /* ----------------------------------------*/ void wrhz(unsigned int row,unsigned int col)        /* 写汉字子程序 */    {        int i,k;	unsigned int cursor,tempaddress;	unsigned int temprow,tempcol;	unsigned char addl,addh;        WraControlByte(0x59);        //关显示        WraDataByte(0x54);          //	WraControlByte(0x4f);		//光标下移  0x4c-4f	for(i=0;i<2;i++)				/*4个汉字*/	{		tempcol=col+i*2;		for(k=0;k<16;k++)		{		temprow=row+k;		cursor=0x4000+temprow*40+tempcol;        //加上显示一区的起始地址		tempaddress=cursor;		addl=tempaddress&0x00ff;		addh=((cursor&0xff00)>>8);		WraControlByte(0x46);			//设置光标指针		WraDataByte(addl);		WraDataByte(addh);		WraControlByte(0x42);               //数据写入		WraDataByte(hztab[i*32+2*k]);		}		for(k=0;k<16;k++)		{		temprow=row+k;		cursor=0x4000+temprow*40+tempcol+1;//加上显示一区的起始地址		tempaddress=cursor;		addl=tempaddress&0x00ff;		addh=((cursor&0xff00)>>8);		WraControlByte(0x46);				//设置光标指针		WraDataByte(addl);		WraDataByte(addh);		WraControlByte(0x42);		WraDataByte(hztab[i*32+(2*k+1)]);		}	}         WraControlByte(0x4c);         // 光标移}/* ----------------------------------------*/void wrzf(void)        /* 写字符子程序 */    {             int i;                WraControlByte(0x59);     //关显示                WraDataByte(0x54);                                WraControlByte(0x46);		//设置光标指针		WraDataByte(0x00);		WraDataByte(0x00);                WraControlByte(0x4c);           //光标下移  0x4c-4f		WraControlByte(0x42);          //数据写入                                  for (i=1;i<700;i++)               {                WraDataByte(0x00);               }                                           WraControlByte(0x59);                WraDataByte(0x54);                WraControlByte(0x46);			//设置光标指针		WraDataByte(0x2c);		WraDataByte(0x00);                WraControlByte(0x4c);		WraControlByte(0x42);                WraDataByte(0x3a);                WraDataByte(0x32);                WraDataByte(0x34);                WraDataByte(0x31);                WraDataByte(0x2e);                WraDataByte(0x31);                WraDataByte(0xdf);                WraDataByte(0x43);}   /* -------------初始化子程序---------------------------*/ void Initial()     {     WraControlByte(0x40);      //-初始化设置     WraDataByte(0x30);     WraDataByte(0x87);     WraDataByte(0x07);     WraDataByte(0x1d);     WraDataByte(0x39);     WraDataByte(0x95);     WraDataByte(0x28);     WraDataByte(0x00);     WraControlByte(0x44);     //显示区域设置     WraDataByte(0x00);           /* ----------一区首地址------------------------------*/     WraDataByte(0x00);     WraDataByte(0x7f);     WraDataByte(0x00);           /* ----------二区首地址------------------------------*/     WraDataByte(0x40);     WraDataByte(0x7f);     WraDataByte(0x00);           /* ----------三区首地址------------------------------*/     WraDataByte(0x80);     WraDataByte(0x00);     WraDataByte(0x00);     WraControlByte(0x5d);       //光标形状设置     WraDataByte(0x07);     WraDataByte(0x87);     WraControlByte(0x5a);     //电位移动设置     WraDataByte(0x00);     WraControlByte(0x5b);      //显示合成设置     WraDataByte(0x08);          WraControlByte(0x58);       //显示开     WraDataByte(0x56);      }     /* ----------------------------------------*//* 主程序 */main(){    uchar data i,j;     uchar code hztab[2][16*2];     rst=0;     delayms(1000);     delayms(1000);     delayms(1000);     rst=1;     delayms(1000);     delayms(1000);     delayms(1000);     Initial();      clr();      delayms(1000);      delayms(1000);      delayms(1000);      delayms(1000);      delayms(1000);     do{      wrhz(0x00,0x00);        /* 显示汉字 */      wrzf( );               /* 显示字符 */           for(i=0;i<30;i++)               {              delayms(1000);              }   }while(1);}

⌨️ 快捷键说明

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