51单片机简易出租车计费系统仿真设计

news2024/12/25 2:30:41

51单片机简易出租车计费系统仿真设计( proteus仿真+程序+报告+讲解视频)

仿真图proteus 8.9及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0036

1.主要功能:

出租车计费系统设计内容:

1、用定时器时间模拟路程

2、前三秒以内8.00元,若超出3秒每增加一秒,价格增加1元。

3、用数码管显示价钱和时间

4、创新内容(用一个按键控制显示时间或价钱)

资料下载链接(可点击):

【腾讯文档】S0036 网盘链接

https://docs.qq.com/doc/DS0dNclRQU1pNWFpn

以下为本设计资料展示图:

2.仿真

开始仿真

开始仿真后前三秒以内8.00元,若超出3秒每增加一秒,价格增加1元。

数码管显示价钱或时间,通过按键切换显示。

img

3. 程序

img

部分程序代码

#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit p00=P0^0 ;
sbit p01=P0^1 ;
sbit p02=P0^2 ;
sbit p37=P3^7 ;
uint i,j;
uint code Seg[19]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x80};
//数码管译码表:   { 0  , 1 , 2 , 3 , 4  ,5    6     7   8    9    0    . }       P} 
uchar jps,ks,key_do;//键盘缓存,上次有按键按下标志位,按键已处理标志位
uint count_10ms=0,second=0;  
float cost;    //价钱
void delay(uint tt)  //延时函数
{
  uint i;
  for(;tt>0;tt--)
    for(i=0;i<200;i++);
 }

void LED(uint d1,uint d2)  
{
	if(d1==1)  P0=(P0|0xf0)&0x1f;
	if(d1==2)  P0=(P0|0xf0)&0x2f;
	if(d1==3)  P0=(P0|0xf0)&0x4f;
	if(d1==4)  P0=(P0|0xf0)&0x8f;
	P0=P0|0x0f;
	P1=Seg[d2];
}
int keyscan()     //键盘扫描函数
{
  int t=0;
  if(p00==0) { t=1; jps=1;}
  if(p01==0) { t=1; jps=2;}
  if(p02==0) { t=1; jps=3;}
  return(t);	
}
void money()    //价钱计算
{
  count_10ms++;
  if(count_10ms==100)
     {count_10ms=0;second++;}
  if(second<=3) cost=8.0;
	else if(second>3) cost=8.0+1*(second-3);
}
void ledshow()
{   
	while(j%2==0) 	//  价钱显示 
		{
			 LED(1,(int) (cost/10) );
       		 delay(5);
	   	     LED(2,(int) cost%10 );
       		 delay(5);
			 LED(3,(int) (cost*10)%10 );
       		 delay(5);
			 LED(4,(int) (cost*100)%10 );
       		 delay(5);
			 LED(2,11);
			 delay(5);
		} 
	
	while(j%2==1) 	//    时间显示    
       {
			LED(1,second/10);
 			delay(5);
			LED(2,second%10);
       		delay(5);
			LED(3,count_10ms/10);
       		delay(5);
			LED(4,count_10ms%10);
       		delay(5);
			LED(2,11);
       		delay(5);		
	   } 
			
}
void Time_fun() interrupt 1    //10ms中断函数
{
  uint k;
  if(k==15) { k=0; p37=1; }
    else k++;
  TH0=(0xffff-10000)/256;  //10ms
  TL0=(0xffff-10000)%256;  //10ms
  
  if(i%2==1) money();	//   暂停/播放  
  if((ks==1)&&(keyscan()==1)&&(key_do==0))
	 {						 
		k=0;
		p37=0;   //按键提示音
		key_do=1;
		if(jps==1) i++;  //   暂停/播放键 
		if(jps==2) j++; //    时间价钱显示转换
		if(jps==3)  //   清零键
			{
			  count_10ms=0;
			  second=0;
			  cost=0; 
			}
	 }	
  ks=keyscan();
  if(ks==0)  key_do=0;

}

main()
{   
	TMOD=0x01;     //Time0为16计数器
	TH0=(0xffff-10000)/256;
	TL0=(0xffff-10000)%256;
	TR0=1;    //打开定时器
	IE=0x82;  //EA=1  ET0=1  打开中断

	while(1)
    {
		ledshow();

    }
}

4.设计报告

报告格式规范,字数4528,含各种框图。

img

部分内容

系统需求及方案设计

2.1出租车计价器简介

