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

📄 lcd.h

📁 基于uCOS/II制作的MP3
💻 H
字号:


#include "config.h"                         /* system definition */
#include "intrins.h"

#define  LCDPORT   P4
#define  nop       _nop_

uchar code CH[]="播放器测试程序";
uchar code MEG[]="错误  ";

uchar code FIG[]="0123456789ABCDEF ";
uchar code MES1[]="中断外";
uchar code MES2[]="进入中断";



sbit CS1=P1^7;
sbit CS2=P1^6;
sbit LA0=P1^4;
sbit LRW=P1^5;

sbit LCDRS=P1^7;
sbit LCDRW=P1^6;
sbit LCDEN=P1^4;

sbit LED1=P3^6;
sbit LED2=P3^7;



void LcdWrite(bit rd,uchar lcddata)
{LCDRS=rd;
 LCDRW=0;
 LCDEN=1;
 LCDPORT=lcddata;
 delay(50);
 LCDEN=0;
 LCDPORT=0xff;
}
 
uchar LcdRead(void)
{uchar lcddata;
 LCDRS=0;
 LCDRW=1;
 LCDEN=1;
 lcddata=LCDPORT;
 delay(50);
 LCDEN=0;
 return(lcddata);
}

void ReadBusy()
{uchar busy;
 do{busy=LcdRead();}while(busy&0x80);
 }

void LcdWriteCH(uchar pos,uchar data1,uchar data2)
{ReadBusy();
 LcdWrite(0,pos);
 ReadBusy();
 LcdWrite(1,data1);
 ReadBusy();
 LcdWrite(1,data2);
}


void inilcd(void)
{uint j=0;
 LcdWrite(0,0x30);
 LcdWrite(0,0x04);
 ReadBusy();
 LcdWrite(0,0x0f);
 ReadBusy();
 LcdWrite(0,0x01);
 ReadBusy();
 LcdWrite(0,0x02);

 LcdWriteCH(0x80,CH[j++],CH[j++]);
 LcdWriteCH(0x81,CH[j++],CH[j++]);
 LcdWriteCH(0x82,CH[j++],CH[j++]);
 LcdWriteCH(0x83,CH[j++],CH[j++]);
 LcdWriteCH(0x84,CH[j++],CH[j++]);
 LcdWriteCH(0x85,CH[j++],CH[j++]);
 LcdWriteCH(0x86,CH[j++],CH[j++]);
}

void LcdCluster(uint cluster)
{LcdWriteCH(0x90,FIG[(uchar)((cluster&0xf000)>>12)],FIG[(uchar)((cluster&0x0f00)>>8)]);
 LcdWriteCH(0x91,FIG[(uchar)((cluster&0x00f0)>>4)],FIG[(uchar)(cluster&0x000f)]);
}

void LcdSectorr(uint sector)
{LcdWriteCH(0x93,FIG[(uchar)((sector&0xf0000000)>>28)],FIG[(uchar)((sector&0x0f000000)>>24)]);
 LcdWriteCH(0x94,FIG[(uchar)((sector&0x00f00000)>>20)],FIG[(uchar)((sector&0x000f0000)>>16)]);
 LcdWriteCH(0x95,FIG[(uchar)((sector&0x0000f000)>>12)],FIG[(uchar)((sector&0x00000f00)>>8)]);
 LcdWriteCH(0x96,FIG[(uchar)((sector&0x000000f0)>>4)],FIG[(uchar)(sector&0x0000000f)]);
}

void LcdFlag(uchar a)
{if(a){LcdWriteCH(0x93,MES1[0],MES1[1]);
       LcdWriteCH(0x94,MES1[2],MES1[3]);
       LcdWriteCH(0x95,MES1[4],MES1[5]);
      }
 else{LcdWriteCH(0x93,MES2[0],MES2[1]);
      LcdWriteCH(0x94,MES2[2],MES2[3]);
      LcdWriteCH(0x95,MES2[4],MES2[5]);
      LcdWriteCH(0x96,MES2[6],MES2[7]);
      }
} 


void LcdDirCHS(Uint32 IntCode[10])
{uchar i;
 for(i=0;i<7;i++)
   LcdWriteCH(0x80+i,(uchar)((IntCode[i]&0xff00)>>8),(uchar)(IntCode[i]&0x00ff));
 for(i=7;i<10;i++)
   LcdWriteCH(0x89+i,(uchar)((IntCode[i]&0xff00)>>8),(uchar)(IntCode[i]&0x00ff));
}

⌨️ 快捷键说明

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