?? 機械a型液晶顯示.c
字號:
void dis_test()
{uchar i,j;
for (j=0;j<4;j++)
{ for(i=0;i<4;i++)
{
wr_zb(0xf0,i,j);
send(tab5[j*8+i*2]-0xa0);
send(tab5[j*8+i*2+1]-0xa0);
}
}
for (j=0;j<2;j++)
{ for (i=0;i<9;i++)
{ wr_zb(0xf9,9+i,j*16);
send(tab5[32+i]);
}
}
for (j=2;j<4;j++)
{ for (i=0;i<8;i++)
{ wr_zb(0xf9,9+i,j*16);
send(tab5[41+i]);
}
}
for(i=0;i<2;i++)
{
wr_zb(0xf0,10+i,0);
send(tab6[i*2]-0xa0);
send(tab6[i*2+1]-0xa0);
}
for(i=0;i<2;i++)
{
wr_zb(0xf0,10+i,2);
send(tab6[4+i*2]-0xa0);
send(tab6[4+i*2+1]-0xa0);
}
for(i=0;i<4;i++)
{ wr_zb(0xf9,20+i,16);
send(tab6[8+i]);
}
for(i=0;i<5;i++)
{ wr_zb(0xf9,19+i,48);
send(tab6[12+i]);
}
}
//*-----------------------------------------顯次級菜單
void disp_cz(uchar code *chn,uchar lnum)
{ uchar i,j;
for(i=0;i<6;i++)
{ wr_zb(0xf0,i+1,0);
send(chn[i*2]-0xa0);
send(chn[i*2+1]-0xa0);
}
for (j=1;j<3;j++)
{for (i=0;i<2;i++)
{
wr_zb(0xf9,i+2,j*16);
send(chn[12+(j-1)*lnum*2+(j-1)*2+i]);
}
}
for (j=1;j<3;j++)
{ for(i=2;i<2+lnum;i++)
{
wr_zb(0xf0,i,j);
send(chn[12+(j-1)*lnum*2+(j-1)*2+(i-1)*2]-0xa0);
send(chn[12+(j-1)*lnum*2+(j-1)*2+(i-1)*2+1]-0xa0);
}
}
}
///**********************************************顯示主菜單
void disp_chn (uchar code *chn)
{
uchar i,j;
for (j=0;j<4;j++)
{for (i=0;i<2;i++)
{
wr_zb(0xf9,i+2,j*16);
send(chn[j*14+i]);
}
}
for (j=0;j<4;j++)
{ for(i=2;i<8;i++)
{
wr_zb(0xf0,i,j);
send(chn[j*14+(i-1)*2]-0xa0);
send(chn[j*14+(i-1)*2+1]-0xa0);
}
}
}
void disitem () ///////////////////------請選擇實驗項目
{ uchar i,j;
for (i=0;i<7;i++)
{ wr_zb(0xf0,i+1,0);
send(tab11[i*2]-0xa0);
send(tab11[i*2+1]-0xa0);
}
for(i=1;i<3;i++)
{ for(j=0;j<2;j++)
{wr_zb(0xf9,j+2,i*16);
send(tab11[i*14+j]);
}
}
for(i=1;i<3;i++)
{for(j=0;j<6;j++)
{wr_zb(0xf0,j+2,i);
send(tab11[i*14+(j+1)*2]-0xa0);
send(tab11[i*14+(j+1)*2+1]-0xa0);
}
}
}
void disdt() //------------------------動態測試窗體
{uchar i,j;
for (i=0;i<2;i++)
{ for(j=0;j<2;j++)
{ wr_zb(0xf0,j+i*6,0);
send(tab112[i*4+j*2]-0xa0);
send(tab112[i*4+j*2+1]-0xa0);
}
}
}
void dispwy(uchar xnum) //--------------顯speed 、current
{uchar i,bbit,shbit,gbit;
for(i=0;i<7;i++)
{wr_zb(0xf9,i,1);
send(tab22[xnum*7+i]);
}
if(xnum==0)
{bbit=sdspeed/100;
shbit=(sdspeed-bbit*100)/10;
gbit=sdspeed-bbit*100-shbit*10;
}
else if(xnum==1)
{bbit=sdlc/100;
shbit=(sdlc-bbit*100)/10;
gbit=sdlc-bbit*100-shbit*10;
}
wr_zb(0xf9,10,1);
send(tab7[bbit]);
wr_zb(0xf9,11,1);
send(tab7[shbit]);
wr_zb(0xf9,12,1);
send(tab7[gbit]);
for(i=0;i<2;i++)
{wr_zb(0xf9,8+i,1);
send(tab7[10]);
}
}
//***-----------------------------------------數字按鍵處理 *********sw[0]<2!!!!!!還未處理。。。
void digkey(uchar num)
{ if(keychoose==2)
{sw[gbnum]=num;
wr_zb(0xf9,gbnum+9,32);
send(tab7[10]);
wr_zb(0xf9,gbnum+9,32);
send(tab7[num]);
clear_star(gbnum);
gbnum=gbnum+1;
if(gbnum>=1)gbnum=1;
dis_star(gbnum);
}
else if(keychoose==3)
{lc[gblcnum]=num;
wr_zb(0xf9,gblcnum+9,32);
send(tab7[10]);
wr_zb(0xf9,gblcnum+9,32);
send(tab7[num]);
clear_star(gblcnum);
gblcnum=gblcnum+1;
if(gblcnum>=2)gblcnum=2;
dis_star(gblcnum);
}
}
/*主程序*/
void main(void)
{ float share;
// uchar i,j;
delay200(); //------延時以使所有芯片同步-------/
init();
vbell(2000);
send(0xf4); //清屏
//keychoose=1;
disp_img(tab9); //顯一圖片
while(1)
{
DOG=~DOG;
if(keychoose==6 && altra==1)
{altra=0;
wbit=dig1/1000;
qbit=(dig1-wbit*1000)/100;
bbit=(dig1-wbit*1000-qbit*100)/10;
share=dig1-wbit*1000-qbit*100-bbit*10;
shbit=(int)share;
gbit=share*10-shbit*10;
wr_zb1(0xf9,9,0);
send(tab7[wbit]);
wr_zb1(0xf9,10,0);
send(tab7[qbit]);
wr_zb1(0xf9,11,0);
send(tab7[bbit]);
wr_zb1(0xf9,12,0);
send(tab7[shbit]);
wr_zb1(0xf9,14,0);
send(tab7[gbit]);
wbit=dig2/1000;
qbit=(dig2-wbit*1000)/100;
bbit=(dig2-wbit*1000-qbit*100)/10;
share=dig2-wbit*1000-qbit*100-bbit*10;
shbit=(int)share;
gbit=share*10-shbit*10;
wr_zb1(0xf9,9,16);
send(tab7[wbit]);
wr_zb1(0xf9,10,16);
send(tab7[qbit]);
wr_zb1(0xf9,11,16);
send(tab7[bbit]);
wr_zb1(0xf9,12,16);
send(tab7[shbit]);
wr_zb1(0xf9,14,16);
send(tab7[gbit]);
wbit=analog1/10;
share=analog1-wbit*10;
qbit=(int)share;
bbit=share*10-qbit*10;
shbit=share*100-qbit*100-bbit*10;
gbit=share*1000-qbit*1000-bbit*100-shbit*10;
wr_zb1(0xf9,9,32);
send(tab7[wbit]);
wr_zb1(0xf9,10,32);
send(tab7[qbit]);
wr_zb1(0xf9,12,32);
send(tab7[bbit]);
wr_zb1(0xf9,13,32);
send(tab7[shbit]);
wr_zb1(0xf9,14,32);
send(tab7[gbit]);
wbit=analog2/10;
share=analog2-wbit*10;
qbit=(int)share;
bbit=share*10-qbit*10;
shbit=share*100-qbit*100-bbit*10;
gbit=share*1000-qbit*1000-bbit*100-shbit*10;
wr_zb1(0xf9,9,48);
send(tab7[wbit]);
wr_zb1(0xf9,10,48);
send(tab7[qbit]);
wr_zb1(0xf9,12,48);
send(tab7[bbit]);
wr_zb1(0xf9,13,48);
send(tab7[shbit]);
wr_zb1(0xf9,14,48);
send(tab7[gbit]);
xiaoyu=analog2*dig2;
if(dig1>0)xiaoyu=xiaoyu/dig1;
if(analog1>0)xiaoyu=xiaoyu/analog1;
bbit=xiaoyu*10;
shbit=xiaoyu*100-bbit*10;
gbit=xiaoyu*1000-bbit*100-shbit*10;
wr_zb1(0xf9,20,16);
send(tab7[bbit]);
wr_zb1(0xf9,21,16);
send(tab7[shbit]);
wr_zb1(0xf9,23,16);
send(tab7[gbit]);
if(dig2>0)huaca=dig1/dig2;
bbit=huaca/100;
shbit=(huaca-bbit*100)/10;
gbit=huaca-bbit*100-shbit*10;
qbit=(huaca-bbit*100-shbit*10-gbit)*10;
wr_zb1(0xf9,19,48);
send(tab7[bbit]);
wr_zb1(0xf9,20,48);
send(tab7[shbit]);
wr_zb1(0xf9,21,48);
send(tab7[gbit]);
wr_zb1(0xf9,23,48);
send(tab7[qbit]);
}
else if(keychoose==7 && altra==1 && pause==0)
{ altra=0;
share=48*analog1; //假定ANA<=1
wbit=(int)share;
wbit=64-wbit;
share=48*dig1/300; //假定dig1<=300
bbit=(int)share;
bbit=64-bbit;
send(0xf7);
wr_zb1(0xf2,191,wbit);
wr_zb1(0xf2,191,bbit);
disdt();
dig1=dig1*10;
wbit=dig1/1000;
qbit=(dig1-wbit*1000)/100;
bbit=(dig1-wbit*1000-qbit*100)/10;
share=dig1-wbit*1000-qbit*100-bbit*10;
shbit=(int)share;
gbit=share*10-shbit*10;
wr_zb1(0xf9,4,0);
send(tab7[wbit]);
wr_zb1(0xf9,5,0);
send(tab7[qbit]);
wr_zb1(0xf9,6,0);
send(tab7[bbit]);
wr_zb1(0xf9,7,0);
send(tab7[shbit]);
wr_zb1(0xf9,8,0);
send(tab7[11]);
wr_zb1(0xf9,9,0);
send(tab7[gbit]);
wbit=analog1/10;
share=analog1-wbit*10;
qbit=(int)share;
bbit=share*10-qbit*10;
shbit=share*100-qbit*100-bbit*10;
gbit=share*1000-qbit*1000-bbit*100-shbit*10;
wr_zb1(0xf9,17,0);
send(tab7[wbit]);
wr_zb1(0xf9,18,0);
send(tab7[qbit]);
wr_zb1(0xf9,19,0);
send(tab7[11]);
wr_zb1(0xf9,20,0);
send(tab7[bbit]);
wr_zb1(0xf9,21,0);
send(tab7[shbit]);
wr_zb1(0xf9,22,0);
send(tab7[gbit]);
}
if(keydd==1)
{keydd=0;
EA=0;
switch(keydownnum)
{
case 1:
{send(0xf4);
disp_speed(tab3);
dis_star(0);
gbnum=0;
}break;
case 2:
{send(0xf4);
disp_lc(tab2);
dis_star(1);
gblcnum=1;
}break;
case 3:
{ send(0xf4);
disitem();
dismark(connum+1);
}break;
case 4:
{send(0xf4);
disp_cz(tab4,3);
dismark(bellnum+1);
}break;
case 5:
{send(0xf4);
disp_chn(tab1);
dismark(menunum);
}break;
case 6:
{ send(0xf4);
dis_test();
}break;
case 7:
{send(0xf4);
disdt();
}break;
case 8: //數字1
{digkey(1);
}break;
case 9: //數字2
{digkey(2);
}break;
case 10: //數字3
{digkey(3);
}break;
case 11: //數字4
{digkey(4);
}break;
case 12: //數字5
{digkey(5);
}break;
case 13: //數字6
{digkey(6);
}break;
case 14: //數字7
{digkey(7);
}break;
case 15: //數字8
{digkey(8);
}break;
case 16: //數字9
{digkey(9);
}break;
case 17: //數字0
{digkey(0);
}break;
case 18://MENU
{ send(0xf4);
disp_chn(tab1);
dismark(menunum);
}break;
case 19: //<
{if(keychoose==2)
{clear_star(gbnum);
if(gbnum>0)gbnum=gbnum-1;
dis_star(gbnum);
}
else if(keychoose==3)
{clear_star(gblcnum);
if(gblcnum>0)gblcnum=gblcnum-1;
dis_star(gblcnum);
}
}break;
case 20: //>
{if(keychoose==2)
{clear_star(gbnum);
gbnum=gbnum+1;
if(gbnum>=1)gbnum=1;
dis_star(gbnum);
}
else if(keychoose==3)
{clear_star(gblcnum);
gblcnum=gblcnum+1;
if(gblcnum>=2)gblcnum=2;
dis_star(gblcnum);
}
}break;
case 21: //∧
{ if(keychoose==1)
{clearmark(menunum);
if(menunum>0)menunum=menunum-1;
if(menunum<=0)menunum=0;
dismark(menunum);
}
else if(keychoose==4)
{clearmark(2);
connum=0;
dismark(1);
}
else if(keychoose==5)
{clearmark(2);
bellnum=0;
dismark(1);
}
if(specur==0 && (keychoose==6 || keychoose==7))
{ if(sdspeed<80)sdspeed++;
send(0xf4);
dispwy(0);
delay200();
SERCONTROL=1;
sendspeed();
SERCONTROL=0;
if(keychoose==6)dis_test();
else if(keychoose==7)disdt();
}
else if(specur==1 && (keychoose==6 || keychoose==7))
{ if(sdlc<100)sdlc++;
send(0xf4);
dispwy(1);
delay200();
SERCONTROL=1;
sendlc();
SERCONTROL=0;
if(keychoose==6)dis_test();
else if(keychoose==7)disdt();
}
}break;
case 22: //∨
{if(keychoose==1)
{clearmark(menunum);
menunum=menunum+1;
if(menunum>=3)menunum=3;
dismark(menunum);
}
else if(keychoose==4)
{clearmark(1);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -