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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Burp漏洞扫描指南

burp是web渗透测试中最常用的工具之一。可以通过抓包请求&#xff0c;分析站点漏洞等。是安全爱好者最喜欢的工具。本文让我们一起来学习利用burp进行站点漏洞扫描。 总体而言&#xff0c;burp的扫描方式分为被动扫描和主动扫描两者方式。现对这两种方式进行详细的说明。注意&a…

力扣刷题记录(16)LeetCode:62、63、343、96

目录 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树 总结 这题比较简单&#xff0c;直接声明一个二维数组来保存到达该点有几种路径。到达当前点的方法由当前点的左边格子和右边格子决定。 class Solution { public:int uniquePaths(int m, int n)…

接口测试和测试用例分析

只要有软件产品的公司百分之九十以上都会做接口测试&#xff0c;要做接口测试的公司那是少不了接口测试工程师的&#xff0c;接口测试工程师相对于其他的职位又比较轻松并且容易胜任。如果你想从事接口测试的工作那就少不了对接口进行分析&#xff0c;同时也会对测试用例进行研…

day21二叉树(七)

day21 代码随想录 2023.12.19 1. 530二叉搜索树的最小绝对差 害&#xff0c;开始题目看错了&#xff0c;以为求的是相连节点&#xff0c;也就是父子节点最小绝对差&#xff0c;结果提交某些测试用例没通过&#xff0c;才发现求的是任意不同节点&#xff0c;这里把我写的父子节…

抖店需要多少资金?如何开通?具体流程如下!

我是电商珠珠 新手开抖店最关心的就是资金问题&#xff0c;在网上关于抖店的资金多少的都有&#xff0c;几百几千的都有。 各个回答都不一样。 另外一个问题就是怎么开通&#xff0c;今天我就来给大家详细的讲一下。 一、资金 入驻抖店需要办理一张个体工的营业执照&#…

NLP论文阅读记录 - AAAI-23 | 01 Cogito Ergo Summ:通过语义解析图和一致性奖励对生物医学论文进行抽象总结

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1抽象概括2.2图增强摘要2.3 抽象概括的强化学习 三.本文方法COGITOERGOSUMM 框架3.1 问题陈述3.2 图表构建**事件图****AMR 图****图合并和重新连接**Model文本编码器图编码器解码器…

鸿蒙(HarmonyOS)应用开发—— video组件实操

video 组件 harmonyOS 系统提供了基础的video。下面就直接上代码 原始video 新建项目 customVideo项目 本地视频 网络地址&#xff0c;就不用说明&#xff0c;只需要把地址换成网络地址即可 在resource 文件夹下的rawfile文件夹下 添加视频 在index.ets Video({src:$rawf…

关于设计师的自我评价(合集)

设计师的自我评价篇一 本人接受过正规的美术教育&#xff0c;具有较好的美术功底及艺术素养&#xff0c;能够根据公司的需要进行设计制作&#xff0c;熟练掌握多种电脑制作软件&#xff0c;能够高效率地完成工作。本人性格开朗、思维活跃、极富创造力&#xff0c;易于沟通&…

JVM性能调优准备之Visual GC插件

文章目录 jvisualvm安装Visual GC插件Visual GC插件功能介绍区域划分spaces区域Graphs区域Histogram区域 oracle官方文章介绍 jvisualvm安装Visual GC插件 以管理员身份打开cmd命令行窗口查看JDK版本&#xff08;Visual GC插件需要对应JDK的版本&#xff09; 在cmd窗口输入 j…

揭秘`v-if`和`v-show`的区别:选择正确指令的技巧(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

AI抠图软件哪个好用?推荐这三款抠图工具给你

AI抠图软件哪个好用&#xff1f;你是否听说过AI抠图这个操作呢&#xff1f;简单来说&#xff0c;抠图就是一种对图像进行处理的技术&#xff0c;它的目的是将图片中的某些区域去除或者替换。比如&#xff0c;如果你有一张背景很杂乱的图片&#xff0c;你想把背景去掉&#xff0…

Leetcode—49.字母异位词分组【中等】

2023每日刷题&#xff08;六十四&#xff09; Leetcode—49.字母异位词分组 实现代码 class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string, vector<string>> mp;for(auto str: s…

uniapp图片上传说明

目录 1.文件上传组件 2.单文件上传 3.多文件上传 4.注意点 1.文件上传组件 前端上传组件使用uni-file-picker&#xff0c;可以自行进行下载使用。默认上传到绑定的服务空间&#xff0c;配置属性auto-upload为false关闭自动上传&#xff0c;可以限定上传的是图片还是文件&am…

【PHP入门】1.3-数据类型、转换、判断

-数据类型- 数据类型&#xff1a;data type&#xff0c;在 PHP中指的是存储的数据本身的类型&#xff0c;而不是变量的类型。 PHP是一种弱类型语言&#xff0c;变量本身没有数据类型。 1.3.1PHP的八种数据类型 在PHP中将数据分为三大类八小类&#xff1a; 简单&#xff0…

JavaSE学习笔记 Day20

JavaSE学习笔记 Day20 个人整理非商业用途&#xff0c;欢迎探讨与指正&#xff01;&#xff01; 上一篇 文章目录 JavaSE学习笔记 Day20十七、数据结构与算法17.1算法17.1.1冒泡排序17.1.2选择排序17.1.3插入排序17.1.4三个排序的区别 17.2顺序表17.2.1顺序表代码实现17.2.2顺…

JavaEE:线程池精讲

目录 一.什么是线程池 二.线程池的实现原理 &#x1f388;为什么要有工厂模式&#xff1f; 三.线程池的构造方法解读 &#x1f388;线程池的拒绝策略 四.自己实现一个线程池 一.什么是线程池 简单来说&#xff0c;线程池就好比一块鱼塘&#xff0c;鱼塘中的每条鱼就是一个线程…

HackTheBox - Medium - Windows - Authority

Authority 终于把easy的机器刷的八八九九了&#xff0c;开始新一轮的Medium机器&#xff0c;Medium难度以上的我都会写wp&#xff0c;保持学习&#xff0c;我的CRTO进度也快结束了。 Authority是一台中等难度的 Windows 计算机&#xff0c;它强调了错误配置、密码重用、在共享…

2023 英特尔On技术创新大会直播 |让更多人了解AI魅力

2023 英特尔On技术创新大会直播 |让更多人了解AI魅力 前言&#xff1a;主要领域:人工智能&#xff1a;使用 OpenVINO™ 落地边缘端生成式 AIOpenVINO™学习总结&#xff1a; 新一代 AI PC计算平台&#xff1a;新一代至强平台&#xff1a;边云协同&#xff1a;先进技术&#xff…

深入探索Git的高级技巧与神奇操作(分支,高效合并)

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 深入探索Git的高级技巧与神奇操作 前言强制推送的妙用1. 什么是强制推送&#xff1f;2. 为什么需要使用强制推送&#xff1f;3. 强制推送的风险与注意事项4. 如何正确、安全地执行强制推送步骤&#x…

JDK21+HADOOP3.2.2+Windows安装步骤

哈哈哈 最近转战大数据这块了&#xff0c;分享一下hadoop3.2.2的安装步骤 借鉴了不少大佬的文章&#xff0c;如有雷同&#xff0c;都是大佬们的 1.JDK安装 我选择的是JDK21 以下是下载网址和截图&#xff0c;这个没有太多的&#xff0c;一般下载最新的就可以 JDK: Java Down…