• 方案介紹
    • 1.? 簡(jiǎn)介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計(jì)報(bào)告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的出租車(chē)計(jì)價(jià)器設(shè)計(jì)(一)!!! C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻

04/02 08:34
274
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf

共1個(gè)文件

資料清單:C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):【A01】

1.? 簡(jiǎn)介

本文提出了一種基于51單片機(jī)的出租車(chē)計(jì)價(jià)器設(shè)計(jì)。該設(shè)計(jì)以MCS51單片機(jī)為核心處理器,通過(guò)采集車(chē)速信號(hào)傳感器產(chǎn)生的脈沖信號(hào),進(jìn)行信號(hào)處理及變換,計(jì)算出出租車(chē)的行駛里程,根據(jù)計(jì)費(fèi)標(biāo)準(zhǔn)計(jì)算金額,并且通過(guò)LCD12864液晶顯示里程、單價(jià)、總價(jià)等相關(guān)信息。并且可以通過(guò)按鍵選擇白天和黑夜?fàn)顟B(tài),實(shí)現(xiàn)開(kāi)始、暫停、清零等操作。

2.? 主要功能

a.通過(guò)滑動(dòng)變阻器模擬采集車(chē)速信號(hào)的傳感器,并將數(shù)據(jù)傳輸到單片機(jī)處理。

b.通過(guò)電機(jī)模擬車(chē)輛運(yùn)行狀態(tài)。

c.通過(guò)LCD12864液晶顯示里程、單價(jià)、總價(jià)等相關(guān)信息。

d.通過(guò)按鍵選擇白天和黑夜?fàn)顟B(tài),以及實(shí)現(xiàn)開(kāi)始、暫停、清零等操作。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開(kāi)程序,可自行通過(guò).c和.h文件新建工程即可。

#include<reg52.h>
#include<intrins.h>
#include"lcd12864.c"
#include"code.h"
#include"ds1302.c"
#include"display.c"
sbit P34=P3^4;	  //白天
sbit P33=P3^3;	  //清零
sbit P31=P3^1;	  //黑夜
sbit P12=P1^2;	  //電機(jī)
float p,price,distance_km,money;   //路程,金額 
unsigned int b,n;
bit flag=1;
bit a=1;
 void main(void)	  //主函數(shù)
{
	init_lcd();		 //液晶顯示屏
	clearscreen(0);	  //清屏	
	setline(0);		 //起始行	
	TMOD=0x01;		 //方式1 定時(shí)功能	
	TH0=0x3c;		 //00111100	
	TL0=0xb0;		 //10101111	  50ms計(jì)數(shù)一次
	IE=0x87;
	IT0=1;	
	IP=0x01;
	distance_km=0;	  //路程=0	
	Init_DS1302();	 //時(shí)鐘芯片
	while(1)	
	{		
	if(flag)	 		
	{
		TR0=0;
		P12=1;
		price=p;
		display(price);
		display1(distance_km);	 //顯示路程			
		display2(money);		//顯示金額	
	} 
	else 	
	{
		TR0=1;	  //T0中斷
		P12=0;	  //燈亮
		price=p;
		display(price);	
		display1(distance_km);	 //顯示路程		
		display2(money);		//顯示金額	
	}		
		displayc(1,0,0*16,dan);		 //顯示“單”		
		displayc(1,0,1*16,jia);	    //顯示“價(jià)”		
		displaye(1,0,4*8,num,15);	  //顯示“:”
		displayc(1,3,0*16,li);	   //顯示“里”		
		displayc(1,3,1*16,chen);    //顯示“程”		
		displayc(1,3,2*16,shu);		 //顯示“數(shù)”		
		displaye(1,3,6*8,num,15);	  //顯示“:”		
		displayc(1,6,0*16,jin);		 //顯示“金”		
		displayc(1,6,1*16,e);	    //顯示“額”
		displaye(1,6,4*8,num,15);	  //顯示“:”		
	if(P34==0)
	{
		a=1;
	}
		if(P31==0)
	{
		a=0;
	}
	}
}
void timer1(void)interrupt 1 		//定時(shí)器0中斷
{
	TH0=0x3c;		 //00111100
	TL0=0xb0;		 //10101111	  50ms計(jì)數(shù)一次
	b++;
	if(b==10)
	{
		if(a==1)
		{
			p=1.5;
			distance_km+=0.1;			  //路程+0.1
			if(distance_km<=3)money=5;	  //小于3km,計(jì)價(jià)5元
			else money=4.9+(distance_km-3)*p;	//大于3km部分1.5元每km
			b=0;
		}
		if(a==0)
		{
			p=2;
			distance_km+=0.1;			  //路程+0.1
			if(distance_km<=3)money=6;	  //小于3km,計(jì)價(jià)6元	
			else money=5.9+(distance_km-3)*p;	//大于3km部分2元每km	
			b=0;
		}
	}
}

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打開(kāi)文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

白天:

黑夜:

5.? 設(shè)計(jì)報(bào)告

? ? 設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。

6.? 資料清單

? ? 設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤(pán)下載鏈接:【A01】百度網(wǎng)盤(pán)下載鏈接

更多單片機(jī)仿真設(shè)計(jì)合集單片機(jī)仿真設(shè)計(jì)合集

  • 單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf
    下載

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!