1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 基于51单片机出租车计费设计(proteus仿真+程序+原理图+设计说明书)

基于51单片机出租车计费设计(proteus仿真+程序+原理图+设计说明书)

时间:2020-04-14 19:19:11

相关推荐

基于51单片机出租车计费设计(proteus仿真+程序+原理图+设计说明书)

出租车计费设计

基于51单片机出租车计费仿真设计(proteus仿真+程序+原理图+设计说明书)功能说明仿真图程序原理图设计说明书摘要设计清单(提供资料清单所有文件)资料下载

基于51单片机出租车计费仿真设计(proteus仿真+程序+原理图+设计说明书)

仿真图proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:C0050

功能说明

51单片机 + 1302时钟芯片准确计时 + LCD1602液晶显示 + 24c02芯片可以掉电存储数据 + 3v直流电机模拟发动机工作。

1、当无乘客时液晶可以显示时间(年月日时分秒),时间可以按键设置,此时电机不工作;

2、当有乘客时电机工作,可以通过按键开始计费系统工作,有清零键,收费可以修改(包括起价费、超过起价费每公里或分钟收费、白天和夜晚收费标准);

3、可以切换白天和夜晚收费标准,可以按照分钟或公里收费切换。

仿真图

程序

//出租车计价器//宏定义#define uchar unsigned char#define uint unsigned int //头函数声明#include <reg52.h>#include "Lcd.h"#include "Data.h"#include "DS1302.h"#include "AT24C02.h"//键盘定义sbit K1=P3^4;//模式切换sbit K2=P3^6;//减按键sbit K3=P3^5;//加按键sbit K4=P3^7;//万年历模式时:设置时间信息。计价器模式时:设置单价//模式0时钟 1时钟调整 uchar Mode=0;//时钟屏幕调整uchar Wei=0;uchar SS=0;//价格调整uchar JGWei=0;//计价器参数uint Day=0;uint Night=0;uint DanJia=0;uint DJ_min=0;uint ZJ=0;unsigned long GL=0;uint Time=0;uint count=0;uchar m=0;//白天/晚上uchar DN=0;//公里/时间uchar GT=0;//初始化函数void InitTimer0();//写初值void SETS();//读初值void READS();//主函数void main(){//初始化Ds1302_Init();Init_LCD();initeeprom();//SETS();//读取初始参数READS();//定时器初始化InitTimer0();//循环while(1){//时钟模式if(Mode==0){//读时间if(Wei==0){Ds1302_Read_Time();//显示时间display_NYR(time_buf1,Wei,0);}}else if(Mode==1){if(time_buf1[4]>=23||time_buf1[4]<7) DN=1;elseDN=0;//显示计价器信息display_S(Day,Night,DanJia,ZJ,GL/10,Time,GT,DN);}if(K4==0){delay(100);//调时if(Mode==0){Wei++;if(Wei==1){SS=1;}//闪烁display_NYR(time_buf1,Wei,SS);if(Wei==7){Wei=0;//保存时间Ds1302_Write_Time();Init_LCD();}}else if(Mode==1){JGWei++;if(JGWei==1){Mode=2;//显示计价器价格Init_LCD_JGTZ();display_D(Day,Night,DanJia,JGWei,DJ_min);}}else if(Mode==2){JGWei++;display_D(Day,Night,DanJia,JGWei,DJ_min);if(JGWei==5){Mode=1;JGWei=0;//参数初始化//保存SETS();//读初值READS();ZJ=0;GL=0;Time=0;//开启定时器TR0=1;//显示计价器Init_LCD_JJQ();}}while(K4==0);}//+if(K3==0){delay(100);//调时if(Mode==0){//年if(Wei==1){time_buf1[1]++;if(time_buf1[1]>=100)time_buf1[1]=0;}//月else if(Wei==2){time_buf1[2]++;if(time_buf1[2]>=13)time_buf1[2]=1;}//日else if(Wei==3){time_buf1[3]++;if(time_buf1[3]>=YDay(time_buf1[1],time_buf1[2])+1)time_buf1[3]=1;}//时else if(Wei==4){time_buf1[4]++;if(time_buf1[4]>=24)time_buf1[4]=0;}//分else if(Wei==5){time_buf1[5]++;if(time_buf1[5]>=60)time_buf1[5]=0;}//秒else if(Wei==6){time_buf1[6]++;if(time_buf1[6]>=60)time_buf1[6]=0;}//显示if(Wei!=0)display_NYR(time_buf1,Wei,SS);}//调价else if(Mode==2){//单价if(JGWei==1){DanJia++;if(DanJia>999){DanJia=1;}}//等待时间单价else if(JGWei==2){DJ_min++;if(DJ_min>999){DJ_min=1;}}//夜间else if(JGWei==3){Night++;if(Night>999){Night=1;}}//白天else if(JGWei==4){Day++;if(Day>999){Day=1;}}display_D(Day,Night,DanJia,JGWei,DJ_min);}while(K3==0);}//-if(K2==0){delay(100);//调时if(Mode==0){//年if(Wei==1){time_buf1[1]--;if(time_buf1[1]<0)time_buf1[1]=99;}//月else if(Wei==2){time_buf1[2]--;if(time_buf1[2]<=0)time_buf1[2]=12;}//日else if(Wei==3){time_buf1[3]--;if(time_buf1[3]<=0)time_buf1[3]=YDay(time_buf1[1],time_buf1[2]);}//时else if(Wei==4){time_buf1[4]--;if(time_buf1[4]<0)time_buf1[4]=23;}//分else if(Wei==5){time_buf1[5]--;if(time_buf1[5]<0)time_buf1[5]=59;}//秒else if(Wei==6){time_buf1[6]--;if(time_buf1[6]<0)time_buf1[6]=59;}//显示if(Wei!=0)display_NYR(time_buf1,Wei,SS);}//调价else if(Mode==2){//单价if(JGWei==1){DanJia--;if(DanJia==0){DanJia=999;}}//等待时间单价else if(JGWei==2){DJ_min--;if(DJ_min==0){DJ_min=999;}}//夜间else if(JGWei==3){Night--;if(Night==0){Night=999;}}//白天else if(JGWei==4){Day--;if(Day==0){Day=999;}}display_D(Day,Night,DanJia,JGWei,DJ_min);}while(K2==0);}//切换if(K1==0){delay(100);//计价器模式if(Mode==1){Mode=0;ZJ=0;GL=0;Time=0;//开启定时器TR0=0;EX0=0;//显示计价器Init_LCD();}else if(Mode==0){Mode=1;//参数初始化//读初值READS();ZJ=0;GL=0;Time=0;//开启定时器m=0;TR0=1;EX0=1;//显示计价器Init_LCD_JJQ();}while(K1==0);}}}//初始化函数void InitTimer0(void){TMOD = 0x01;TH0 = 0x3C;TL0 = 0xB0;//10msEA = 1;ET0 = 1;TR0 = 1;IT0=1;//INT0负跳变触发EX0=0;//开外部INTO中断}//定时器0中断10msvoid Timer0Interrupt(void) interrupt 1{TH0 = 0x3C;TL0 = 0xB0; //赋初值m++;if(m>=20){m=0;if(count>=60){GT=0;GL=GL+count/10;count=0;}else{count=0;GT=1;Time++; //时间++}}//计算钱数//公里数小于3if(GL<=300){if(DN==0){if(Time>60)ZJ=Day+Time/60*DJ_min;elseZJ=Day;}else{if(Time>60)ZJ=Night+Time/60*DJ_min;elseZJ=Night;}}else{if(DN==0){if(Time>60)ZJ=Day+(GL/10-20)/10*DanJia+Time/60*DJ_min;elseZJ=Day+(GL/10-20)/10*DanJia;}else{if(Time>60)ZJ=Night+(GL/10-20)/10*DanJia+Time/60*DJ_min;elseZJ=Night+(GL/10-20)/10*DanJia;}}}void EXINT0() interrupt 0{count++;}//读初值void READS(){uchar SH=0,SL=0;uint temp=0;delay(10);SL=read_add(0x01);delay(10);SH=read_add(0x02);temp=SH;temp=temp<<8;temp=temp+SL;Day=temp;delay(10);SL=read_add(0x03);delay(10);SH=read_add(0x04);temp=SH;temp=temp<<8;temp=temp+SL;Night=temp;delay(10);SL=read_add(0x05);delay(10);SH=read_add(0x06);temp=SH;temp=temp<<8;temp=temp+SL;DanJia=temp;delay(10);SL=read_add(0x07);delay(10);SH=read_add(0x08);temp=SH;temp=temp<<8;temp=temp+SL;DJ_min=temp;}//写初值void SETS(){uchar SH=0,SL=0;uint temp=0;temp=Day;SL=temp&0x00ff;SH=temp>>8;delay(10);write_add(0x01,SL);delay(10);write_add(0x02,SH);temp=Night;SL=temp&0x00ff;SH=temp>>8;delay(10);write_add(0x03,SL);delay(10);write_add(0x04,SH); temp=DanJia;SL=temp&0x00ff;SH=temp>>8;delay(10);write_add(0x05,SL);delay(10);write_add(0x06,SH);temp=DJ_min;SL=temp&0x00ff;SH=temp>>8;delay(10);write_add(0x07,SL);delay(10);write_add(0x08,SH);}

