




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的出租车计价器设计TOC\o"1-2"\t"标题3,2"\h\u摘要 1第1章绪论 31.1课题研究背景 31.2国内外研究现状 41.3课题研究的目的及意义 51.4出租车计价器作弊手段 51.5出租车计价器作弊手段的应对措施 6第2章系统总体设计 92.1出租车计价系统设计 92.2系统总体设计方案 9第3章控制系统硬件设计 113.1单片机最小系统单元 113.2时钟电路 123.3振荡电路 123.4复位电路 133.5键盘接口电路 133.6显示电路 14第4章软件设计 154.1判键子函数 164.2显示子程序 174.3总程序流程框图 18第5章系统调试 195.1系统的调试 195.2硬件的调试 205.3调试步骤 20第6章总结与展望 236.1总结 236.2展望 23参考文献 24附录一PCB图 26附录二原理图 27附录三程序 28PAGE1PAGE1摘要出租车计价器具有结构简单、成本低等优点,性能可靠。出租车运输公司部门专用的该类计价器主要服务应用对象是一种普通的小型出租车,为运输服务行业提供服务的一种汽车专用型的智能化计价仪器,出租车计价器在服务行业的准确性直接影响到消费者与经营者之间的合法权益。出租车计价器可以实现计价、计时、计价等基本功能。单片机的第一个初始化操作是复位电路。本设计中还包括了附有的复位电路,键盘控制电路,时钟控制电路。在时钟电路系统中,采用12Mhz晶体振荡器作为时钟源,具有较高的精度。开机时,字符型液晶1602显示起始价、里程费、等待时间费、三种费用。可以按此按钮调整起步价、里程费和等候时间费。用按钮在进行操作。运行时间和暂停时间可在1602LCD上显示。可以计算总成本和总距离。主要以STC89C52单片机为核心控制器,P1口与1602液晶显示模块相连。关键词:STC89C52;出租车计价器;1602液晶第1章绪论出租车计价器作为所有出租汽车中最重要的一种测量器具,它的使用与发展对于出租车产品行业的持续发展有着促进作用。出租车计价器主要是指乘客及其司机之间进行贸易的一种衡量标准和基础,它直接维系着贸易双方的利益关系。出租车计价器是出租车行业中不能够缺少的一种计价工具。出租车服务业也与计价器息息相关相关,出租车如果没有安装计价器是不能够投入运行也不方便出行。出租车计价器可以根据消费者具体的路程距离和等候的时间来精确的计算出价格,并且当时就可以显示在液晶显示器上面,司机和乘客们也可以方便的看到。因此计价器是一种专门负责出租车运营和收费的智能仪表。因为出租车计价器的持续改良发展所以才不断促进了出租车这个行业的发展,可见计价器的重要性,也为各行各业大家的日常的出行提供了很大的方便[1]。根据一些资料的统计在我国的出租汽车行业是在二十世纪八十年代不断地发展起来的。我国的出租汽车行业由4个过程,从传统式的机械部件组成的机械式出租车计价系统逐渐到半电动出租车计价系统,再从集成电路出租车计价系统逐渐发展到当前STC89C52单片机的出租汽车计价系统的设计。单片机的出现,让计价器又得到了一次改进,改良的计价器不仅能实现出租汽车计价的最基本功能,还可以拓展很多其他功能。出租汽车计价器的准确性象征着出租车行业与消费者之间的公平交易,只有公平交易,出租车行业才能够更好的发展。1.1课题研究背景测试系统的设计主要是以STC89C52单片机为基础和核心,数据存储电路、智能的传感器、液晶显示电路等几部分来组成整个完整的系统,测量的里程不准确是之前测量计价器的不足之处,计算的总价格不准确等技术性问题,起步价以及白天和晚上的单价不同。这种设计是一种新型出租车,可以设定起步价、每公里单价和夜间单价[2]。1.1.1现状分析随着我国现代社会以及人们的生活物质和文化水平不断得到进一步的发展与提高,出租车在我国的广泛应用和频率也变得越来愈多,高品质的服务给了人们一个出行方便的地区就是出租车这个行业。因为汽车行业的独特性,出租车行业会出现一些纠纷,因此在出租车行业中要解决这一问题的方法就是对出租车进行计价器的改良。采用特别精确的出租车计价器让乘客们能够享受到方便的服务[3]。1.1.2选题背景
从进一步提高出租车专业服务和管理水平以及节约成本的重要角度考虑,它具有自动计时、自动测量、性能可靠、电路简单、成本低等特点。设计了一种具有定位价格调整、展现当前系统时间、路程等功能新型的计价器。1.2国内外研究现状出租车计价装置整体功能电路的设计是为了满足市场中一部分用户的需求。在目前的交通运输中,现代公共交通中不可缺少的一部分就是出租汽车,如果有效的计量不同路程客户所付的费用,让用户满意,让驾驶出租车的司机也满意,这就需要一种相对比较公平的计量方式[4]。出租车计价器就是在这种基础上诞生的产物,对社会快速发展有着非常重要的作用。只显示路程是起初计价器的功能,至后来能够独立进行自主收费。计价器目前在出租车和滴滴快车等领域都已经逐步发展起来,有些行业根据需要进行自主设定单价,起步价和日夜单价不同[5]。新出租车可以同时自动设定起步价和夜间单价,而且还可以在液晶显示屏中展示因堵车而导致的等候时间和乘车费用的总额。计价仪是为出租车提供服务而使用的一种计费工具,它主要由传感器、转换器、数据处理器以及税控单元等组成[6]。传感器将量程信息传送到转换器转成电脉冲信息号传到数据处理器中,时间控制器将车辆停车、低速时间信息也一同传送到数据处理器中,处理器将这些数据进行处理后,结合税控单元进行费用计算,并将结果显示到计价器屏上,供司机和客户观看[7]。出租车计价装置整体设计是出租车中一个重要的组成部分,人们打车出行对计费标准及精度控制参数的要求,不断提高,为了更好地满足生产与工作的需求,本设计采用单片机STC89C52对车程进行采集,并采用数码管时行相应的显示,形成一个对车辆行驶路程的自动计算控制系统,本系统经过实测,工作过程稳定,控制精度达到需求,系统响应速度快[8]。出租车计价器的作弊手段多种多样,相关监管部门与生产厂家都应当引起重视,因此要通过完善监管机制、规范的传感器使用、严格监控脉冲信号、建立信息化监管系统、加强远程监控等措施进一步规范出租车计价器的使用,保障乘客的合法权益[9]。1.3课题研究的目的及意义本设计是一款新型出租汽车计价器,采用了智能传感器、液晶显示电路、振荡电路、数据存储电路、复位电路等组成整个系统,主要研究内容分为以下几个部分:(1)乘客上车的时候,由控制按键空车灯控制。(2)STC89C52收集得到传感器的特殊脉冲信号后再对其进行总里程的计算,开始估价并把路程、时刻、速度等数据实时的显示到了液晶显示屏上。(3)乘客下车时,同样通过按键即空车灯控制。(4)再次启动时,信息会再次重置,等待下一次的执行。出租车定价是否准确,关系到经营者和消费者的利益。性能良好的计价器对出租车司机和乘客都很重要。人们打车出行对计费标准及精度控制参数的要求,不断提高,为了更好地满足生产与工作的需求,本设计采用单片机STC89C52对车程进行采集,并采用数码管时行相应的显示,形成一个对车辆行驶路程的自动计算控制系统,本系统经过实测,工作过程稳定,控制精度达到需求,系统响应速度快,可以在出租车行业中进行推广使用[10]。1.4出租车计价器作弊手段1.4.1事先增加行驶距离计价器公里数上做手脚,提前将行驶公里数增加进去,乘客在不知觉的情况下被多收费。操作方法是空车时计价器倾斜状态,对于不懂的乘客来说,发现空车牌是立放,其实是处于计算路程的15度倾角状态,此时,乘客未进人车内时,路程就已经进人计算状态了。乘客上车后,司机会很麻利地将空车牌放下,以防被发现。这种作弊方法只有出租车行业内的人了解,对于普通的大众而言,很难发现这种作弊行为[11],自然也很少有纠纷出现。这种方法屡试不爽的原因就在此,因此在广大出租车行业内使用较广泛。1.4.2改装小型号轮胎计价器与驱动轮的有效周长息息相关,为了达到提高收费的目的,部分出租车司机在胎压或轮胎型号上作手脚,由于降低胎压易产生事故,所以更换小型号轮胎成为最有效的作弊手段。计价器与原轮胎存在着固定的计算关系,当轮胎半径变小后,计价器仍然按照原来的轮胎参数进行计算,行驶相同的距离所接收到的脉冲信号增加,从而提高收费。这种作弊的行为对于乘客而言,更是难以发现,乘客无从知晓计价器与哪个类型的轮胎相关联,而且乘客只关注是否空车,是否能打到出租车,注意力根本不在轮胎的大小上,使得作弊行为成为行业“潜规则”[12]。1.4.3干扰传感器信号传感器作弊也是常见的作弊方法。主要是在传感器中额外增加可产生脉冲信号数的磁铁,标准传感器有2个磁铁产生信号,增加1个或2个磁铁,产生的信号就迅速增多,反馈到计价器上的里程也越多,从而实现额外收费的目的[13]。此种作弊方法一般也很难发现,只有专业的检定机构进行检定时才能发现计价器失准的原因是私加传感器磁铁。1.4.4增加脉冲信号计价里程与接收到的脉冲信号数成正比。根据这一原理,一些不法司机常常在计价系统的前端偷偷增加产生脉冲信号的单元,从而使原计价器行驶同样的路程时接收到更多的脉冲信号数,进而转化为计费增加,使乘客为同样的路程多付费。这种作弊手法具有一定的技术性,对于普通大众来说难以发觉。1.5计价器作弊手段的改进措施1.5.1完善监管机制受私家车数量增加的影响,出租车行业发展受到较大的冲击,部分司机为多收入将注意力放到计价器的作弊行为上,使出租车行业发展处于混乱的局面。为了整顿行业乱象,给普通大众创造和谐的出行氛围,需要出租车管理部门加大行业管理力度,对出租车作弊行为进行打击和监督。首先,计价器检定合格后,由专家审核制定统的计价模式,并进行密封处理,防止私自拆开作弊。其次,安装好计价器未投入使用前,要对计价器的传感器、常数K、轮胎型号、厂家等信息记录在案,要求司机更换轮胎时要备案,否刚按营业时间计算进行一定
比例的罚款,数额要高于营利部分以达到管理目的。同时,计价器空车灯要保证只有完全坚直状态才亮灯,不留任何角度,防止倾斜计费。最后,出台相关的制度规定修理厂行为,无论是更换轮胎还是变速箱问题,修理厂只能按照规定要求进行修理,不得私自改装与变动车辆参数。而且修理后的出租车要进行专业检定,合格后方可营业[14]。1.5.2规范的传感器使用监督管理部门对计价器进行监督管理时,要将重点放在检定和抽查两部分。作为计价器的重要核心部件,传感器的准确性和不可私装性必须严格保证。(1)具有规范地使用标准和管理标准,保证传感器数据采集的真实有效。(2)重点对检定后的传感组件进行密封加固,防止私装改装。(3)应用加密技术对传感器的数据进行加密,提高传感器防范性能,从而防止恶意篡改、修改数据信息行为发生,有效保护广大消费者的利益。此外,为防止私加传感器,可采用双向信息验证的技术方式来保证采集的行驶数据真实有效。通过以上几种方式可有效避免传感器导致的费用增加问题。1.5.3严格监控脉冲信号脉冲数作弊是常用的作弊手段,为防止出租车司机私自改变脉冲数行为,监控脉冲数是有效地管理方法。管理部门可不定期对出租车进行抽检,完善举报平台,发现脉冲数异常,绝大部分都是私改作弊。所以,最好的监控方式就是使用具有智能诊断和监控功能的计价器,对计价器的运行状态、维修频率等记录在案。而且在计价器安装使用中都要进行拍照入案[15],除此之外,计价器定期检定也是有效的监控方法。检定时可准确判定计价器是否存在作弊行为,对作弊行为记录在案,上报管理部门。1.5.4建立信息化监管系统针对出租车作弊行为,有必要研发信息化监管平台,对出租车的计价器、服务、行驶等进行数字化管理,使每一台出租车从检定至营业,从修理至重新上路进行全程监督管理,哪里出现违规违法行为,管理平台都能调出具体时间具体地点的相关数据作为纠纷证据。在这个平台上,可以将所有的出租车计价器收录到动态数据库中,并与司机的诚信系统相关联,一日发现作弊行为,将直接影响司机的从业资格。1.5.5加强远程监控利用现代化的技术手段对出租车进行监督管理,如GPS定位,可将其与计价器进行关联,使出租车在远程行驶中也能受到管理监督。GPS可对出租车的行驶路线、行驶行为、空载、停运等进行实际监督。再结合视频系统,可对计价、驾驶素养、服务语言、服务行为等进行管理,为经济纠纷和案件提供可靠的证据。此外,可以实时显示车辆状态,违规违法行为在科技面前很难遁形,对整顿出租车行业乱象具有较好的监管作用。
第2章系统设计2.1出租车计价系统设计在主程序的模块中,还要完成对各个芯片的初始化还有各中断的初始化,除此之外在主程序模块中还需要设置启动/清除标志寄存器、价格寄存器和里程寄存器,并且需要对它们进行初始化操作。之后,主程序将根据各个标志寄存器的内容分别完成启动、计程、计算价格和清除等各个不同的步骤。在空车信号灯按下时,表示有乘客上车,这时候根据里程寄存器中的内容计算和判断出行驶里程是否已经超过起价的公里数。如果已经超过,则需要根据里程值、每公里的单价值和起价值来计算出当前的累计价格,并且需要将结果也存于价格寄存器中。STC89C52单片机的出租车计价器,是采用24C02作为内存芯片、LCD1602液晶显示屏来显示等设计。使用24C02存储单价,可以按下按钮来模拟里程的增加,还可以测出出租车向前行驶的速度。LCD上显示行驶过程中出租车的行驶状态、行驶的时间、行驶的公里数(时、分、秒)、此外还有单价等一些信息。总价=3公里内路程的价+3公里外的路程*单价+等待的时间*单价。按键说明:第一个键:左边第一个是退出键。第二个键:减键/等待时间开始、暂停键。第三个键:加键,在设置参数时加变量的。第四个键:设置键,可以选择需要设置的参数。2.2系统总体设计方案该种智能计价器主要选择了一个STC89C52单片机来实现作为这台计算机的一个主控制处理芯片,操作按键来模拟出租车的运行状况,在模拟出租车的行驶里程时,不同一线城市的交通收费优惠政策调整标准也是不同的,可以根据当地的交通收费优惠政策对相关标准要求进行相应调整,在系统设计的操作过程中我们可能会经常看到使用proteus仿真软件进行模拟。采用MCU技术,通过STC89C52型号的单片机来作为主控制器,利用1602字符型液晶显示屏来作为显示电路,采用外部晶振来作为时钟脉冲,用按键就可以方便的调节,系统流程框图如图1所示。2.2.1计价器工作原理出租车计价器是以里程作为主要的收费参数的,应用的计费公式是:计价里程等于传感器采集转化的脉冲信号数/标准脉冲值K(1km)。脉冲信号数就是由车辆驱动轮的轮胎周长决定的(受胎压、荷载、老化因素影响),轮胎行驶周所经过的距离是固定的,将其转化为脉冲信号,与常数K比较就可计算出行驶距离,然后将时间因素考虑在内给出最终的计费结果。可见,计价器作弊时,可以将K值调小、降低胎压等实现.单片机1602液晶LED灯电源电路单片机1602液晶LED灯电源电路按键电路复位电路图1系统流程框图第3章控制系统硬件设计3.1单片机最小系统单元主控制系统采用的是STC公司所生产的STC89C52单片机,它所包含512字节的RAM数据存储器,内置8K的可擦除FLASHROM可重复编程,并且它的大小也符合主控制机软件系统的设计,因此无需扩展。品振可连接此芯片的外围电路(ATMCU值一般为24mh)、品振电路还有复位电路,最大为40MHz,STC89C52型号的单片机是由P0口接入的10K的上拉电阻所组成的。如图2所示。图2单片机最小系统单元STC89C52单片机的复位端接74LS14。高电平有效,复位端具有稳定波形的作用。系统实现一次复位操作是在RST端若由低电平上升到高电平并持续2个周期的时候,在此复位控制电路中按下复位开关按钮,利用电容冲放电所产生的延时,此时就会在RST端产生一段时间的高电平,接下来就会进行复位操作。内部时钟电路是由外接12M的品振和两个30pF电容器所组成的系统,起到滤波作用的是电容、微调和振动利用它们在电池充放电这段时间的整个工作过程来实现协同并发挥其重要功能。3.2时钟电路出租汽车在高速行驶的时候都会需要进行实时的测量和显示时间,时钟芯片对于出租车的计价器特别重要,时钟芯片可以作为白天和晚上的单价自动变化转换的一个依据,也就是可以更加方便消费者和驾驶员准确查看时间,目前市场上DS1302时钟芯片已经是最普及的一款时钟,也就是一款能够降低功率的时钟,已经被广泛运用于各种汽车中。通过设置DS1302芯片的初始状态就可以正常工作了,如图3所示。图3时钟电路3.3振荡电路振荡电路的输入是XTAL1,输出是XTAL2。这两个引脚用于连接石英晶体振荡器和芯片外的两个电容器(电容之和一般为20pF)。就构成了一个比较稳定的自激振荡器。振荡电路脉冲经过两次分频后作为系统的时钟,再在二分频的基础上三分频产生ALE信号,得到的信号就是机器的周期信号。蜂鸣器分为有源蜂鸣器和无源蜂鸣器,这里的“源”指的不是电源,而是内部的震荡电路。由于有源蜂鸣器内部本身就有震荡源,只需要在它的正极加上合适电压,就能发出响声(用单片机端口连接时,需要加大电流驱动电路)。对于无源蜂鸣器,因为内部没有震荡源,需要在正极加高频率的方波信号,才能够使内部震动发声。振荡电路如图4所示。图4振荡电路3.4复位电路上电复位重置和按键重置是重置操作的两种基本形式。具有按键复位功能和上电复位功能等。如果要重置只需按下图中的RESET键,即可打开VCC,经电阻的电源R1和R2部分,同时电压在复位端产生复位高电平。该电路要求在接通电源后,通过对外部电容器充电,单片机可以自动复位。在通电的那一刻,RESET的脚得到了很高的水平。当电容器在充电的时候,RERST管脚的高电平就会逐渐降低。如果RERST管脚的高电平可以保持足够的时间(2秒),STC89C52单片机就可以复位。复位电路,如图5所示。图5复位电路3.5键盘接口电路在独立式的键盘中,每个按键占用了一根I/O口线,每一个按键电路都是相对独立。无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口通过按键与地相连,I/O口有上拉电阻,键盘接口电路如图6所示。图6键盘接口电路3.6显示电路3.6.11602LCD的基本参数及引脚功能有背光和无背光分别是1602LCD的两种类型。多数部分都的是HD44780。有背光的比没有背光的厚。是否有背光是没有什么大的区别的。1602液晶的重要的技术参数如下,各引脚接口说明如表1所示。
容量:16×2个字符芯片工作电压:4.5-5.5V工作电流:2mA(5V)模块最佳工作电压:5V字符尺寸:2.95×4.35(W×H)mm表1引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3引脚:VL为液晶显示器对比度调整端。第4引脚:RS为寄存器选择。第5引脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第15脚:背光源正极。第16脚:背光源负极。3.6.2采用1602液晶显示模块的电路本系列产品设计主要选用1602字符型的液晶显示器,该类新型液晶显示器由于整体耗电量低,操作方便,显示图像质量高。引脚图如图7所示。图7显示电路第4章软件设计4.1判键子函数对于独立键盘,先判断是否有按键按下。如果有按键按下,则延迟一段时间,然后判断是否有按下。如果有按下,判断按键是否松开。流程图如图8所示。图8判键子函数的流程框图4.2显示子程序1602液晶是字符型液晶。可以写两行字符,每行都可以写40个字符,而且有自己的字符库。当编写显示程序的时候,最开始是应该编写命令,其次需要设置字符显示,编写数据在最后进行。在每次写入命令或数据的时候,需要判断液晶显示屏是否可以正常的工作。LCD显示程序流程图,如图9所示。图9显示子程序流程图4.3总程序流程框图整体程序的流程框图如图10所示:图10整体程序的流程框图系统调试5.1系统的调试出租车采用24C02存储芯片和LCD1602液晶显示设计。3分钟之内是不需要收费的,白天默认0.5元,晚上默认1元。用户可以设置此价格。起步的价格是在3公里以内,白天默认1.8元,晚上默认2.2元。此价格也可以根据具体所需要的进行设置。可用于日/夜转换、等待时间和单价、总金额和单价。最后所有的数据都会显示在LCD1602液晶显示屏上面。一些相关的参数也会存储AT24C02在存储芯片中,断电后无需复位。5.1.1焊接首先我们需要做好准备焊接时候所用到的工具,其次熟悉所需要焊制的电路板安装图,按照电路板焊接设计时的图纸仔细找寻一些相应或者对应的各种电子元器件,检查每一种电子元器件基本类别、规格和零件的数量相互匹配情况以及电子元器件是否能够完全符合要求,最后在进行焊接前还要做好每个元器件内部引线的焊接准备,按照顺序实施焊接工作。焊接图如图11所示。图11焊接图5.2硬件的调试第一步首先打开这个proteus设计软件,第二步按照自己所要设计的集成电路工程框图在这个设计软件中一步一步地把它画出来,先在一个新的元器件设计数据库中进行寻找并画出一个新的元器件,然后根据自己的设计要求与其进行相连,画好以后再对其加以进行保存,第三步,将这个keil这个软件中在经过手工编译的软件应用程序中所产生的一个hex系统文件从一个单片机的主机中进行下载,在下载对话框中,重新打开已保存的软件,再次点击软件选择后的按钮,最后点击软件左下角的软件操作系统运行设置按钮,进行一个相应的系统软件设计仿真和性能测试,直到出现设计要求的结果。硬件实物图如图12所示。图12实物图5.3调试步骤(1)先接通电源,随后按下按钮,就可以看到主界面显示屏亮,上面显示了单价,时间,公里数等信息。如图13所示。图13主界面(2)按下第四个设置键,有四种模式选择,时间设置,白天设置,晚上设置,报警设置,可以进行白天或晚上的参数设置选项的选择,可以设置里程的价格和等待时间的价格。图14时间设置界面(3)单价参数是可以直接进行更改的,在单价参数中已经完成了设置后,即可以直接退回到主界面,按第三个“+”的按键来确定需要增加的路程,在出租车到达了目的地之后,计价器就已经能够准确的计算得出自己需要付费支付的单价。晚上模式也是一样的,不一样的价格,具体设置与白天相同。白天界面如图15所示。图15白天界面(4)超速提醒,当速度超过55Km/h时,蜂鸣器就会报警,报警设置界面如图17所示。图17超速报警界面第6章总结与展望6.1总结此设计的出租车包含单价显示、单价调整、输出此次计时的时间等功能。除了以上功能之外,此款出租车具有电路简单、功能很可靠、成本比较低、实用性强等特点,通过优化方案,具有较高的功能特点。过去的几个月里,通过不断努力,已经完成了设计的要求。在系统可行性分析、方案设计等方面做了大量的实践工作,取得了一定的成果。同样的,我们也遇到了一些问题和缺陷。虽然学到了许多的理论知识,但是由于缺乏实践将理论和现实相结合的技术操作能力,经过这次设计,从两方面来说,一是在实际操作能力上,二是在掌握理论知识的基础上,都有了不小的发展和进步,我从中受益匪浅。这次课程设计很好地把以前理论学习中得到的许多理论知识综合运用扩大到了国际实践中,使我进一步深刻认识了所学理论知识和国际实践相有机结合的极大重要性。6.2展望学到了很多知识在此次设计过程中,当我遇到困难的时候我会请教我的同学,会跟她们一起讨论,或者去查阅资料,在此过程中增加了自己的知识面,提高了自己的实践能力。同时向同学们取得了经验。也复习了专业知识,通过实践我才感悟到理论联系实际的重要性,在此次设计的过程中为以后的工作积累了许多经验。在设计过程中,提高了自己的思维能力和实践能力,而且提高了思考、分析和解决问题的能力。更重要的是,我学会了用工程思想解决问题。这在以前的学习过程中从未学过。在有限的时间内能够完成设计内容,一部分少不了老师和同学们的帮助和指导。这种设计使我深刻认识到用完整、严谨、科学的思维方式分析和解决实际问题的重要性。在以后的工作和生活中应该养成培养科学思维的习惯,只有这样才能够设计和生产出好的设计,通过这次学习和设计,我的工作还存在很多不足,我也知道了在实际应用中,我的理论知识和实践能力的运用还存在着巨大的不足和不足,还有很多值得借鉴的地方,所以我需要在这里进一步提高自己!
参考文献posteraroF,CreaS.Technologicallyadvancedassessmentofupperlimbspastcity:Apilotsstady[J].EuropeanJournalofPhysical&RehabilitationMedicine,2017(8):89-90.VillarJ.Otero.Taximerterverificationwithsoftcomputingtechniques[J].2010,32(3):32-33.
附录一:PCB图
附录二:原理图附录三:程序#include<reg52.h> #defineucharunsignedchar//无符号字符型宏定义变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535uchard_miao,d_fen=0,d_shi;ucharflag_bai_hei;//白天的晚上的标志位ucharvalue;uintbai_3l_price=60;uintbai_3w_price=18;uintbai_wait_price=5;uintwan_3l_price=70;uintwan_3w_price=22;uintwan_wait_price=10;uintdistance=0;//行使的距离uintzong_jia;//总的价bitflag_200ms=0;bitflag_1s;bitflag_time_en=0;ucharflag_time_xs=1;//显示时间和等待时间切换sbitbeep=P3^7;//蜂鸣器IO口定义uchari;sbitclk=P1^3; //ds1302时钟线定义sbitio=P1^4; //数据线sbitrst=P1^5; //复位线//秒分时日月年星期ucharcodewrite_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a};//写地址ucharcoderead_add[]={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b};//读地址ucharmiao,fen,shi,ri,yue,week,nian;ucharspeed1,juli,time2;ucharf_hz,speed_km,speed_m;ucharTH11,TL11;ucharflag_en;//开始计算速度使能ucharflag_stop_en;//要确定车子是否停下了uintjuli_s; //每秒走的距离uintjuli_z;//总路程floatzhijing=0.75;//直径0.55Mbitflag_1s=1; //1sucharmenu_1;//菜单设置变量ucharmenu_2;//菜单设置变量uintshudu;//定义速度的变量uintbj_shudu=80; //报警速度ucharflag_ds_en;longzong_lc;//总量程#include"lcd1602.h"/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){uinti,j;for(i=0;i<q;i++)for(j=0;j<120;j++);}#include"iic.h"voidwrite_iic_data(){write_24c02(0,flag_bai_hei);write_24c02(1,bai_3l_price%256);//保存数据write_24c02(2,bai_3l_price/256);//保存数据write_24c02(3,bai_3w_price%256);//保存数据write_24c02(4,bai_3w_price/256);//保存数据write_24c02(5,bai_wait_price%256);//保存数据write_24c02(6,bai_wait_price/256);//保存数据write_24c02(7,wan_3l_price%256);//保存数据write_24c02(8,wan_3l_price/256);//保存数据write_24c02(9,wan_3w_price%256);//保存数据write_24c02(10,wan_3w_price/256);//保存数据write_24c02(11,wan_wait_price%256);//保存数据write_24c02(12,wan_wait_price/256);//保存数据}/****************读出来保存的数据**********************/voidread_iic_data(){flag_bai_hei=read_24c02(0);bai_3l_price=read_24c02(2);bai_3l_price=bai_3l_price*256+read_24c02(1);bai_3w_price=read_24c02(4);bai_3w_price=bai_3w_price*256+read_24c02(3);bai_wait_price=read_24c02(6);bai_wait_price=bai_wait_price*256+read_24c02(5);wan_3l_price=read_24c02(8);wan_3l_price=wan_3l_price*256+read_24c02(7);wan_3w_price=read_24c02(10);wan_3w_price=wan_3w_price*256+read_24c02(9);wan_wait_price=read_24c02(12);wan_wait_price=wan_wait_price*256+read_24c02(11);}/********************独立按键程序*****************/ucharkey_can; //按键值voidkey() //独立按键程序{if((P3&0x78)!=0x78) //按键按下{delay_1ms(1); //按键消抖动if((P3&0x78)!=0x78){ //确认是按键按下switch(P3&0x78){case0x70:key_can=1;break; //得到按键值case0x68:key_can=2;break; //得到按键值case0x58:key_can=3;break; //得到按键值case0x38:key_can=4;break; //得到按键值}beep=0;delay_1ms(50);beep=1;}}}/*************写一个数据到对应的地址里***************/voidwrite_ds1302(ucharadd,uchardat){rst=1; //把复位线拿高for(i=0;i<8;i++){ //低位在前clk=0; //时钟线拿低开始写数据io=add&0x01;add>>=1; //把地址右移一位clk=1; //时钟线拿高}for(i=0;i<8;i++){clk=0; //时钟线拿低开始写数据io=dat&0x01;dat>>=1; //把数据右移一位clk=1; //时钟线拿高}rst=0; //复位线合低}/*************从对应的地址读一个数据出来***************/ucharread_ds1302(ucharadd){ucharvalue,i;rst=1; //把复位线拿高for(i=0;i<8;i++){ //低位在前clk=0; //时钟线拿低开始写数据io=add&0x01;add>>=1; //把地址右移一位clk=1; //时钟线拿高}for(i=0;i<8;i++){clk=0; //时钟线拿低开始读数据value>>=1;if(io==1)value|=0x80;clk=1; //时钟线拿高}rst=0; //复位线合低returnvalue; //返回读出来的数据}/*************把要的时间年月日都读出来***************/voidread_time(){miao=read_ds1302(read_add[0]); //读秒fen=read_ds1302(read_add[1]); //读分shi=read_ds1302(read_add[2]); //读时ri=read_ds1302(read_add[3]); //读日yue=read_ds1302(read_add[4]); //读月nian=read_ds1302(read_add[5]); //读年week=read_ds1302(read_add[6]); //读星期}/*************把要写的时间年月日都写入ds1302里***************/voidwrite_time(){write_ds1302(write_add[0],miao); //写秒write_ds1302(write_add[1],fen); //写分write_ds1302(write_add[2],shi); //写时write_ds1302(write_add[3],ri); //写日write_ds1302(write_add[4],yue); //写月write_ds1302(write_add[5],nian); //写星期write_ds1302(write_add[6],week); //写年}/**********************设置ds1302时间函数**********************/voidset_ds1302time(ucharnum,uchar*shi,uchardat) //调时{if(num==1){*shi+=0x01;if((*shi&0x0f)>=0x0a)*shi=(*shi&0xf0)+0x10;if(*shi>=dat)*shi=0;}else{if(*shi==0x00)*shi=dat;if((*shi&0x0f)==0x00)*shi=(*shi|0x0a)-0x10;*shi-=0x01;}}#include"menu.h"/*********************对应菜单内的处理函数******************/voidmenu_dis(){if(menu_1==0){if(key_can==2) //清零从新计价{flag_time_en=0;d_shi=0;d_fen=0;flag_ds_en=0;}if(key_can==4) //时间和等待的时间的切换{flag_time_xs++;//为1显示当前时间if(flag_time_xs>2)flag_time_xs=0;if(flag_time_xs==0) //显示时间{write_string(1,0,"::W:");write_string(2,0,"20--");}}if(flag_200ms==1){if(distance<=30)//3公里内的价格{if(flag_bai_hei==0){if((d_fen==0)&&(d_miao<=10))zong_jia=bai_3l_price;elsezong_jia=bai_3l_price+(d_shi*60*60+d_fen*60+d_miao)*bai_wait_price-bai_wait_price*10;}else{if((d_fen==0)&&(d_miao<=10))zong_jia=wan_3l_price;elsezong_jia=wan_3l_price+(d_shi*60*60+d_fen*60+d_miao)*wan_wait_price-bai_wait_price*10;}}else //3公里外的价格{if(flag_bai_hei==0){if((d_fen==0)&&(d_miao<=10))zong_jia=bai_3l_price+bai_3w_price*(distance-30)/10;elsezong_jia=bai_3l_price+bai_3w_price*(distance-30)/10+(d_shi*60*60+d_fen*60+d_miao)*bai_wait_price-bai_wait_price*10;}else{if((d_fen==0)&&(d_miao<=10))zong_jia=wan_3l_price+wan_3w_price*(distance-30)/10;elsezong_jia=wan_3l_price+wan_3w_price*(distance-30)/10+(d_shi*60*60+d_fen*60+d_miao)*wan_wait_price-bai_wait_price*10;}}if(flag_time_xs==1) //显示当前的时间{write_sfm2_ds1302(2,0,shi);//显示时write_data(':');write_sfm2_ds1302(2,6,miao);//显示秒write_sfm4(2,10,zong_jia);write_sfm2(1,1,shudu);write_sfm4(1,9,juli_z);}elseif(flag_time_xs==2) //显示等待时间{write_sfm2(2,1,d_fen);//显示分write_data(':');write_sfm2(2,4,d_miao);//显示秒write_sfm2(1,1,shudu);write_sfm4(1,9,juli_z);}else//显示当前的时间{write_sfm2_ds1302(1,2,shi); //显示时write_sfm2_ds1302(1,5,fen); //显示分write_sfm2_ds1302(1,8,miao); //显示秒write_sfm1(1,14,week); //显示星期write_sfm2_ds1302(2,6,yue); //显示月write_sfm2_ds1302(2,9,ri); //显示日}}}}/*******************停车计时函数*****************/voidjishu_chashu(){if((flag_1s==1)&&(flag_time_en==1)){if(flag_ds_en==1){d_miao++; //秒钟加1if(d_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国VGA数码相机行业发展研究报告001
- 2025至2030年中国PVC高档耐压管行业发展研究报告
- 2025至2030年中国PU发泡剂市场现状分析及前景预测报告
- 2025至2030年中国LED不锈钢手电筒数据监测研究报告
- 2025至2030年中国IC卡智能热量表市场调查研究报告
- 2025至2030年中国CR2照相机专用电池市场分析及竞争策略研究报告
- 2025至2030年中国8头翻塞机行业投资前景及策略咨询报告001
- AI在智慧零售领域的创新应用研究
- 2025至2030年中国2-甲氧基丙烯行业投资前景及策略咨询报告
- 2025至2030年USB还原软件项目可行性研究报告
- 初三年级组长“走进初三誓师大会”发言稿
- 无人机应用技术概论-第-1-章-绪论
- 《电工电子技术基础》高职全套教学课件
- 2024北京电子科技职业学院招聘笔试备考题库及答案解析
- 第十五课 中望3D-工程图系列2讲解
- 2024-2029年中国3D裸眼技术行业市场发展分析及发展趋势与投资前景研究报告
- DZ∕T 0220-2006 泥石流灾害防治工程勘查规范(正式版)
- 干部人事档案转递单(带存根回执)
- 术中用药用血安全管理课件
- 2019年10月自考05760营养学一试题及答案含解析
- 2023-2024学年教科版五年级科学下册第二单元《船的研究》检测卷(含答案解析)
评论
0/150
提交评论