以单片机AT89C51为核心设计一款多功能出租车计价器,该计价器能实现按时间和里程综合计算车价,能显示时间、总车价等相关信息显示。它比市场上的一些计价器使用更方便,功能更全,还具有有效防止司机作弊和系统稳定性好的优点。

2.2 设计要求

基于单片机的出租车计价器系统设计,基本实现出租车计价器的部分功能。

2.3 设计方案论证

根据系统的设计要求,用时间模拟路程设计出租车计价器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。选用时间模拟路程省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:将设计好的时间间隔发送到单片机上,经过51单片机处理,将把时间和价钱在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。

按照系统设计功能的要求,确定系统由5个模块组成:主控制器、时钟电路,复位电路,振荡电路和显示电路。

本课题以是AT89C51单片机为核心设计的一种出租车计价器,系统整体硬件电路包括,时钟电路,复位电路,振荡电路和显示电路,单片机主板电路等组成。

系统框图主要由主控制器、单片机复位、时钟振荡、LED显示、总体电路结构框图如图2.3所示。

img

5. 设计资料内容清单

下载方式见文章开头视频

img

资料下载链接(可点击):

https://docs.qq.com/doc/DS0dNclRQU1pNWFpn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1322492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDK17 SpringBoot3 整合常见依赖

JDK版本:17 SpringBoot 整合Mybatis Plus 、Redis等 依赖文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xs…

数据链路程协议

目录 数据链路层 介绍 以太网帧格式 目的地址 源地址 类型 CRC 数据 如何封装和解包 如何向上交付 MAC地址与IP地址 MTU 局域网数据转发 局域网数据碰撞 数据包转发 ARP协议 构建ARP请求 ARP请求的处理 ARP响应的构建 ARP欺骗 DNS域名解析 域名解析是什么…

标准IO与文件IO

标准IO通过缓冲机制减少系统调用&#xff0c;实现更高的效率 全缓冲&#xff1a;当流的缓冲区无数据或无空间时才执行实际IO操作 行缓冲&#xff1a;当在输入和输出中遇到换行符&#xff08;\n&#xff09;时&#xff0c;进行IO操作 当流和一个终端关联时&#xff0c;典型的行缓…

【06】GeoScene海图或者电子航道图数据自动化质检

1 S-58错误管理器验证产品 在你编辑数据时进行快速的质量检查可以使用S-58错误管理器&#xff0c;S-58错误管理器工具允许您使用IHO S-58验证标准来验证海事数据库中的产品。你可以验证整个产品&#xff0c;或验证产品的当前范围。 1.1验证产品 使用S-58错误管理器工具完成以…

服务器解析漏洞是什么?攻击检测及修复

服务器解析漏洞&#xff08;Server-side Include Vulnerability&#xff0c;SSI漏洞&#xff09;是一种安全漏洞&#xff0c;通常出现在支持服务器端包含&#xff08;SSI&#xff09;功能的Web服务器上。SSI是一种在Web页面中嵌入动态内容的技术&#xff0c;允许开发人员将外部…

Java 数据结构篇-实现二叉搜索树的核心方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 二叉搜索树的概述 2.0 二叉搜索树的成员变量及其构造方法 3.0 实现二叉树的核心接口 3.1 实现二叉搜索树 - 获取值 get(int key) 3.2 实现二叉搜索树 - 获取最小…

监控k8s controller和scheduler,创建serviceMonitor以及Rules

目录 一、修改kube-controller和kube-schduler的yaml文件 二、创建service、endpoint、serviceMonitor 三、Prometheus验证 四、创建PrometheusRule资源 五、Prometheus验证 直接上干货 一、修改kube-controller和kube-schduler的yaml文件 注意&#xff1a;修改时要一个节…

neo4j安装报错:neo4j.bat : 无法将“neo4j.bat”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

neo4j安装报错&#xff1a; neo4j.bat : 无法将“neo4j.bat”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确 保路径正确&#xff0c;然后再试一次。 解决办法&#xff1a; 在环境变量中的&#xff0c;用户…

手把手教你搭建谷歌Gemini

前言 谷歌上周推出了一款名为 Gemini 的多模态大模型&#xff0c;并且现在发布了免费开放的 Gemini API 供开发者使用。根据谷歌提供的定价信息&#xff0c;Gemini 有两种收费方式。免费版本每分钟可以进行 60 次请求&#xff0c;足够满足个人用户的需求。收费版本目前暂不可用…