原理图

设计说明书

摘要

​ 出租车行业在我国是八十年代初兴起的一项新兴行业,随着我国国民经济的高速发展,出租汽车已成为城市公共交通的重要组成部分。多年来国内普遍使用的计价器只具备单一的计量功能。目前全世界的计价器中有90%为台湾所生产。现在各个城市出租车行业都已普及,因此出租车计价器的技术已经成熟,但是出租车计价器的市场还具有广阔的前景。随着城市建设的日益完善,关乎城市面貌的出租车行业也将迅速发展,出租车计价器的的大批量需求也是毫无疑问的,所以未来出租车计价器的市场还是有相当大的潜力。

​ 本次出租车计价器设计可以分为六个模块,主控模块、计时模块、存储模块、显示模块、按键模块和电机驱动模块。本设计采用STC89C52单片机作为主控模块的主控芯片,结合单片机的外围电路实现对整个系统的控制,DS1302时钟芯片准确计时具有重新上电不用调时的功能,显示部分采用LCD1602液晶显示,24c02芯片可以掉电存储设置的计费数据,即使掉电也不会丢失设置的费用,3v直流电机模拟发动机工作,使整个设计更加逼真,当无乘客时液晶可以显示时间(年月日时分秒),时间可以按键设置,此时电机不工作;当有乘客时电机工作,可以通过按键开始计费系统工作,有清零键,收费可以修改(包括起价费、超过起价费每公里或分钟收费、白天和夜晚收费标准),可以切换白天和夜晚收费标准,可以按照分钟或公里收费切换。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是有一定的应用价值的。

设计清单(提供资料清单所有文件)

资料下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。