临沂大学2013届本科毕业设计说明书
jpjs=0; sj1=45; sj2=200; sj3=400; k4cl();
TR1=1; while(1) {
keyscan(); if(jpjs<1) { csbcj(); if(s>sj3) {
buffer[2]=0x76; buffer[1]=0x76; buffer[0]=0x76; }
else if(s buffer[2]=0x40; buffer[1]=0x40; buffer[0]=0x40; } else timeToBuffer(); } else timeToBuffer(); // offmsd(); scanLED(); // if(s 将值转换成LED段码显示函数 17 临沂大学2013届本科毕业设计说明书 } void scanLED() //显示功能模块 { digit=0x04; for( i=0; i<3; i++) //3位数显示 { P3=~digit&opto; //依次显示各位数 P1=~buffer; //显示数据送P1口 delay(20); //延时处理 P1=0xff; //P1口置高电平(关闭) if((P3&0x10)==0) //判断3位是否显示完 key=0; digit>>=1; //循环右移1位 } } void timeToBuffer() //转换段码功能模块 { xm0=s/100; xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer[2]=convert[xm2]; buffer[1]=convert[xm1]; buffer[0]=convert[xm0]; } void delay(i) { while(--i); } void timer1int (void) interrupt 3 using 2 { TH1=0x9E; TL1=0x57; 18 临沂大学2013届本科毕业设计说明书 csbds++; if(csbds>=40) { csbds=0; cl=1; } } void csbcj() { if(cl==1) { TR1=0; TH0=0x00; TL0=0x00; i=10; while(i--) { csbout=!csbout; } TR0=1; i=mqs; // while(i--) } } i=0; while(csbint) { i++; if(i>=2450) // csbint=0; } TR0=0; TH1=0x9E; TL1=0x57; 盲区上限值 19 临沂大学2013届本科毕业设计说明书 t=TH0; t=t*256+TL0; s=t*csbc/2; TR1=1; cl=0; } } void keyscan() //健盘处理函数 { xx=0; if(k1!=1) // { delay(400); // if(k1!=1) // { while(!k1) { delay(30); xx++; } if(xx>2000) { jpjs++; if(jpjs>4) jpjs=0; } xx=0; switch(jpjs) { case 1: k1cl();break; case 2: k2cl();break; case 3: k3cl();break; case 4: k4cl();break; } } } } 判断开关是否按下 延时去抖动 判断开关是否按下20 临沂大学2013届本科毕业设计说明书 void k1cl() { sj1=sj1+5; if(sj1>100) sj1=30; s=sj1; } void k2cl() { sj2=sj2+5; if(sj2>500) sj2=40; s=sj2; } void k3cl() { sj3=sj3+10; if(sj3>500) sj3=100; s=sj3; } void k4cl() { sx1=sj1-1; sx1=sx1/csbc; mqs=sx1/4.5; } void offmsd() { if (buffer[0] == 0x3f) buffer[0] = 0x00; } 年 21 日月