基于51单片机的出租车计价器设计(二)

1、简介
一项基于 51 单片机的出租车计价器的设计方案。此设计将 MCS51 单片机作为核心处理器,借助对车速信号传感器所产生的脉冲信号的采集,随后进行相应的信号处理与变换,进而精确计算出出租车的行驶里程。按照既定的计费标准,对费用金额进行计算。同时,利用 LCD12864 液晶显示屏,将里程、单价、总价等相关信息清晰地展示出来。另外,该设计还支持通过按键操作,实现白天和黑夜状态的选择,以及完成开始、暂停、清零等功能操作。

2、主要功能

  • 通过滑动变阻器模拟采集车速信号的传感器,并将数据传输到单片机处理。
  • 通过电机模拟车辆运行状态。
  • 通过LCD12864液晶显示里程、单价、总价等相关信息。
  • 通过按键选择白天和黑夜状态,以及实现开始、暂停、清零等操作。

3、环境搭建
资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频
仿真版本:Proteus8.6及以上版本
编译平台:Keil C51
编程语言:C语言

4、源程序
采用keil C51软件(内附安装包)编译设计。

#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);//起步价
	ShowChina(0,16*5+16,5+10);
	ShowChina(0,16*6+16,6+10);//单价
 	ShowChina(4,16*0+0,17);
	ShowChina(4,16*1+0,18);    //状态
 	ShowNumber(4,35,13);	   //:
 	ShowChina(6,16*0+0,19);
	ShowChina(6,16*1+0,20);    //时间
	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);//运行
						 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);	  //显示显示起步价
				 	ShowNumber(2,16*6+8,flag_price);  //显示单价
				 	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);    //总价
					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);    //总价						
			}
   }

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

6、设计资料清单
计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
在这里插入图片描述

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。由于不定期更新,最新的资料包不一定与下面图片完全一致,但主要资料都有。
在这里插入图片描述

7、资料获取方式
AA02下载链接1:百度网盘
AA02下载链接2:优快云免积分
资源有偿,非诚勿扰🙏🙏🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值