for(j=0;j<200;j++); START = 1; START = 0;
while(!EOC) //等待转换完毕的信号,当EOC=1时转换完毕 { } OE = 1;
//输出三态门打开,将转换的结果输出到数据总线上
;
AD = P1*100/255; // OE = 0;
}
for(i=0;i<225;i++);
/*************LCD显示部分*******************/
/*把1个命令写入LCD */
void vWriteLM(uchar lcdCommand) {
E=1; RS=0; RW=0;
//再输出命令。 //最后执行命令。
//然后把LCD改为写入命令状态。
Delay();
//先延时。
LCD=lcdCommand; E=0; }
/*把1个数据写入LCD*/
void vWriteData( uchar lcdData) {
Delay();
//先延时。
//然后把LCD改为写入数据状态。
E=1;
RS=1; RW=0;
LCD=lcdData; E=0; }
//再输出数据。
//最后显示数据。
/*把1个字符显示到当前光标处*/
void vShowOneChar(uchar lcdChar) {
case 'A': vWriteData(0x41);break; case 'B': vWriteData(0x42);break; case 'C': vWriteData(0x43);break; case 'D': vWriteData(0x44);break; case 'E': vWriteData(0x45);break; case 'F': vWriteData(0x46);break; case 'G': vWriteData(0x47);break; case 'H': vWriteData(0x48);break;
case '0': vWriteData(0x30);break; case '1': vWriteData(0x31);break; case '2': vWriteData(0x32);break; case '3': vWriteData(0x33);break; case '4': vWriteData(0x34);break; case '5': vWriteData(0x35);break; case '6': vWriteData(0x36);break; case '7': vWriteData(0x37);break; case '8': vWriteData(0x38);break; case '9': vWriteData(0x39);break; switch(lcdChar)
{
case ' ': vWriteData(0x20);break; case ':': vWriteData(0x3A);break;
}
case 'I': vWriteData(0x49);break; case 'J': vWriteData(0x4A);break; case 'K': vWriteData(0x4B);break; case 'L': vWriteData(0x4C);break; case 'M': vWriteData(0x4D);break; case 'N': vWriteData(0x4E);break; case 'O': vWriteData(0x4F);break; case 'P': vWriteData(0x50);break; case 'Q': vWriteData(0x51);break; case 'R': vWriteData(0x52);break; case 'S': vWriteData(0x53);break; case 'T': vWriteData(0x54);break; case 'U': vWriteData(0x55);break; case 'V': vWriteData(0x56);break; case 'W': vWriteData(0x57);break; case 'X': vWriteData(0x58);break; case 'Y': vWriteData(0x59);break; case 'Z': vWriteData(0x5A);break;
default: break; }
/*把1个字符串显示到当前光标处*/ void vShowChar(uchar lcdaChar[]) {
uchar lcdCount;
for(lcdCount=0;;lcdCount++)
{
vShowOneChar(lcdaChar[lcdCount]);
}
if(lcdaChar[lcdCount+1]=='\\0') }
break;
/*把一个三位数字显示出来*/ void vShowNumber(uint uiNumber) {
if(uiNumber>999) uiNumber=999;
lcdaNumber[0]=uiNumber/100;
//把计算数字的每个位存入
uchar lcdaNumber[3],lcdNumCount;
数组。
lcdaNumber[1]=(uiNumber-100*(int)lcdaNumber[0])/10;
lcdaNumber[2]=uiNumber-100*(int)lcdaNumber[0]-10*lcdaNumber[1]; }
void LCD_init() {
vWriteLM(0x01); //
清屏
for(lcdNumCount=0;lcdNumCount<3;lcdNumCount++)
{
vShowOneChar(lcdaNumber[lcdNumCount]+48); }
//从首位到末位逐一输出。
vWriteLM(0x38); //显示模式设置:8位2行5x7点阵 vWriteLM(0x0C); //(0x0C)文字不动,光标自动右移
vWriteLM(0x0F); //显示器开、光标开、闪烁开