【Proteus仿真】【51单片机】出租车计价器

news/2024/4/19 0:05:43

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、蜂鸣器模块、DS1302时钟、速度检测模块、
直流电机驱动,票据打印等。
主要功能:
系统运行后,LCD1604显示当然日期时间,白天/夜晚状态,行驶距离,等待时间,计费及行驶状态;
首先选择处于白天还是夜晚计费模式,即控制S2开关是否闭合,闭合是夜晚,反之白天;
当S1开关闭合时,计费开始,小车开始行驶,根据所选模式计费,显示当前行驶距离和费用,可调节电位器模拟小车行驶速度变化,行驶距离及计费时间长短也将随之变化,当S3开关闭合时,小车进入等待状态,如超出起步价距离,则开始计算等待时间计费,等待时间开始计时,当S3开关断开,小车继续行驶;当S1开关断开,表示行驶结束,蜂鸣器发出提示音,停止计费;可闭合S4开关打印发票,串口显示当然行驶距离和费用。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///系统功能控制
void sys_fun_ctrl(void)
{static u8 oneflag=0;//运行开始if(sys_ctrl.run==1){oneflag=0;motor_fr_run();TR0=1;//打开定时器//如果是晚上if(sys_ctrl.daynight==1){sys_ctrl.price_s=10;//起步价10sys_ctrl.perkil=2.5;//每公里价格	}//如果是白天else{sys_ctrl.price_s=8;//起步价8sys_ctrl.perkil=2.0;//每公里价格	}//如果小于2.5公里if(sys_ctrl.dis<2.5)sys_ctrl.runprice=sys_ctrl.price_s;//如果大于2.5公里else//行驶总价=起步价+公里数*每公里价格sys_ctrl.runprice=sys_ctrl.price_s+(sys_ctrl.dis-2.5)*sys_ctrl.perkil;}//运行暂停else if(sys_ctrl.run==2){motor_stop();//如果大于2.5公里if(sys_ctrl.dis>=2.5)//等待总价=等待时间*20/每小时sys_ctrl.witeprice=((float)(sys_ctrl.min*60+sys_ctrl.sec)*20/3600);}//停止else if(sys_ctrl.run==0){motor_stop();TR0=0;//关闭定时器if(sys_ctrl.totprice>0)//代表行驶结束{if(oneflag==0)//仅蜂鸣1次{oneflag=1;beep_alarm(4,50000);//蜂鸣器提示}}	}//总价=行驶总价+等待总价sys_ctrl.totprice=sys_ctrl.runprice+sys_ctrl.witeprice;	
}//应用控制系统
void appdemo_show(void)
{sys_parm_init();//系统参数初始化lcd1604_init();
//	ds1302_init();time0_init();//定时器初始化UART_Init();//串口初始化9600sys_open_show();//系统开机界面显示	while(1){	sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}//定时器0中断函数
void time0() interrupt 1
{	static u8 i=0;TH0=0xDC;TL0=0x00; i++;if(i>=100)//1S到{i=0;if(sys_ctrl.run==1)//运行{sys_ctrl.dis+=(float)sys_ctrl.speed*1/3600;//公里/S		}else if(sys_ctrl.run==2)//等待{sys_ctrl.sec++;if(sys_ctrl.sec>=60)//1分到{sys_ctrl.sec=0;sys_ctrl.min++;if(sys_ctrl.min>=60)//1小时到{sys_ctrl.min=0;sys_ctrl.hour++;if(sys_ctrl.hour>=24)//到达最大计时{	sys_ctrl.hour=0;	}}}		}}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。


https://dhexx.cn/news/show-4626967.html

相关文章

数据库之主键、联合主键

参考文章&#xff1a;数据库之主键、联合主键 一、主键、联合主键简介 数据库主键是用来标记数据记录唯一性的列&#xff0c;不能为空&#xff0c;不能重复。 主键具有的特点&#xff1a;唯一性、非空性。 数据库联合主键&#xff1a;可以将多个列同时作为主键。&#xff0…

笔试强训 Day 7

选择题&#xff1a; 1.在&#xff08;&#xff09;情况下适宜采用 inline 定义内联函数 A 函数体含有循环语句 B 函数体含有递归语句C 函数代码少、频繁调用 D 函数代码多&#xff0c;不常调用 复习一下内联函数 在编译阶段&#xff0c;会将内联函数展开 —— 将函数调用替换成…

基于深度学习的高精度推土机检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度推土机检测识别系统可用于日常生活中检测与定位推土机目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的推土机目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训…

【react全家桶】react-Hook (下)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 15【react-Hook &#xff08;下&#x…

深度学习论文分享(三)Look More but Care Less in Video Recognition(NIPS2022)

深度学习论文分享&#xff08;三&#xff09;Look More but Care Less in Video Recognition&#xff08;NIPS2022&#xff09; 前言Abstract1. Introduction2 Related Work2.1 Video Recognition2.2 Redundancy in Data&#xff08;数据冗余&#xff09; 3 Methodology3.1 Arc…

【018】C++的指针数组和数组指针

C 指针数组和数组指针 引言一、指针数组1.1、数值的指针数组1.2、字符的指针数组1.3、二维字符数组 二、指针的指针三、数组指针3.1、数组首元素地址和数组首地址3.2、数组指针的使用示例3.3、二维数组和数组指针的关系 四、多维数组的物理存储总结 引言 &#x1f4a1; 作者简介…

VTK 开发中遇到问题整理

1 Generic Warning VTK 开发 中是到 vtkOutputWindow 弹窗并提示Generic Warning&#xff1a;… vtkOutputWindow 弹窗 解决方法&#xff1a; 添加&#xff1a; #include <vtkOutputWindow.h> 在 main.cpp函数中添加&#xff1a; vtkOutputWindow::SetGlobalWarningD…

四、若依(前后端分离)项目构建docker 镜像

若依(前后端分离&#xff09;项目构建docker 镜像 1. 构建好ruoyi-admin.jar包&#xff0c;上传到服务器项目目录下 2. 创建conf目录将若依项目&#xff08;Spring boot &#xff09;配置文件修改好&#xff0c;上传存入conf目录 注意&#xff1a;这里的地址不能写127.0.0.1和…

Rust每日一练(Leetday0013) 解数独、外观数列、组合总和

目录 37. 解数独 Sudoku Solver &#x1f31f;&#x1f31f;&#x1f31f; 38. 外观数列 Count and Say &#x1f31f;&#x1f31f; 39. 组合总和 Combination Sum &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Gola…

2023年第三届陕西省大学生网络安全技能大赛--本科高校组 Reverse题解

文章目录 一. 我的upx -d怎么坏了1. 查看节区信息2. 动态调试脱壳3.输出迷宫图4.走迷宫 二. babypython1.字节码简单分析2. gpt分析3. 程序逻辑4.解题脚本 三. BadCoffee1. 相关文章2.解混淆3.解题脚本 四. Web&Assembly(暂时没复现出来,提供一些相关文章)总结 这次比赛做出…