關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 出租車計價器設(shè)計與制作

出租車計價器設(shè)計與制作

作者: 時間:2011-06-04 來源:網(wǎng)絡(luò) 收藏

}
}
}
return k;
}
//-------數(shù)碼管動態(tài)掃描-------------
void led_show()
{unsigned char i,k;
//-----顯示單價----
k=cost_val[state_val];
i=k%10; //暫存?zhèn)€位
P0=led_seg_code[i];
P2=0xbf;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0x7f;
delay(10);
//-----顯示距離------
k=cnt_distance;
i=k%10; //暫存?zhèn)€位
P0=led_seg_code[i];
P2=0xf7;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0xef;
delay(10);
//-----顯示總價格-----------
k=cnt_cost;
i=k%10; //暫存?zhèn)€位
P0=led_seg_code[i];
P2=0xfe;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0xfd;
delay(10);
}
//-------計時----------------
void timer1() interrupt 3 //T1中斷
{ T1_cnt++;
if(T1_cnt>3999) //如果計數(shù)>3999, 計時1s
{ T1_cnt=0;
if(cnt_3030) //沒有超過30秒,繼續(xù)計時
{cnt_30++;}
else //超過30秒,途中等待計價
{cnt_30=0;
cnt_cost=cnt_cost+cost_val[2];}
}
}
//---------主程序----------------
main()
{//初始化各變量
T1_cnt=0;
state_val=0;
key_val_old=255;
init_variant();
//初始化51的寄存器
TMOD=0x20; //用T1計時 8位自動裝載定時模式,不用T0
TH1=0x19; //250微秒溢出一次; 250=(256-x)*12/11.0592 -> x= 230.4
TL1=0x19;
EA=1; //開中斷
ET1=1;
TR1=0; //定時器T0
TCON=0x01; //Int0中斷取邊沿觸發(fā)模式
while(1)
{ key_val=scan_key(); // 255;//
if (key_val!=key_val_old)
{ key_val_old=key_val;
if (key_val!=255)
{ switch (key_val)
{ case 0: //啟動鍵
TR1=1; //啟動計時,TR1=1為啟動了的標志
break;
case 1: //清除鍵
init_variant(); //清除變量
TR1=0; //關(guān)閉定時器
break;
case 2: //白天/黑夜的切換
if(state_val==0)
{state_val=1;}
else
{state_val=0;}
break;
}
}
}
if(IE0==1 TR1==1) //每來1個脈沖,中斷一次
{ IE0=0;
cnt_30=0; //30秒的計時清零
if(D_cnt100)
{D_cnt++;}
else //計數(shù)100次,每次10米,表示一公里
{D_cnt=0;
cnt_distance=cnt_distance+1;
cnt_cost=cnt_cost+cost_val[state_val];
}
}
led_show();
}
}
//-----程序結(jié)束------------

本文引用地址:http://www.butianyuan.cn/article/161997.htm

上一頁 1 2 3 下一頁

關(guān)鍵詞: 制作 設(shè)計 計價器 出租車

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