📄 lcd 128x64 测试程序.c
字号:
//==============================================
#include<reg52.h> //
#define uint unsigned int // title"at89c52;
#define uchar unsigned char//
//
sfr acc=0xe0;
sfr ip=0xb8;
sfr p3=0xb0;
sfr ie=0xa8;
sfr tmod=0x89;
sfr tcon=0x88;
sfr tl0=0x8a;
sfr tl1=0x8b;
sfr th0=0x8c;
sfr th1=0x8d;
sfr p2=0xa0;
sfr p1=0x90;
sfr p0=0x80;
sbit ie_7=ie^7;
sbit ie_0=ie^0;
sbit ie_2=ie^2;
sbit ie_1=ie^1;
sbit ie_3=ie^3;
sbit ie_5=ie^5;
sbit tcon_4=tcon^4;
sbit tcon_5=tcon^5;
sbit tcon_6=tcon^6;
sbit tcon_7=tcon^7;
sbit acc_7=acc^7;
sbit e=p2^5; //片选信号; H // 右半屏显示
sbit rw=p2^6; //使能控制
sbit rs =p2^7; //读写操作选择信号
sbit out_a=p3^0;
sbit out_2 =p3^3;
sbit p3_2=p3^2;
sbit out_1=p3^1;
sbit out_b=p3^4;
sbit out_a1 =p3^7;
sbit rst=p2^4;
sbit out_b1=p2^2;
sbit out_c1=p2^1;
sbit out_c=p2^0;
//--------------------------------
uchar i,z,x,y,d,t,com ,dat,k1,k2,k3,k4,k5,k6,k7,k8,k,q,m; // t,d,z=cont
uchar goto1;
uint v;
// uchar code *mn;
// uchar code m1;
long o;
uchar idata kkk=0;
uchar j,jj,w,w1,z1,z2,x1,x2,x3,x4;
uchar j1,j2,jx,jx1,jy,jy1,jz,jk,ii;
uchar code ccw0[32]={0xa1,0xa1,0xa1,0xf9,0xbb,0xb6,0xd3,0xad,0xca,0xb9,0xd3,0xc3,0xa1,0xf9,0xa1,0xa1,0xa1,0xa1,0xc9,0xfa,0xce,0xef,0xd1,0xf5,0xd6,0xce,0xc1,0xc6,0xd2,0xc7,0x21,0xa1};
uchar code ccw1[33]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0x1b,0x2d,0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0x1b,0x2d,0xa1};
uchar code ccw2[31]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0x11,0x20,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0x3c,0x2d,0x2d,0x3e,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccw3[ 31]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0x3c,0x2d,0xa1,0xa1,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccw4[31]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0xa1,0xa1,0x2d,0x3e,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccw5[45]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar code ccw6[47]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar code ccw7[49]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar idata ccw00[33 ]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0xd6,0xce,0xc1,0xc6,0xca,0xb1,0xbc,0xe4,0x20,0x20,0x30,0x30,0x3a,0x30,0x30,0xa1,0xa1};
uchar idata ccw0_9[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
uchar code ccw8[ 31]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0x3c,0x2d,0xa1,0xa1,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccw9[31]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0x11,0x20,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0x3c,0x2d,0x2d,0x3e,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccw10[31]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xc4,0xd0,0xbf,0xc6,0xa1,0xa1,0x2d,0x3e,0xb8,0xbe,0xbf,0xc6,0xa1};
uchar code ccwc[33] = {0xd2,0xc7,0xc6,0xf7,0xc9,0xe8,0xd6,0xc3,0xcd,0xea,0xb3,0xc9,0xc7,0xeb,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf,0xbc,0xfc,0xbf,0xaa,0xca,0xbc,0xd6,0xce,0xc1,0xc6,0x21,0x21,0x20};
uchar idata ccw11[29]={ 0xc9,0xe8,0xb6,0xa8,0xca,0xb1,0xbc,0xe4,0x30,0x30,0xb7,0xd6,0xd6,0xd3,0x20,0x11,0xa1,0xa1,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa1};
uchar idata ccw12[29]={0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xd6,0xce,0xc1,0xc6,0xd6,0xd0,0x10,0x20,0x20,0x20,0xa1};
uchar code ccw13[31 ]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xd6,0xce,0xc1,0xc6,0xbd,0xe1,0xca,0xf8,0x21,0x21,0xa1,0xa1,0xa1};
uchar code ccw17[31 ]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xd6,0xce,0xc1,0xc6,0xbd,0xe1,0xca,0xf8,0x21,0x21,0xa1,0xa1,0xa1};
uchar code ccw14[45]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar code ccw15[47]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar code ccw16[49]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xfd,0xa1};
uchar code ccw18[17]= {0xc9,0xe8,0xb6,0xa8,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0x20,0x11,0xa1};
uchar code ccw19[17]= {0xc9,0xe8,0xb6,0xa8,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf2,0x20,0x11,0xa1};
uchar code ccw20[17]= {0xc9,0xe8,0xb6,0xa8,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf3,0x20,0x11,0xa1};
uchar code ccw21[33 ]= {0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf1,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1};
uchar code ccw22[33]= { 0xa1,0xa1,0xa1,0xa1,0xcd,0xa8,0xb5,0xc0,0xa1,0xa1,0xa2,0xf2,0xa1,0xa1,0xa1,0xa1,0x1a,0x3e,0xd6,0xce,0xc1,0xc6,0xc7,0xbf,0xb6,0xc8,0xa2,0xf1,0xa2,0xf2,0xa2,0xf3,0xa1};
uchar code ccw23[15 ]= {0xa1,0xa1,0xb5,0xc8,0xb4,0xfd,0xd6,0xd0,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0xa1};
uchar code end[33]= {0xa1,0xa1,0xca,0xd4,0xd3,0xc3,0xbd,0xe1,0xca,0xf8,0xc7,0xeb,0xca,0xe4,0xc8,0xeb,0xdc3,0xdc,0xc2,0xeb,0xa3,0xb1,0xa3,0xad,0xa3,0xb6,0xce,0xbb,0xa3,0xa1,0xa1,0xa1,0xa1};
uchar code cg1[17] = {0xa1,0xa1,0xca,0xe4,0xc8,0xeb,0xb3,0xc9,0xb9,0xa6,0xa3,0xa1,0xa3,0xa1,0xa1,0xa1,0xa1};
//uchar code sb1[17] = {0xa1,0xa1,0xca,0xe4,0xc8,0xeb,0xca,0xa7,0xb0,0xdc,0xa3,0xa1,0xa3,0xa1,0xa1,0xa1,0xa1};
uchar code erro1[17]= {0xa1,0xa1,0xb7,0xc7,0xb7,0xa8,0xb2,0xd9,0xd7,0xf7,0xa3,0xa1,0xa3,0xa1,0xa1,0xa1,0xa1};
//========================================================================================================================
void service_int1()interrupt 2 using 2 {
}
void service_int0()interrupt 0 using 3
{ for(v=0;v<=9;v++){;};
if(p3_2==0) {
k=0xff; m=0xff; k=p0; m=p0;
switch(k){
case 0xfe:{k1=0x01;} break; //启动
case 0xfd: {k2=0x02;} break; //通道1
case 0xfb:{k3=0x03;} break; //通道2
case 0xf7:{k4=0x04;} break; //加。。。
case 0xef:{k5=0x05;} break; // 减。。。。
case 0xdf:{k6=0x06;} break; //确定
case 0xbf:{k7=0x07;} break; //1停止
case 0x7f:{k8=0x08;} break; //2停止
}
//-----------------------------------------------
}
}
//------------------- */
void wait(void)
{
do{ p1=0xff;
e=1;
acc=p1;
e=0; }
while(acc_7==1);}
void lcd_zl(void)
{rs =0;
rw =1;
wait(); rs=0;
rw=0;p1=com;
e=1;e=0;}
void lcd_data(void)
{ rs =0; rw =1; wait();
rs=1;rw=0;p1=dat;e=1; e=0; }
void init0(void)
{ com=0x30;
lcd_zl();
com=0x0c;
lcd_zl(); //显示打开
com=0x01;
lcd_zl();
com=0x80;
lcd_zl();
}
void lcd_xs (void)
{ dat=0x00;
i=0x00;
init0();
do{ dat=ccw0[i];
lcd_data();
i++; }
while(i<31);
}
void lcd_dd(void)
{ dat=0x00;
i=0x00;init0();
do{ dat=ccw23[i]; lcd_data(); i++; }
while(i<14); }
void lcd_xs1(void)
{ dat=0x00; i=0x00;
init0();
do{ dat=ccw1[i]; lcd_data(); i++; }
while(i<32); }
void lcd_td1(void)
{ dat=0x00; i=0x00;
init0();
do{dat=ccw2[i]; lcd_data();i++; }
while(i<30); }
void lcd_td1_n(void)
{ dat=0x00;i=0x00;
init0();
do{dat=ccw3[i];lcd_data();i++; }
while(i<30); }
void lcd_td1_f(void)
{dat=0x00;i=0x00;
init0();
do{dat=ccw4[i]; lcd_data(); i++; }
while(i<30);
}
lcd_td1_q() {dat=0x00;i=0x00;
init0();
do{dat=ccw21[i]; lcd_data(); i++; }
while(i<32); }
void lcd_td1_q1(void)
{
dat=0x00;
i=0x00;
init0();
do{dat=ccw5[i];lcd_data();i++; }
while(i<44);
}
void lcd_td1_q2(void)
{
dat=0x00;
i=0x00;
init0();
do{dat=ccw6[i]; lcd_data();i++; }
while (i<46);
}
void lcd_td1_q3(void)
{
dat=0x00;
i=0x00;
init0();
do{dat=ccw7[i]; lcd_data(); i++; }
while(i<48);
}
void wcq1()
{ dat=0x00;
i=0x00;
init0();
do{dat=ccw18[i]; lcd_data(); i++; }
while(i<16); }
void wcq2(){ dat=0x00;i=0x00;
init0();
do{dat=ccw19[i]; lcd_data(); i++; }
while(i<16); }
void wcq3(){ dat=0x00;
i=0x00;
init0();
do{dat=ccw20[i]; lcd_data(); i++; }
while(i<16); }
void lcd_sj(void)
{dat=0x00;
i=0x00;
init0();
ccw00[11]=0xf1;
do{dat=ccw00[i];lcd_data(); i++; }
while(i<31);
}
void lcd_sj_inc (void)
{
dat=0x00; z=ccw0_9[d]; ccw00[27]=z;
/////////////////
dat =0x00; i=0x00; dat=ccw00[27]; init0();
do{dat=ccw00[i]; lcd_data(); i++;
}
while (i<31);
}
void qkz (void){ if (q==1){ccw11[27]=0xf1; }
else if(q==2) {ccw11[27]=0xf2; }
else if (q==3){ccw11[27]=0xf3; }
else if(q==4){ccw11[27]=0xf1; }
else if(q==5){ccw11[27]=0xf2; }
else if(q==6){ccw11[27]=0xf3; }
else{} }
void lcd_sjok(void) { switch (t){
case 0: {ccw11[8]=0x30; dat=0x00; ccw11[9]=z; qkz(); i=0x00;init0();do {dat=ccw11[i];lcd_data();i++;}while(i<28);}break;
case 1: {ccw11[8]=0x31; dat=0x00; ccw11[9]=z; qkz(); i=0x00;init0();do {dat=ccw11[i];lcd_data();i++;}while(i<28);} break;
case 2: {ccw11[8]=0x32; dat=0x00; ccw11[9]=z; qkz(); i=0x00;init0(); do {dat=ccw11[i];lcd_data();i++;}while(i<28);} break;
case 3: {ccw11[8]=0x33; dat=0x00; ccw11[9]=z; qkz(); i=0x00;init0();do {dat=ccw11[i];lcd_data();i++;}while(i<28);} break;
case 4: {ccw11[8]=0x34; dat=0x00; ccw11[9]=z; qkz(); i=0x00;init0();do {dat=ccw11[i];lcd_data();i++;}while(i<28);} break;
case 5: {ccw11[8]=0x35; dat=0x00; ccw11[9]=z;qkz(); i=0x00;init0();do {dat=ccw11[i];lcd_data();i++;}while(i<28);} break; }
}
void sjinc (void)
{
if (k4==0x04){ x=x+1;
switch (x) {
case 0: { d=0; lcd_sj_inc(); jk=jk+1;for(v=0;v<=33000;v++){;}; /*do{;;} while(j==0); j=0;*/k=0;} break;
case 1: { d=1; lcd_sj_inc(); jk=jk+1;for(v=0;v<=33000;v++){;}; /*do{;;} while(j==0); j=0;*/k=0;} break;
case 2: { d=2; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 3: { d=3; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 4: { d=4; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 5: { d=5; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 6: { d=6; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;}; /* do{;;} while(j==0); j=0;*/k=0;} break;
case 7: { d=7; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;}; /* do{;;} while(j==0); j=0*/;k=0;} break;
case 8: { d=8; lcd_sj_inc();jk=jk+1; for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 9: { d=9; lcd_sj_inc();jk=jk+1;for(v=0;v<=33000;v++){;}; /* do{;;} while(j==0); j=0;*/t=t+1;k=0;} break; }
}
else {}
}
void sjinc1(void){
if (k5==0x05){
x=x-1;
switch (x) {
case 0: { d=0; lcd_sj_inc();jk=jk-1; for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;t=t-1;} break;
case 1: { d=1; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;}; /* do{;;} while(j==0); j=0;*/k=0;} break;
case 2: { d=2; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 3: { d=3; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 4: { d=4; lcd_sj_inc(); jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 5: { d=5; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 6: { d=6; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 7: { d=7; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 8: { d=8; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/k=0;} break;
case 9: { d=9; lcd_sj_inc();jk=jk-1;for(v=0;v<=33000;v++){;};/* do{;;} while(j==0); j=0;*/;k=0;} break;
}
}
else {}
}
void wc(void)
{ dat=0x00;
i=0x00;
init0();
do{dat=ccwc[i];
lcd_data();i++; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -