资料清单: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程序+仿真+设计报告+使用说明+元件清单+操作视频等。