电子信息工程自动化 基于单片机的出租车计价器设计
摘 要
出租车作为一种城市中非常重要的公共交通工具,他与人们的生活息息相关。所以我也设计了一款出租车计价器,它采用模块化设计,包含里程测量模块、数据存储模块、按键模块、时钟模块、显示模块、语音播报模块六大主要模块。本设计的出租车计价器是以STC89C52单片机为核心,利用霍尔传感器在磁场变化时产生脉冲的原理实现里程测量,并将单价储存在片外储存芯片中,以防止断电后数据丢失。系统控制是用了六个独立的按键,它们分别负责调整时间、时间加、时间减、切屏、白天夜晚切换、开始暂停等功能,司机通过它们完成对计价器的使用与调整。还用了DS1302芯片做了一个实时时钟,它有双电源可以实现断电也不用调时的功能。显示用的是LCD1602液晶屏,可以显示里程和单价等内容。最后用了WT588D语音芯片实现语音播报,要先将语音录制好并存入芯片,使用时按照语音地址进行调用,将一个个地址组合起来就可以实现播报一句话。最终,该计价器可以实现计程计价、计时计价、白天/夜晚不同价格计价的功能,并在行程结束可以语音播报价格和行驶里程,空车时还可以用来显示年月日、时间及星期等信息。
关键词:出租车计价器;单片机;霍尔传感器;模块化
硬件设计
本章节介绍了本设计的出租车计价器硬件设计内容,包含几大模块的主要器件介绍以及电路设计原理。相比普通模拟电路控制,采用单片机设计出租车计价器的功能更强大,而且用较少的硬件和适当的软件的配合就可容易实现[3]。
1单片机最小系统设计
1.1单片机简介
本设计采用的51单片机STC89C52芯片,如图1所示,是STC89C51的升级版本,STC89C52是8位微处理器,有8K的ROM。
图1 STC89C52芯片示意图
里程测量电路设计
1里程测量电路如图所示,传感器输出的脉冲信号先输入74CH14芯片再由芯片输出经过处理的电平。74CH14是一款可以对波形整形的芯片,可以让缓慢输入的信号变得干脆清晰。上电后OUT1输出高电平,只有磁铁靠近霍尔传感器OUT1才输出低电平。OUT1接单片机P3.2引脚,磁铁每次经过霍尔传感器都会产生高低电平变化,而单片机可以对此脉冲进行计数。根据这个原理,如果将磁铁安在车轮上就可以实现对车轮转动圈数计数,而轮胎尺寸是固定的,就可以算出行驶里程。
图 霍尔传感器接线图
2霍尔传感器的安装
霍尔传感器模块设计完成后需要安装在合适的位置,目的是为了测量车辆的行驶里程,则我选择在汽车轮毂上安装磁铁,然后将传感器安装在合适的位置。安装方法如图所示,磁铁装在轮毂上要能够激发传感器,传感器信号输出端与单片机相连。
图2 霍尔传感器安装示意图
数据存储模块
1AT24C02简介
为了方便使用,本设计采用AT24C02作为外部存储,用于存储设定好的单价,使其重新上电后不用重新设置价格。AT24C02是来自美国Atmel公司的一款COMS低功耗EEPROM,其内存有2K,基本特征主要表现在体积小、数据难丢失、抗干扰能力强、10ms以内的写入速度、10000次以上的擦写次数、2.5~5.5V的宽工作电压等方面[8]。芯片封装及引脚如图所示。该芯片传输信息可以采用IIC总线的方式,就是它只要一根信号线和一根数据线就可以和与它相连接的芯片进行数据交换,这种方式既简单方便又减少I/O口的占用。IIC总线是由Philips公司开发的一种简单、双向二线制同步串行总线。
图1 AT24C02引脚示意图
显示模块
1LCD1602简介
本设计的显示模块选择了一块功能强大的液晶显示屏LCD1602,这是一块比较常见的显示屏。该显示器操作方便,耗电量低,显示质量高,是目前工控系统中最为广泛使用的一种液晶屏[12]。LCD1602有带背光和不带背光两种,这里考虑到车内一般不开灯所以选用的是带背光的。LCD1602液晶显示屏一共可以显示两行字符,每一行是可以显示16个字符一起是32个字符,如图1所示。它可以采用+5V供电,并且对比度还可以调,直接接地对比度最高。
图1 LCD1602结构图
软件设计
出租车计价器的软件设计包括5个主要部分,分别是主程序、DS1302子程序、LCD1602子程序、WT588D子程序、里程测量子程序。
1主程序程序流程图
整个系统的主程序流程图如图1所示。开机通电后,首先单片机会去片外存储器内读取上次设置的单价,然后完成实时时钟的初始化和时间读取,语音模块初始化和霍尔传感器模块初始化之后,在LCD1602上显示现在的实时时间信息,接下来单片机就不断的扫描整个程序,只有当有按键按下才会进入按键设置的程序内,判断出是哪个按键按下后执行对应的功能,完成后跳出按键程序继续扫描。
图1 主程序流程图
结论
本设计严格按照任务书的内容进行,本次设计中我们利用STC89C52单片机完成了简单的出租车计价器设计,能够显示实时时钟、行驶里程、等待时间、单价、总价等信息,能按键控制等功能。在完成本设计的期间,我查阅了很多资料,几乎把所学过的所有知识都过了一遍。本设计内包含的一些模块比如LCD1602和DS1302这些芯片之前就几乎没接触过,然后我就先去购买过来然后联系商家请求帮助,商家一般都会提供很多资料,然后我就结合资料和网上的一些应用实例自己学习,最后也是可以熟练的使用这些新的器件了。当然,在完成设计期间也出现一些问题,比如焊接断路和虚焊;又比如程序出现各种BUG等等。当然,这些问题我都通过查资料、向同学请教等途径一一解决了。完成本次的毕业设计后我觉得自己学到了很多东西,不仅仅是对课堂所学知识进行了拓展,也学到了很多新的东西。在学习与实践的过程中,取长补短,不断学习新的东西,不断汲取别人的经验丰富自己的阅历。回顾整个毕业设计过程,期间有一开始的紧张与期待、有中期的激动与失望、也有后期完成时的放松与成就感。经过这次的毕业设计我提升了自己自学能力和动手能力,经验和心性也有很大提升,之后我也会不断学习,不断尝试改进本设计。
参考文献
[1]周永超,李志广,张辉,张志东.液晶显示出租车计价器设计[J].现代显示,2012(11):29-33.
[2]雍才富,史宏俊,莫岳平.智能出租车计价器设计[J].科技创新与应用,2016(8):23-24.
[3]张东晖.浅谈出租汽车计价器的原理及误差来源[J].计量与测试技术,2018,45(4):91-92.
[4]毛小辉,张建新.基于AT89C51单片机的出租车计费器设计[J].嘉兴学院学报,2013,25(3):110-113.
[5]曹洪奎,刘鹏,岳城,彭冲.出租车合乘计价器的设计[J].电子世界,2019,37(08):175-176.
[6]叶磊,黄莹,齐轩晨,刘艳.基于430单片机的出租车计价器设计与实现[J].微型机与应用,2015,34(2):92-95.
[7]沈中伟,刘国政,黄筱潇.基于STC单片机的非预约式合乘出租车计费系统设计[J].价值工程,2019(2):278-279
[8]凌璟.基于VHDL的出租车计价器设计[J].自动化应用,2010(2):15-16-18. [9]袁中行.基于单片机的出租车计价器设计[J].科技创新与应用,2017(9):60-61.[10]高锋.出租车计价器作弊检测系统的设计与研制[D].东南大学,2015. [11]李学君,李波.基于PIC单片机的多功能出租车计价器设计[J].仪表技术,2010(9):33-35.
[12]朱万友,张金花.基于STC89C52单片机的出租车计价器设计[J].农业装备与车辆工程,2018,56(5):92-94.
[13]刘炳岳,王忠华,周香林.基于STC89C52的出租车计价器设计[J].科技广场,2016(6):183-185.
[14]路国庆,赵晓博,胡立强等.脉冲检测方法的霍尔传感器在里程表的应用[J].机械设计与制造,2009(1):87-88.
[15]彭泉,翟娟,王世豪等,基于单片机的出租车计价器[J].新型工业化,2020,10(8):26-30.
相关文章:
电子信息工程自动化 基于单片机的出租车计价器设计
摘 要 出租车作为一种城市中非常重要的公共交通工具,他与人们的生活息息相关。所以我也设计了一款出租车计价器,它采用模块化设计,包含里程测量模块、数据存储模块、按键模块、时钟模块、显示模块、语音播报模块六大主要模块。本设计的出租车…...
CentOS 二进制安装部署MongoDB 4.0
一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件ÿ…...
SQL面试题——京东SQL面试题 合并数据
京东 合并数据 几天的题目来自知名电商平台京东 已知有数据A如下,请分别根据A生成B和C。 数据A +-----+-------+ | id | name | +-----+-------+ | 1 | aa | | 2 | aa | | 3 | aa | | 4 | d | | 5 | c | | 6 | aa | | 7 | aa | | …...
windows安装使用conda
在Windows系统上安装和使用Conda的详细步骤如下: 一、下载Conda安装包 访问Conda的官方网站Anaconda | The Operating System for AI,点击“Downloads”按钮。在下载页面,选择适合您系统的安装包。通常,对于Windows系统…...
C++知识整理day4内存管理——new和delete详解
文章目录 1.C/C内存分布2.C语言中动态内存管理:malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别?4.1 对于自定义类型4.2 对于自定义类型4.3 总结:它们…...
STM32 自学笔记
摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 RAM vs ROM vs FLASH 2013-09-05记录,ROM和RAM指的都是半导体存储器,ROM是Read Only …...
spring通过RequestContextHolder获取HttpServletRequest对象
1.获取HttpServletRequest对象方法: public static HttpServletRequest getRequest() {ServletRequestAttributes attributes ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());assert attributes ! null;return attributes.getRequest(…...
【特殊子序列 DP】力扣1137. 第 N 个泰波那契数
泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n 4 输出:4 解释: T_3 0 1 1 2 T_4 1 …...
tcp连接设置一个超时时间(没在操作系统层面设置)
await asyncio.open_connection(ip, port, limit1024)代码是使用了操作系统的TCP连接,正常TCP连接的时候会有重试机制,当第一个SYN没有回复的时候,会再重试4次,每次间隔1s, 2s,4s, 8s,我觉得太慢了…...
03、Node.js安装及环境配置
1.下载node.js 下载地址:Node.js 2.安装 2.1 自定义安装路径(可以选择默认) 下图根据本身的需要进行,我选择了默认Node.js runtime,然后Next: Node.js runtime :表示运行环境 npm package mana…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit
1.问题描述: DynamicDnsRule有没有示例?这个地址是怎么解析出来 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/remote-communication-rcp-0000001770911890#section8160554134811 解决方案: ‘DynamicDnsRule’&a…...
WebStorm快捷键保持跟Idea一致
修改连续行局部多选 在WebStorm中同时按下ctrl alt s; 选择KeyMap 输入Column Selection Mode选择快捷键, 右键选择Add Mouse Shortcut 按下alt 鼠标左键 如果出现占用的情况,直接删除其他使用该快捷键的地方即可; 修改跨行局部多选 在…...
14、鸿蒙学习——管理通知角标
针对未读的通知,系统提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。 通知增加时,角标上显示的未读通知个数需要增加。 通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时࿰…...
【词向量表示】Word2Vec原理及实现
文章目录 Word2VecHow achieveLookup tableCodingPre-dataingModelNegative sameple Word2Vec 单词与单词之间的向量往往不在同一个向量空间,例如,传统的编码方式:one-hot编码,不同单词[1, 0, 0]和[0, 1, 0]之间的余弦相似度为0。…...
【C++】位图
Ⅰ、bitset的介绍 位图: 就是用 比特位 来标识某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。 位图的接口: 成员函数 功能 set 设置指定位或所有位 reset 清空指定位或所有位 flip …...
性能测试需求分析(超详细总结)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、客户方提出 客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融、电信、银行、医疗器械等;他们…...
React开发 - 技术总结系列二
HOC 初体验 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。 简单点说,就是组件作为参数,返回值也是组件的函数&#x…...
Spring事务实现原理
我们一般将Spring事务使用在数据库操作上面,用来保证数据的一致性和完整性 实现原理: 通过AOP和事务管理器实现的 1.AOP拦截: 拦截Transactional注解的方法调用 2.事务管理器: 负责事务的开启,提交和回滚 3.事务…...
云服务器部署upload-labs-docker(文件上传靶场)环境 以及相关报错问题
环境的搭建 准备:云服务器(本地的linux服务器(版本最好不要是老的不然不兼容docker)) f8x配置docker环境: https://github.com/ffffffff0x/f8x 一键配置 docker拉取file-labs靶场 https://github.com…...
Python进阶编程总结
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤
目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…...
vue3 实现音频转文字组件
使用recorder-core第三方插件实现音频转纯文本的功能。 工具类文件 recoder.ts import Recorder from recorder-core import recorder-core/src/engine/wav import recorder-core/src/extensions/lib.fft.js import recorder-core/src/extensions/frequency.histogram.view i…...
MySQL各种锁详解
什么是锁? 1.1 锁的解释 计算机协调多个进程或线程并发访问某一资源的机制。 1.2 锁的重要性 在数据库中,除传统计算资源(CPU、RAM、I/O等)的争抢,数据也是一种供多用户共享的资源。 如何保证数据并发访问的一致性&…...
前端工程 Node 版本如何选择
1. Node 与 Npm 版本对应 这是一个必知必会的问题,尤其是对于维护那些老掉牙、一坨坨、非常大的有着长期历史的老破大工程。 1.1. package-lock.json 版本 首先你要会看项目的 package-lock.json 文件中的 lockfileVersion 版本号,这对于 NPM 安装来说…...
新增白名单赋予应用安装权限
目录 相关问题 具体实现 相关问题 安装app到/data/分区时,如何在安装阶段就赋予权限,无需请求权限 具体实现 frameworks/base/core/res/res/values/config.xml <!-- For whitelis apk --><string-array translatable"false" nam…...
学习Python的笔记14--迭代器和生成器
1.迭代器(Iterator) 概念: 迭代意味着重复多次,就像循环一样。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 1.iter…...
【Golang】Golang基础语法之面向对象:结构体和方法
面向对象——结构 Go 仅支持封装,不支持继承和多态;继承和多态要做的事情交给接口来完成,即——面向接口编程。Go 只有 struct,没有 class。 定义一个最简单的树节点(treeNode)结构,方法如下&…...
重磅升级:OpenAI o1模型上手实测,从芯片架构分析到象棋残局判断的全能表现
引言 昨日,在圣诞节系列发布会的第一天,OpenAI终于给我们带来了令人振奋的更新,这些更新有望塑造AI互动的未来。备受期待的OpenAI o1正式版的推出,标志着ChatGPT体验的重大进化,宣告了AI驱动应用新时代的开始。o1现已可…...
Pandas处理和分析嵌套JSON数据:从字符串到结构化DataFrame
在数据分析领域,我们经常遇到需要从非结构化数据中提取有用信息的场景。特别是当数据以JSON字符串的形式出现时,如何有效地将其转换为结构化的表格形式,以便进行进一步的分析和处理,成为了一个常见的挑战。本文将通过一个具体的例…...
《ODIN: A Single Model for 2D and 3D Segmentation》CVPR2024
斯坦福和微软: 代码链接:ODIN: A Single Model For 2D and 3D Perception 论文链接:2401.02416 摘要 这篇论文介绍了ODIN(Omni-Dimensional INstance segmentation),一个能够同时处理2D RGB图像和3D点云…...
第40节 在ArkTS中实现socket功能
1. 基本概念 在 ArkTS 中实现 Socket 功能主要涉及到网络通信中的套接字(Socket)编程。Socket 是一种用于在不同设备(如客户端和服务器)之间进行双向通信的接口,它允许应用程序发送和接收数据。在网络编程中…...
Ruby On Rails 笔记1——Rails 入门
突然想跟着官方文档把Ruby On Rails过一遍,把一些有用的记下来就可以一直看了,do它! https://guides.rubyonrails.org/v7.2/ 注:官网是英文文档,我自己翻译了一下,不确保完全准确,只供自己学习开发使用。 …...
npm, yarn, pnpm之间的区别
前言 在现代化的开发中,一个人可能同时开发多个项目,安装的项目越来越多,所随之安装的依赖包也越来越臃肿,而且有时候所安装的速度也很慢,甚至会安装失败。 因此我们就需要去了解一下,我们的包管理器&#…...
Uniapp的App环境下使用Map获取缩放比例
概述 目前我试过的就是你用vue后缀是拿不到比例的你可以用nvue当然uniapp的uvue应该是更加可以的我使用的是高德所以你得在高德的后台声请原生的Android的key才可以如果是vue3的开发模式的话不用使用this来获取当前对象使用scale对象来接受和改变缩放比例会比较友好然后直接走…...
[免费]基于Python的Django在线(生鲜)商城(电子商城)管理系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的基于Python的Django在线(生鲜)商城(电子商城)管理系统,分享下哈。 项目视频演示 【免费】基于Python的Django在线(生鲜)商城(电子商城)管理系统 Python毕业设计_哔哩哔哩_bilibili 项目介绍 随…...
Go 1.19.4 HTTP编程-Day 20
1. HTTP协议 1.1 基本介绍 HTTP协议又称超文本传输协议,属于应用层协议,在传输层使用TCP协议。HTTP协议属是无状态的,对事务处理没有记忆能力,如果需要保存状态需要引用其他技术,如Cookie。HTTP协议属是无连接的&…...
基于微软云第一个大模型程序Java和python实现
1 注册一个微软云账号 按照提示一步一步注册,注册过程中,注册微软云账号需要visa卡。可以在某宝花钱30元买下。 2 部署模型 搜索openAI 创建资源组 部署一个模型 这个后面代码会使用 3 Java 实现 pom 依赖 <dependency><groupId>com…...
【5G】5G目标和标准化 5G targets and standardization
5G标准是在第三代合作伙伴关系项目(3GPP,3rd Generation Partnership Project)中定义的,实际的标准制定工作由参与3GPP活动的区域标准机构成员共同推进。目前,超过600家公司通过各自的地区标准组织成为3GPP的成员。然而…...
KernelShark在ubuntu24.04.01的编译
KernelShark在ubuntu24.04.01的编译 写在前面具体过程装ubuntu24.04.01安装depends下载代码如何编译cmake 输出make 输出 如何安装 初步启动Add the User to the perf Group 简单的使用trace-cmd抓包 来看我的文章,必有所得。 平凡中,总有我帮您踩过的坑…...
【Flutter】WillPopScope组件-监听物理返回键事件自定义返回事件
WillPopScope(onWillPop: () async {if ( flutterWebViewPlugin ! null && await flutterWebViewPlugin.canGoBack() true) {flutterWebViewPlugin!.goBack();return false; // 阻止默认的返回行为} else {return true; // 允许默认的返回行为}},child: Scaffold(),);…...
深度学习每周学习总结J8(Inception V1 算法实战与解析 - 猴痘识别)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 0. 总结Inception V1 简介1. 设置GPU2. 导入数据及处理部分3. 划分数据集4. 模型构建部分5. 设置超参数:定义损失函数&am…...
Django模板系统
1.常用语法 Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作。 2.变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有…...
【JavaWeb后端学习笔记】MySQL的数据操作语言(Data Manipulation Language,DML)
MySQL DML 0、准备表结构1、添加数据1.1 指定字段添加数据(单条)1.2 全部字段添加数据(单条)1.3 指定字段添加数据(批量)1.4 全部字段添加数据(批量) 2、修改数据3、删除数据 MySQL的…...
【SpringBoot】Day10-09 动态SQL-XML文件
动态SQL-XML文件的三点规范 1.XML映射文件的名称与Mapper接口名称保持一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)- 在项目开发当中,一般都是一个接口对应一份儿映射配置文件; 2.XML映射文件的namesp…...
Linux絮絮叨(三) Ubuntu桌面版添加中文拼音输入法
步骤很详细,直接上教程 一. 配置安装简体拼音输入法 #安装相应的平台支持包 sudo apt install ibus-gtk ibus-gtk3# 安装简体拼音输入法 sudo apt install ibus-pinyin安装完成如果下面的步骤找不到对应输入法可以重启一下,一般不需要 二. 添加简体拼音…...
rockit 学习、开发笔记(六)(VENC)
前言 上节我们讲到了VDEC解码模块,那当然少不了VENC编码模块了,一般有编解码的需求都是为了压缩视频的大小,方便减少传输所占用的带宽。 概述 VENC 模块,即视频编码模块。本模块支持多路实时编码,且每路编码独立&am…...
Python+Django框架山东济南景点数据可视化系统网站作品截图和开题报告参考
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程ÿ…...
【C#】键值对的一种常见数据结构Dictionary<TKey, TValue>
在 C# 中,Dictionary<TKey, TValue> 是一个 键值对(key-value)集合,是一种非常常见的数据结构。它允许通过 键(key)来快速查找与之相关的 值(value)。你可以将其类比为一个映射…...
SQL Server:调用的目标发生了异常。(mscorlib)
我之前安装的SQL Server是2014版本,SSMS运行也很流畅,有一次有个同事让我链接云服务器SQL地址,直接报上图的错误,把我弄的一愣一愣的。 后面才发现,这是版本太低导致的,但是你如果使用Navicat是没有问题的…...
windows 上ffmpeg编译好的版本选择
1. Gyan.dev Gyan.dev 是一个广受信赖的 FFmpeg 预编译库提供者,提供多种版本的 FFmpeg,包括静态和动态链接版本。 下载链接: https://www.gyan.dev/ffmpeg/builds/ 特点: 提供最新稳定版和开发版。 支持静态和共享(动态&…...