你了解Redis中的跳跃表吗?

跳跃表的基本内容&#xff1a; 对于一个有序序列&#xff0c;链表相对于数组来说&#xff0c;删除和插入的效率要快很多&#xff0c;只需要改变指针的指向&#xff0c;但是在查找的时候&#xff0c;数组就要更占优势一些&#xff0c;可以随机访问&#xff0c;然而链表需要从头…

连接SSH报错 / 连接容器SSH

连接SSH报错 / 连接容器SSH 前言被控端主控端连接失败 前言 本文介绍如何通过SSH方式远程连接Linux被控端&#xff0c;并介绍如何解决连接失败问题。 此方法同样适用于SSH连接Docker容器。 被控端 被控端一般为Linux&#xff0c;默认已安装ssh&#xff0c;但需要手动安装ope…

C++ OJ题测试—排序算法效率

目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规&#xff1a; 第二种&#xff1a; 四、 堆排序 五、冒泡排序 六、快速排序 常规&#xff1a; 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​ 一、直接插入排序 class Solution { pub…

Gateway No servers available for service

springCloud集成网关测试报错找不到服务&#xff0c;如下 造成这种错误可能是下面两种原因 1、nacos注册的服务不在一个命名空间内&#xff0c;导致找不到服务503 spring cloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extensio…

探索Qt 6.3:了解基本知识点和新特性

学习目标&#xff1a; 理解Qt6.3的基本概念和框架&#xff1a;解释Qt是什么&#xff0c;它的核心思想和设计原则。学会安装和配置Qt6.3开发环境&#xff1a;提供详细的步骤&#xff0c;让读者能够顺利安装和配置Qt6.3的开发环境。掌握Qt6.3的基本编程技巧&#xff1a;介绍Qt6.…

欧洲版OpenAI疑似将在24年发布并开源GPT-4级别模型!

大家好&#xff0c;我是二狗。 今天在推特上看到一条振奋人心的消息&#xff1a; “ 欧洲版OpenAI、法国初创公司 Mistral 首席执行官 Arthur Mensch 在法国国家广播电台宣布&#xff0c;Mistral 将在 2024 年发布开源 GPT-4 级别模型。” 这位老哥接着表示甚至可能是免费的&a…

C++ STL——栈和队列(stack queue)

本节目标 1.stack的介绍和使用及其模拟实现 2.queue的介绍和使用及其模拟实现 3.priority_queue的介绍和使用及其模拟实现 4.容器适配器 1.stack的介绍和使用及其模拟实现 1.1 stack的介绍 stack的文档介绍 根据stack的文档介绍可以知道&#xff0c;stack是一种容器适配器…

原生微信小程序-使用 阿里字体图标 详解

步骤一 1、打开阿里巴巴矢量图标库 网址&#xff1a;iconfont-阿里巴巴矢量图标库 2、搜索字体图标&#xff0c;鼠标悬浮点击添加入库 3、按如下步骤添加到自己的项目 步骤二 进入微信开发者工具 1、创建 fonts文件夹 > iconfont.wxss 文件&#xff0c;将刚才的代码复制…

结果实例: 一个cpu的parsec结果

简介 限于篇幅限制&#xff0c;很多教程和论文只展示部分结果。我们这里展示非常细节的结果&#xff0c;包括输出的许多命令行结果。 运行命令行 的shell窗口 ./build/X86/gem5.opt -d m5out/onlyoneCPUkvmCheckPointDifferRCS20231218restore \configs/deprecated/example/…

杰发科技AC7840——SPM电源管理之低功耗模式

0、SPM简介 很早以前就听过低功耗模式&#xff0c;一直没有怎么深入了解&#xff0c;最近遇到几个项目都是跟低功耗有关。正好AutoChips的芯片都有电源管理的功能&#xff0c;在此借用AC7840的SPM对低功耗进行测试。 1、AC7840的5种功耗模式 2、AC7840的模式转换 3、唤醒 在…

Kubernetes 的用法和解析 -- 5

一.企业级镜像仓库Harbo 准备&#xff1a;另起一台新服务器&#xff0c;并配置docker yum源&#xff0c;安装docker 和 docker-compose 1.1 上传harbor安装包并安装 [rootharbor ~]# tar xf harbor-offline-installer-v2.5.3.tgz [rootharbor ~]# cp harbor.yml.tmpl harbor…