資料清單:C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻
1.??簡(jiǎn)介
? ? 本文提出了一種基于51單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)。該設(shè)計(jì)以MCS51單片機(jī)為核心處理器,通過(guò)采集車速信號(hào)傳感器產(chǎn)生的脈沖信號(hào),進(jìn)行信號(hào)處理及變換,計(jì)算出出租車的行駛里程,根據(jù)計(jì)費(fèi)標(biāo)準(zhǔn)計(jì)算金額,并且通過(guò)LCD12864液晶顯示里程、單價(jià)、總價(jià)等相關(guān)信息。并且可以通過(guò)按鍵選擇白天和黑夜?fàn)顟B(tài),實(shí)現(xiàn)開始、暫停、清零等操作。
2.??主要功能
a.通過(guò)滑動(dòng)變阻器模擬采集車速信號(hào)的傳感器,并將數(shù)據(jù)傳輸到單片機(jī)處理。
b.通過(guò)電機(jī)模擬車輛運(yùn)行狀態(tài)。
c.通過(guò)LCD12864液晶顯示里程、單價(jià)、總價(jià)等相關(guān)信息。
d.通過(guò)按鍵選擇白天和黑夜?fàn)顟B(tài),以及實(shí)現(xiàn)開始、暫停、清零等操作。
3.??源程序(Keil5)
? ? 本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過(guò).c和.h文件新建工程即可。
#include <reg51.h>
#include <LCD12864.H>
#include <key.h>
#include <timer.h>
#include <interrupt.h>
int i;
extern int flag_mode;
extern int flag_state;
extern int flag_base;
extern int flag_price;
extern int time;
extern int s_s;
extern int s_g;
extern int f_s;
extern int f_g;
extern int m_s;
extern int m_g;
extern int flag_run;
extern int flag_sum;
int sum=0;
void init_LCD()
{
InitLCD(); //初始化LCD12864
ClearScreen(0);
ShowChina(0,16*0+0,0+10);
ShowChina(0,16*1+0,1+10); //模式
ShowChina(0,16*2+8,2+10);
ShowChina(0,16*3+8,3+10);
ShowChina(0,16*4+8,4+10);//起步價(jià)
ShowChina(0,16*5+16,5+10);
ShowChina(0,16*6+16,6+10);//單價(jià)
ShowChina(4,16*0+0,17);
ShowChina(4,16*1+0,18); //狀態(tài)
ShowNumber(4,35,13); //:
ShowChina(6,16*0+0,19);
ShowChina(6,16*1+0,20); //時(shí)間
ShowNumber(6,35,13); //:
ShowNumber(6,64,13); //:
ShowNumber(6,88,13); //:
}
void main(void)
{ init_LCD();
init_timer();
init_int0();
init_int1();
while(1)
{
keyscan();
if(flag_run==1&&flag_sum==0)
{
if(flag_mode==1){
ShowChina(2,16*0+0,0);
ShowChina(2,16*1+0,1); //白天
} else{
ShowChina(2,16*0+0,2);
ShowChina(2,16*1+0,3); //晚上
}
if(flag_state==1){
for(i=0;i<2;i++) ShowChina(4,16*i+16*4,i+4);//運(yùn)行
TR0=1;
} else{
for(i=0;i<2;i++) ShowChina(4,16*i+16*4,i+6);//暫停
TR0=0;
}
ShowNumber(2,16*4-8,flag_base); //顯示顯示起步價(jià)
ShowNumber(2,16*6+8,flag_price); //顯示單價(jià)
ShowNumber(6,48,s_s); //0
ShowNumber(6,56,s_g); //0
ShowNumber(6,72,f_s); //0
ShowNumber(6,80,f_g); //0
ShowNumber(6,96,m_s); //0
ShowNumber(6,104,m_g); //0
}
if(flag_sum==1)
{
TR0=0;
ShowChina(4,16*0+0,21);
ShowChina(4,16*1+0,22); //總價(jià)
sum= flag_base+flag_price*time;
ShowNumber(4,35,13); //:
ShowNumber(4,8*0+16*4,sum/100);//
ShowNumber(4,8*1+16*4,sum%100/10);//
ShowNumber(4,8*2+16*4,sum%100%10);//
ShowChina(4,8*3+16*4,23);
ShowChina(4,8*5+16*4,24); //總價(jià)
}
}
4.??仿真proteus8.6
? ? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問(wèn)題,該仿真是通過(guò)proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
黑夜:
5.??設(shè)計(jì)報(bào)告
6.??資料清單
? ? 設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻等。
7.??資料獲取鏈接
百度網(wǎng)盤下載鏈接:【A02】百度網(wǎng)盤下載鏈接
更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集