//**************************************************************** //函数名称:Display()显示测试结果 //**************************************************************** void Display(void) { DisplayCgrom(0x80," 123456"); DisplayCgrom(0x88," "); DisplayCgrom(0x90," "); DisplayCgrom(0x98," "); }
void LCD12864_DisplayStr(unsigned char x,unsigned char y,unsigned char *c) //向第x(0~3)行,y(0~7)列写字符串,每列可显示1汉字或2西文字符 { LCD12864_WriteCmd(0x30);//关闭扩充指令集 switch(x) { case 0:DisplayCgrom(0x80+y,c);break; case 1:DisplayCgrom(0x90+y,c);break; case 2:DisplayCgrom(0x88+y,c);break; case 3:DisplayCgrom(0x98+y,c);break; default:break; } }
void LCD12864_DisplayNum(unsigned char addr,int num) { unsigned char str[7]={0}; int i,t=0; if(num<0) t=1,num=-num; for(i=5;num>0;i--) { str[i]=num%10+'0'; num/=10; } if(t) str[i]='-',DisplayCgrom(addr,str+i); else DisplayCgrom(addr,str+i+1); }
int LCD12864_CreatInputBox(unsigned char L,unsigned char R,unsigned char Enter,unsigned char Back) //L为左端地址,R为右端地址,Enter为确认字符,Back为取消字符。返回自然数或 -1(标志执行返回操作) { int key_val=0; unsigned char key,InputState=0,InputVector=L;//InputState指示当前向量输入状态。无数值为0,有为1。 while(1) { LCD12864_WriteCmd(InputVector); LCD12864_WriteCmd(0x0f); while((key=read_key())=='?'); if('0'<=key&&key<='9') { DisplayCgrom(InputVector," "); LCD12864_DisplayChar(InputVector,key); if(InputVector==R && InputState==1) key_val/=10,InputState=1; else InputVector++,InputState=0; if(InputVector>R) InputVector=R,InputState=1; LCD12864_WriteCmd(InputVector); key_val=key_val*10+key-'0'; } else if(key==Back) { if(InputVector==L && InputState==0) return -1; if(InputState==1) { key_val/=10; InputState=0; } else { key_val/=10; InputVector--; } DisplayCgrom(InputVector," "); LCD12864_WriteCmd(InputVector); } else if(key==Enter) { return key_val; } } }
//**************************************************************** //函数名称:Display_shine()闪烁 //**************************************************************** void Display_shine(uchar x,uchar y,int num) { static int flag = 0 ; uint temp[4]; temp[0]=num/1000; //分出千,百,十,和个位 temp[1]=(num%1000)/100; temp[2]=(num%100)/10; temp[3]=(num%10); unsigned char str[] = " 1234"; //unsigned char str[] = " 1234"; str[10]=temp[0]+48; str[11]=temp[1]+48; str[12]=temp[2]+48; str[13]=temp[3]+48; //unsigned char str[] = " 1234"; if(flag) { str[10+y]=temp[y]+48; if(x) DisplayCgrom(0x90,str); else DisplayCgrom(0x80,str); delay_ms(1000); } else { str[10+y]= ' '; if(x) DisplayCgrom(0x90,str); else DisplayCgrom(0x80,str); delay_ms(1000); } flag = ~flag; //DisplayCgrom(0x80,str); }
//**************************************************************** //函数名称:Display_ampl()显示频率 //**************************************************************** void Display_ampl(int ampl) { uint qian,bai,shi,ge; qian=ampl/1000; //分出千,百,十,和个位 bai=(ampl%1000)/100; shi=(ampl%100)/10; ge=(ampl%10); unsigned char str[] = " 1234"; //unsigned char str[] = " 1234"; str[10]=qian+48; str[11]=bai+48; str[12]=shi+48; str[13]=ge+48; //DisplayCgrom(0x80,str); DisplayCgrom(0x90,str); //DisplayCgrom(0x90," "); //DisplayCgrom(0x98," "); }
//**************************************************************** //函数名称:Display_freq()显示频率 //**************************************************************** void Display_freq(int freq) { uint qian,bai,shi,ge; qian=freq/1000; //分出千,百,十,和个位 bai=(freq%1000)/100; shi=(freq%100)/10; ge=(freq%10); unsigned char str[] = " 1234"; //unsigned char str[] = " 1234"; str[10]=qian+48; str[11]=bai+48; str[12]=shi+48; str[13]=ge+48; DisplayCgrom(0x80,str); //DisplayCgrom(0x88," "); //DisplayCgrom(0x90," "); //DisplayCgrom(0x98," "); }