毕业论文
if(button1==0) {
while(button1==0); kk++;flag=1;fly=1; switch(kk) {
case 1:write_zl(0x80+10);
write_zl(0x0f);//shan shuo
break;
case 2:write_zl(0x80+11);break; case 3:write_zl(0x80+0x40+10);break; case 4:write_zl(0x80+0x40+11);break; case 5:kk=0;flag=0;fly=0;
write_zl(0x0c);
if(nn==1) fl=1; if(nn==2) fl=0; break;
} } }
if(button2==0) {
delay2(5); if(button2==0) {
while(button2==0);
switch(kk)
{
case 1:write_zl(0x80+10);
if(fl==1){Ush++;if(Ush>9)Ush=3;
write_sj(0x30+Ush);write(12,Ush);}
32
毕业论文
if(fl==0){Ushi++;if(Ushi>9)Ushi=1;write_sj(0x30+Ushi);write(8,Ushi);}
break;
case 2:write_zl(0x80+11);
if(fl==1){Ug++;if(Ug>9)Ug=0;write_sj(0x30+Ug);write(13,Ug);}
if(fl==0){
Uge++;
if(Uge>9)Uge=0;
write_sj(0x30+Uge);write(9,Uge);}
break;
case 3:write_zl(0x80+0x40+10);
if(fl==1){Dsh++;if(Dsh>2)Dsh=0;write_sj(0x30+Dsh);write(14,Dsh);}
if(fl==0){
Dshi++;
if(Dshi>2)Dshi=0;write_sj(0x30+Dshi);write(10,Dshi);}
break;
case 4:write_zl(0x80+0x40+11);
if(fl==1){Dg++;if(Dg>9)Dg=0;write_sj(0x30+Dg);write(15,Dg);}
if(fl==0){Dge++;
if(Dge>9)Dge=0;write_sj(0x30+Dge);
write(11,Dge);}
break;
} } }
if(button3==0) {
33
毕业论文
delay2(5); if(button3==0) {
while(button3==0);
switch(kk) {
case 1: write_zl(0x80+10); if(fl==0){Ushi--;
if(Ushi<3)Ushi=9;write_sj(0x30+Ushi);write(8,Ushi);}
if(fl==1){Ush--;
if(Ush<3)Ush=9;
write_sj(0x30+Ush);
write(12,Ush);}
break;
case 2: write_zl(0x80+11); if(fl==0){Uge--;
if(Uge<0)Uge=9;write_sj(0x30+Uge);
write(9,Uge);}
if(fl==1){Ug--;
if(Ug<0)Ug=9;
write_sj(0x30+Ug);
write(13,Ug);}
break;
case 3: write_zl(0x80+0x40+10); if(fl==0){Dshi--;
if(Dshi<0)Dshi=1;write_sj(0x30+Dshi);
write(10,Dshi);}
if(fl==1){Dsh--;if(Dsh<0)Dsh=2;write_sj(0x30+Dsh);write(14,Dsh);}
break;
case 4: write_zl(0x80+0x40+11);
if(fl==0){Dge--;
34
if(Dge<0)Dge=9;write_sj(0x30+Dge);
毕业论文
write(11,Dge);}
if(fl==1){Dg--;if(Dg<0)Dg=9;write_sj(0x30+Dg);write(15,Dg);}
break; }
} }
if(button4==0) {
delay2(5);
if(button4==0) {
while(button4==0); nn++; switch(nn) {
case 1:fl=1;write_zl(0x01);write_zl(0x0c);shangdian_du(); yejing=1;
display_shidu(); //若不在这显示数码管闪烁
yejing=0;
break;
case 2:fl=0;write_zl(0x01); write_zl(0x0c); shangdian_du(); nn=0; } } } }
该检测仪采用独立式键盘,关于它的具体硬件组成电路这里就不多做介绍,在检测有无键按下方面主要用的是开机自动扫描方式,该方式是利用单片机
35
break;
毕业论文
运行程序初始化后自动扫描键盘。 §1.8.2 I2C总线程序设计
部分源程序如下所示:
void start() { sda=1; delay(5); sck=1; delay(4); sda=0; delay(2);} void stop() { sda=0; delay(4); sck=1; delay(4); sda=1; delay(4);} void response() { uchar i;
while(sda==1&&i==200)i++; sck=1; delay(5); sck=0; }
void write_shj(uchar sj) {uchar temp,j; temp=sj; sck=0; delay(4); for(j=0;j<8;j++)
36