智能仪表综合课程设计
} }
void display(int i,int j,int x,int y) // 数码管动态刷新显示程序 {
if(jie==1&&bujin!=2) //中间变量jie==1时,为上半场,对P1赋值 P1=0xbf; //P1=0xbf, 灯
P2=0xfe;
// P0=seg[i0/10]; // delay(1); // P2=0xff; P0=0;
P2=0xfd; // P0=seg[i]; delay(1); P2|=0xff; P0=0;
P2=0xfb; // P0=seg[j0/10]; delay(1); P0=0; P2=0xff;
P2=0xf7; // P0=seg[j]; delay(1);
即P1=1011 1111B,点亮对应上半场指示
数码管动态刷新显示程序 P2=1111 1110,i为分钟
刷新显示时间显示分钟十位,调用延时程序, 延时数码管的点亮 同理,动态刷新时分钟个位并延时点亮 同理,动态刷新时秒钟十位并延时点亮 同理,动态刷新时秒钟个位并延时点亮 25
智能仪表综合课程设计
P0=0; P2=0xff;
P2=0xef; //同理,动态刷新甲队分数十位并延时点亮
P0=seg[x0/10]; delay(1); P2=0xff; P0=0;
P2=0xdf; // P0=seg[x]; delay(1); P2=0xff; P0=0;
P2=0xbf; / /
{ //即,当
delay(1); //明按键
if(RXD==0) // { while(RXD==0); x++;
}
}
if(TXD==0) // { delay(1);
同理,动态刷新甲队分数个位并延时点亮 同理,动态刷新乙队分数十位并延时点亮
调用延时子程序 实现消除按键抖动功能,检测到按键按下时候,延时,按键仍按下,说确实按下,非抖动,甲队对应加分 同理,检测乙队加分按键时候按下,并加分 26
智能仪表综合课程设计
if(TXD==0) {
while(TXD==0); y++;
}
} }
void keyjianfen1()
与加{
if(WR==0) // { delay(1); if(WR==0) { while(WR==0); x--;
}
} if(RD==0) { delay(1); if(RD==0) {
while(RD==0); y--;
}
} }
void key2()
{
//减分按键检测子程序,其基本算法及功能
相同
//显示时间调整程序,即回表和快表
27
智能仪表综合课程设计
if(INT0==0)
{ //在比赛中有时经常需要回表,故写此程序
delay(10);
if(INT0==0) //回表子程序,检测到INT0按下时,使时间
回倒 {
chuzanting==0; // 表按键 zanting=1; // n++;
if(n==60)
{ m++; n=1;
}
} }
if(INT1==0) //快,
{ // // delay(10); // chuzanting==0; zanting=1; if(INT1==0) {
chuz
} } jie--; }
if(jie==1&&bujin==2) //
chuzanting==0; zanting=1;为附加变量,当回
松开时,表暂停,这两个变量用来调用暂停 快表子程序,检测到INT1按下时,使倒计加通常情况下与回表子程序配合使用,即当回表 回过的时候,按此键调整时间
作用同上 如果jie==1&&bujin==2,说明比赛结束了,令
28