• 方案介绍
    • 1.  简介
    • 2.  主要功能
    • 3.  源程序(Keil5)
    • 4.  仿真proteus8.6
    • 5.  设计报告
    • 6.  资料清单
    • 7.  资料获取链接
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的出租车计价器设计(一)!!! C程序+仿真+设计报告+使用说明+元件清单+操作视频

04/02 08:34
378
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

[相关器件] AM79C971AVC\W

网络通讯接口,AM79C971 - Single-Chip Full-Duplex 10/100 Mbps Ethernet Controller for PCI Local Bus

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

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

程序编译:Keil5 C51

编程语言:C语言

设计编号:【A01】

1.  简介

本文提出了一种基于51单片机的出租车计价器设计。该设计以MCS51单片机为核心处理器,通过采集车速信号传感器产生的脉冲信号,进行信号处理及变换,计算出出租车的行驶里程,根据计费标准计算金额,并且通过LCD12864液晶显示里程、单价、总价等相关信息。并且可以通过按键选择白天和黑夜状态,实现开始、暂停、清零等操作。

2.  主要功能

a.通过滑动变阻器模拟采集车速信号的传感器,并将数据传输到单片机处理。

b.通过电机模拟车辆运行状态。

c.通过LCD12864液晶显示里程、单价、总价等相关信息。

d.通过按键选择白天和黑夜状态,以及实现开始、暂停、清零等操作。

3.  源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.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;	  //电机
float p,price,distance_km,money;   //路程,金额 
unsigned int b,n;
bit flag=1;
bit a=1;
 void main(void)	  //主函数
{
	init_lcd();		 //液晶显示屏
	clearscreen(0);	  //清屏	
	setline(0);		 //起始行	
	TMOD=0x01;		 //方式1 定时功能	
	TH0=0x3c;		 //00111100	
	TL0=0xb0;		 //10101111	  50ms计数一次
	IE=0x87;
	IT0=1;	
	IP=0x01;
	distance_km=0;	  //路程=0	
	Init_DS1302();	 //时钟芯片
	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);	    //显示“价”		
		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);		 //显示“数”		
		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 		//定时器0中断
{
	TH0=0x3c;		 //00111100
	TL0=0xb0;		 //10101111	  50ms计数一次
	b++;
	if(b==10)
	{
		if(a==1)
		{
			p=1.5;
			distance_km+=0.1;			  //路程+0.1
			if(distance_km<=3)money=5;	  //小于3km,计价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,计价6元	
			else money=5.9+(distance_km-3)*p;	//大于3km部分2元每km	
			b=0;
		}
	}
}

4.  仿真proteus8.6

    本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

白天:

黑夜:

5.  设计报告

    设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考

6.  资料清单

    设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

7.  资料获取链接

百度网盘下载链接:【A01】百度网盘下载链接

更多单片机仿真设计合集单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载
[相关器件] AM79C971AVC\W

网络通讯接口,AM79C971 - Single-Chip Full-Duplex 10/100 Mbps Ethernet Controller for PCI Local Bus

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!