出租车计价器设计与实现.
出租车计价器的设计与制作毕业设计

目录第一部分设计任务与调研 (2)第二部分设计说明 (4)第三部分设计成果 (15)第四部分结束语 (18)第五部分致谢 (19)第六部分参考文献 (20)第一部分设计任务与调研1. 绪论1.1课题背景20世纪80年代以前,广州出租汽车还没有安装计价器,每一趟接待任务结束后,司机会根据里程表来计算出车辆行走公里数,然后进行收费。
1979年后,在改革开放大潮的推动下,广州出租汽车行业迎来了发展的春天,出租汽车企业如雨后春笋般涌现,车辆剧增近10倍。
到1985年,广州出租汽车企业逾百家,车辆近7000台,形成了百家争鸣的局面。
然而,行业迅猛发展也产生了很多问题,经营管理有漏洞,司机服务不规范,向乘客漫天要价的现象屡禁不止。
针对这种情况,出租车自动计价器应运而生,净化了行业风气,诚信服务市民,减少司机与乘客间纠纷。
在此过程中,出租车计价器也不断改善性能,外形简洁美观,性能稳定可靠,智能化程度高的出租车计价器正是我们的追求。
本系统设计以AT89S51单片机为核心,采用A44E霍尔传感器测距,实现对出租车的不同时段计价统计,采用2个四位一体8段数码管显示费用,不计价时显示为时钟,采用AT24C02实现在系统掉电时保存单价和系统时间等信息。
1.2 设计目的与要求1.2.1设计目的毕业设计是将理论与实践相结合的教学环节,通过综合运用教材及其他资料,使所学知识得到进一步加深和扩展。
同时还培养设计能力和解决实际问题能力,进行基本技能的训练, 进一步熟练proteus,keilC等软件的操作。
本设计的目的是在学习51系列单片机的基础上,设计出符合要求的电路,从而实现设计产品的计价功能。
1.2.2主要设计内容及基本要求利用AT89S51单片机,设计简单的出租车计价器。
在出租车计价器的总体设计中,除必有的晶振电路,复位电路,电源电路外,主要的外围功能电路有:按键控制电路,掉电保护电路,时钟电路,数码管显示电路等。
通过对以上各功能的设计,制作出的出租车计价器应具有以下功能:上电时显示时钟;按下计价键开始进行分时计价,途中可以按等待键实现出租车行进途中的等待计价,最终金额与行驶里程,行驶时间和等待时间有关;按下速度键,显示当前速度值;按下价格键,显示不同时段的起步价和单价;按下设置键,并通过设置‘+’和设置‘-’实现价格,时钟的调整。
出租车计价器-课程设计报告

软件学院课程设计报告课程题目出租车计价器班级集成13-4专业集成电路设计与集成系统学生学号指导教师(填写自己班的指导教师)年月日1.课程设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
2。
课程设计题目描述和要求2.1.课程设计题目描述①.实现计费功能,计费标准为:按行驶里程计费,起步价为7.0元,并在车行3km后按2.2元/km计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。
②.现场模拟功能:以开关或按键模拟公里计数,能模拟汽车起动、停止、暂停等状态。
③.将车费和路程显示出来,各有一位小数.2.2。
总体设计思路框架2.3.课程设计题目要求①.设计正确,方案合理。
②。
程序精炼,结构清晰。
③。
设计报告含程序设计说明,用户使用说明,源程序清单及程序框图.④。
上机演示。
⑤.有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
3.设计思想和设计内容3。
1 出租车计费设计该出租车计费器按下开关S1后开始计费和计里程数,起步价是7元,行驶3公里,以后2。
2元/公里。
并且设计选择模块,在车费超过20元每公里加收50%车费即3。
3元/公里.3。
2 基本设计思想出租车计费器根据设计要求可初步分为3方面——显示、记里程数、记费。
之后再根据三方面分别设计模块。
1.显示模块.一般计数器显示数字为1-F即16进制,而16进制不方便观看,所以在设计这一模块时我们将16进制改为10进制输出进而设计了译码模块。
2、里程模块。
设计要求对里程计数主要分为两个方面,计数以及公里数比较。
即3公里之内收7元,3公里之后20元(通过计算为9公里)以内每公里2.2元,9公里以外为每公里3.3元。
出租车计价器设计

出租车计价器设计一、设计目的出租车计价器是指用于出租车计算乘客乘车费用的仪器或装置,其设计目的是为了提供乘客和驾驶员之间的公平交易和计费机制。
计价器需要准确记录乘车时间和里程数,并根据规定的计费标准计算和显示费用,以保证乘客支付公正的费用,同时也为驾驶员提供准确的运营数据。
二、设计要求1.准确计算:计价器需要准确记录乘车时间和里程数,并根据规定的计费标准计算费用。
计算过程需精确无误,避免出现漏计、重计或错误计算的情况。
2.易操作:计价器应具备简单直观的操作界面,方便驾驶员进行操作和读取信息。
操作流程和按钮设置应符合直觉,减少操作难度和误操作。
3.易读显示:计价器应具备清晰明确的显示界面,能够直观地显示乘车时间、里程数和费用等相关信息。
显示屏应有合适的亮度和对比度,以适应各种光照条件下的读取。
4.稳定性和耐用性:计价器需要具备良好的稳定性和耐用性,能够在长时间运营和多种环境条件下保持正常工作。
抗干扰、耐振动和防水设计都是需要考虑的因素。
5.数据保存和传输:计价器应具备数据保存和传输功能,能够存储和导出乘车数据。
数据传输方式可以考虑使用USB接口或者无线传输等方式。
6.合法合规:计价器应符合相关法律法规的要求,包括计费标准、计费规则、计量准确性等方面的要求。
三、设计内容1.硬件设计:硬件设计主要包括以下组成部分:-显示屏:需使用亮度和对比度较好的显示屏,可采用液晶显示屏,具备一定的抗干扰能力,以确保信息清晰可读。
-按钮:设有各种操作按钮,例如开始乘车、结束乘车、改变计费模式等,按钮应具备防误触设计,以避免误操作。
-里程传感器:使用里程传感器准确测量行驶里程数。
-时间计算器:使用准确的时间计算器计算乘车时间。
-存储器:用于保存乘车数据,可以设置一定的存储容量,以保证数据的完整性。
-硬件防水、抗干扰设计:计价器需要具备一定程度的防水和抗干扰能力,以适应各种环境条件下的使用。
2.软件设计:软件设计主要包括以下内容:-计费规则设置:根据规定的计费标准设置计费规则,包括起步价、里程单价、时间单价、低速补贴等。
出租车计价器设计报告

出租车计价器设计报告一、引言二、需求分析1.收费标准:根据国家和地方的规定,出租车费用通常包括起步价、里程费和时间费。
2.里程计算:计价器需要能够准确计算起点和终点之间的距离。
3.时间计算:计价器需要能够准确计算乘坐时间,以确定时间费用。
4.显示界面:计价器需要具备清晰易读的显示界面,能够显示当前的车费、里程和时间。
5.操作简便:计价器需要提供用户友好的操作界面,方便乘客和司机操作。
6.故障自检:计价器需要具备自动故障检测和报警功能,以保证正常工作。
三、设计方案1.硬件设计:(1)显示屏:使用液晶显示屏,具备高清显示和低功耗的特点,以确保清晰易读的显示界面。
(2)里程测量:采用GPS定位技术测量车辆的实时位置,并根据起点和终点的坐标计算里程。
(3)时间计算:计价器内置实时时钟,能够记录乘坐的时间,并根据时间段进行费用计算。
(4)按键:提供简单明了的按键,用于用户的选择和操作。
(5)故障检测:利用传感器检测故障情况,并在检测到故障时发出警报。
2.软件设计:(1)界面设计:设计直观简洁的用户界面,显示当前的车费、里程和时间,并提供用户选择的接口。
(2)公式计算:根据收费标准,设计相应的公式进行费用计算。
(3)自动故障检测:通过编程实现自动故障检测,并在检测到故障时,及时报警或提醒用户。
(4)数据存储:将计价器的数据存储在内部存储器中,便于后续的数据分析和管理。
四、实施方案1.硬件实施:(1)购买和组装计价器所需的硬件设备,如液晶显示屏、GPS定位模块、实时时钟等。
(2)开发或选择适合的电路板,将相关硬件设备连接起来,并进行测试和调试。
(3)将电路板和其他硬件设备安装在出租车中,确保稳定工作。
2.软件实施:(1)根据设计方案,开发计价器的软件程序,包括界面设计、公式计算、自动故障检测和数据存储等功能。
(2)将软件程序烧录到计价器的控制芯片中,并进行测试和调试。
(3)部署计价器的软件程序到所有出租车计价器上,以确保统一的功能和用户体验。
出租车计价器实验报告(论文)

课程设计课程设计名称:数字电子技术课程设计题目:出租车计价器设计学院:电子信息与自动化学院学生姓名:专业:电子信息工程学号:20176731指导教师:日期:2019年11月28日出租车计价器摘要:本文采用以计数器为核心,将行车里程、等候时间按相同的比价转换成脉冲信号,然后对这些脉冲进行计数的方法,实现对出租车的多功能计价,输出采用4段数码显示管,显示里程及价格。
该计价器通过74LS244和LOGICSTATE来控制起步价和单价的设置,用74LS160构成计数电路,555芯片产生秒脉冲信号,74LS283构成加法器电路,同时以与非门控制行驶和等候的状态切换,实现两种状态的切换,最后,做了复位清零的部分,通过逻辑开关进行控制,对锁存器清零,使得电路恢复初始状态,可以开始重新开始计算,本设计很好的体现了数字系统的设计思想,是一个非常实用的电路。
关键词:出租车,计数器,译码器,555,LED数码管Abstract:This paper uses the counter as the core, converts the mileage and waiting time into the pulse signal according to the same ratio price, and then counts these pulses to realize the multi-function pricing of the taxi, and the output adopts 4 sections digital display tube. Show mileage and price. The meter controls the setting of starting price and unit price through 74LS244 and LOGICSTATE. The counting circuit is composed of 74LS160, the 555 chip generates the second pulse signal, and the 74LS283 is used to construct the adder circuit. At the same time, it switches with the state of non-gate control driving and waiting. The two states are switched. Finally, the complex is done. The part of bit clearing is controlled by logic switch to clear the latch, which can restore the initial state of the circuit and start the calculation again. This design embodies the design idea of the digital system and is a very practical circuit.Keywords:Taxi, counter, decoder, 555 LED digital tube目录1 前言 (2)1.1 设计背景 (2)1.2 设计目标 (2)1.3 实施计划 (2)2 总体方案设计 (2)2.1 方案说明 (4)3 单元模块设计 (4)3.1 各单元模块功能介绍及电路设计 (4)3.1.1 起步价和单价模块设计 (4)3.1.2 里程计数模块设计 (5)3.1.3 候时计数模块设计 (6)3.1.4 加法器模块设计 (8)3.1.5 状态切换、秒脉冲、复位模块设计 (9)3.2 主要器件的介绍 (10)3.2.1 74LS273器件介绍 (10)3.2.2 74LS244器件介绍 (10)3.2.3 74LS283器件介绍 (11)3.2.4 7485器件介绍 (12)3.2.5 74LS160器件介绍 (12)3.2.6 74LS32器件介绍 (13)3.2.7 555芯片介绍 (13)4 系统调试 (14)4.1 调试环境 (14)4.2 硬件调试 (15)4.3 系统能实现的功能 (15)4.4 系统功能及指标参数分析 (15)5 结论 (16)6 总结与体会 (16)7 谢辞.............................................................................................................................. 错误!未定义书签。
出租车计价器实验报告

大规模集成电路实验报告院系:电子工程学院班级:研2-093专业:电路与系统任课教师:任爱峰姓名:冀晓涛学号:0911120640出租车计价器的VHDL设计与仿真一、设计要求及主要技术指标(1)、设计要求1、设计一个出租车计价器。
2、该计价器的计费系统:行程3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟以1.5元计费。
3、并能显示行驶公里数、等待累计时间、总费用。
(2)、主要技术指标1、计价范围:0~999.9元计价分辨率:0.1元。
2、计程范围:0~99公里计程分辨率:1公里。
3、计时范围:0~59分计时分辨率:1分。
二、系统组成它由外部输入模块、FPGA模块、显示模块三部分组成。
三、模块设计(1)、分频模块1、分频模块对频率为240Hz的输入脉冲进行分频,2、得到的频率为16Hz,15Hz和1Hz的三种频率。
(2)、控制模块控制模块是系统的核心部分,对计价器的状态进行控制。
(3)、计量模块1、计价部分:行程3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。
2、计时部分:计算乘客的等待累计时间。
计时器的量程为59分,满量程自动归零。
3、计程部分:计算乘客所行驶的公里数。
计程器的量程为99公里,满量程自动归零。
(4)、译码模块1、计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示。
2、计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示。
3、计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示。
(5)、显示模块1、计价数据在以百元、十元、元、角为单位对应的数码管上显示。
2、计时数据在以分为单位对应的数码管上显示。
3、计程数据在以公里为单位的数码管上显示显示。
四、程序设计与仿真出租车计价器电路符号(1)、出租车计价器VHDL程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity taxi isport ( clk_240 :in std_logic; --频率为240Hz的时钟start :in std_logic; --计价使能信号stop:in std_logic; --等待信号fin:in std_logic; --公里脉冲信号cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); --费用数据km1,km0:out std_logic_vector(3 downto 0); --公里数据min1,min0: out std_logic_vector(3 downto 0)); --等待时间end taxi;architecture behav of taxi issignal f_15,f_16,f_1:std_logic; --频率为15Hz,16Hz,1Hz的信号signal q_15:integer range 0 to 15; --分频器signal q_16:integer range 0 to 14; --分频器signal q_1:integer range 0 to 239; --分频器signal w:integer range 0 to 59; --秒计数器signal c3,c2,c1,c0:std_logic_vector(3 downto 0); --费用计数器signal k1,k0:std_logic_vector(3 downto 0); --公里计数器signal m1:std_logic_vector(2 downto 0); --分的十位计数器signal m0:std_logic_vector(3 downto 0); --分的个位计数器signal en1,en0,f:std_logic; --使能信号beginfeipin:process(clk_240,start)beginif clk_240'event and clk_240='1' thenif start='0' then q_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';elseif q_15=15 then q_15<=0;f_15<='1'; --此IF语句得到频率为15Hz的信号else q_15<=q_15+1;f_15<='0';end if;if q_16=14 then q_16<=0;f_16<='1'; --此IF语句得到频率为16Hz的信号else q_16<=q_16+1;f_16<='0';end if;if q_1=239 then q_1<=0;f_1<='1'; --此IF语句得到频率为1Hz的信号else q_1<=q_1+1;f_1<='0';end if;if en1='1' then f<=f_15; --此IF语句得到计费脉冲felsif en0='1' then f<=f_16;else f<='0';end if;end if;end if;end process;process(f_1)beginif f_1'event and f_1='1' thenif start='0' thenw<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";elsif stop='1' thenif w=59 then w<=0; --此IF语句完成等待计时if m0="1001" then m0<="0000"; --此IF语句完成分计数if m1<="101" then m1<="000";else m1<=m1+1;end if;else m0<=m0+1;end if;if m1&m0>"0000001"then en1<='1'; --此IF语句得到en1使能信号else en1<='0';end if;else w<=w+1;en1<='0';end if;elsif fin='1' thenif k0="1001" then k0<="0000"; --此IF语句完成公里脉冲计数if k1="1001" then k1<="0000";else k1<=k1+1;end if;else k0<=k0+1;end if;if k1&k0>"00000010" then en0<='1'; --此IF语句得到en0使能信号else en0<='0';end if;else en1<='0';en0<='0';end if;cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0; --费用数据输出km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0; --公里数据、分钟数据输出end if;end process;process(f,start)beginif start='0' then c3<="0000";c2<="0001";c1<="0000";c0<="0000";elsif f'event and f='1' thenif c0="1001" then c0<="0000"; --此IF语句完成对费用的计数if c1="1001" then c1<="0000";if c2="1001" then c2<="0000";if c3<="1001" then c3<="0000";else c3<=c3+1;end if;else c2<=c2+1;end if;else c1<=c1+1;end if;else c0<=c0+1;end if;end if;end process;end behav;(2)、程序仿真图注:1. 仿真图中秒跟分的关系为3进制,即w为2时就归0;2. 出租车总行驶5公里,等待累计时间为4分钟,总费用为16.2元。
数电课程设计出租车计价器讲解

目录引言 (1)一、设计目的 (1)二、设计任务 (1)2.1设计要求及技术指标 (1)2.2要完成的任务 (1)2.3设计模块 (2)2.4总体思想 (2)2.5总体框图 (3)三、出租车自动计费器的实现 (3)3.1出租车电路的实现 (3)3.1.1里程计算与显示电路 (3)3.1.2里程比较电路 (4)3.2时间计费模块中的计数部分 (6)3.2.1设计任务分析 (6)3.2.3单元电路分析与设计 (6)3.2.4系统原理电路与仿真 (6)3.3 时间计费模块中的比较部分 (7)3.3.1 设计任务分析 (7)3.3.2 系统方案设计 (7)3.3.3 单元电路分析与设计 (7)3.3.4 系统原理电路与仿真 (8)3.4计价部分 (8)四、仿真过程 (8)4.1里程大于3km时 (9)4.2 等待时间大于5分钟时 (9)五、总电路 (10)六、设计心得 (10)七、出租车计费器核心器件简介 (12)7.1 74LS160 (12)7.2 74LS85 (14)7.3 555计时器 (15)7.4 7400N 74LS02N 7404N (17)7.5所用元件数量及价格表 (18)八、参考文献 (19)引言随着社会的进步以及人们生活水平的日益提高都促使交通工具的不断变化,无论是在大城市或是中小城市越来越多的出租车公司不断的出现。
出租车的出现方便了人们的生活,对于现在快节奏生活方式的人们来说出租车无疑是最好的交通工具。
那么其收费的方式自然而然就被给予关注,比如收费标准以及行驶里程等。
一、设计目的1.1 本电子设计主要实现以下目的:1)增强对数字电子技术课程的了解与掌握2)学习相关软件的使用方法3)具备简单电子的设计能力二、设计任务2.1设计要求及技术指标设计一出租车计价器,设计要求及技术指标如下:1、能计汽车行驶的里程和停车等候时间。
2、能自动显示出该收的车费和停车等候费。
3、超过基本里程,每千米行车费增加1元。
出租车计价器系统设计

出租车计价器系统设计
1.系统架构:出租车计价器系统的架构应该分为前端和后端两个部分。
前端负责收集乘客相关的信息,如起始时间、终止时间、起点和终点的位
置等,而后端负责根据这些信息进行计算并返回车费结果。
2.数据采集:为了实现计价器的功能,需要采集乘客乘车时的时间和
地理位置信息。
可以使用全球定位系统(GPS)来获取车辆的位置信息,
并通过系统的时钟记录乘车开始和结束的时间。
3.价格计算规则:出租车计价器系统的价格计算规则应该根据当地的
出租车定价政策来确定。
一般情况下,车费的计算会根据乘车的时间和距
离进行,同时还可能考虑其他因素,如车辆类型、夜间加价等。
4.数据存储和管理:为了实现出租车计价器系统的正常运行,需要将
乘车相关的数据进行存储和管理。
可以使用数据库来存储乘客和乘车信息,并使用相关的查询和更新操作进行数据的管理。
5.界面设计:出租车计价器系统的界面应该简洁、易用,方便乘客进
行操作。
可以使用图形用户界面(GUI)来实现用户与系统的交互,并提
供必要的输入和输出界面。
6.维护和升级:出租车计价器系统的维护和升级是保证系统稳定运行
的重要环节。
需要定期检查系统的硬件和软件设备,对系统进行故障排除
和性能优化,并根据出租车定价政策的更新进行相应的系统升级。
综上所述,出租车计价器系统应该具备数据采集、价格计算规则、数
据存储和管理、界面设计以及维护和升级等关键功能。
通过合理的系统架
构和设计,可以实现对出租车乘客车费的准确计算和及时反馈,提升乘客
的满意度和司机的收益。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安电子科技大学单片机电路设计报告设计题目:出租车计价器设计与实现系部计算机系专业计算机科学与技术班级030914学生姓名罗维、张长建、邓海霞学号03091350田玉敏指导教师2011年11月24 日1.前言本文介绍了出租车计价器系统在实际生产生活中的重要性,介绍一种以单片机STC89C52 为核心的出租车计价器的设计,阐述硬件设计过程中关键技术的处理。
在出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。
汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有一个应用价值的。
本设计采用STC89C52单片机为主控器,实现对出租车的计价设计,输出采8段数码显示管,74LS245芯片和74LS138芯片驱动。
本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜来调节单价,同时具有计时功能。
2.系统整体设计设计要求设计一款基于STC89C52单片机的出租车计价器基本功能(1)根据输入的模拟脉冲实现同步计费,起步价设为7 元,每公里费用初始设为2元(2)能够根据白天/晚上切换单价(3)具有清零功能(4)八位数码管动态显示(计费模式下4位显示路程,4位显示费用)(5)具有计时功能(6)能够在计时模式和计费模式之间切换(7)按键要求:白天/晚上切换、中断输入、清零、计时模式/计费模式切换系统功能本次设计的出租车计价器的主要功能有:金额输出、里程输出、数据复位、白天/晚上单价转换、计时等。
输出采用2个4位8段共阳极数码管。
计费模式下前四位显示金额,后四位显示里程,计时模式下八位全用来显示时间。
设计方案本设计是由硬件设计和软件设计两部分所组成。
软件设计要进行程序的编写和软件仿真;硬件设计要进行原理图设计,PCB设计,制作电路板和硬件调试等硬件设计方案:本系统的硬件设计主要包括单片机STC89C52、数据显示部分、按键单元、电源部分、RS232串口部分。
在硬件设计过程中,充分利用各部件的功能,实现多功能出租车计价器的设计计价器的系统框图如图1所示:单片C5按键输入数码管显示电路电源输入1 总体方案方框图图软件设计方案Proteus 7 软件进行软件调试和仿真。
语言编写程序,使用KeilC51和C本设计采用其中的里程计算方案和金额计算方案如下:里程计算用按键输入来代替霍尔传感器对车轮检测的输出脉冲到单片机1)(0.1km一个输入代表路程单片机对按键输入的信号进行计数,并进行路程计算。
(2)金额计算内不加价7元,并且2km起步价初始设定为(1)公里元公里,晚上按元后,开始加价。
白天按当路程超过)(2 2km2/3/开始设置定时器、中断参数扫描独立键盘公里元3/NO晚上按键按下?白天/ 公里元/YES 2 1计时定时器YES计费按下?计时/ 进入计时模式NO清零是否按下?YES复位结束软件流程2 图3.硬件设计本系统的硬件设计主要包括单片机STC89C52、数据显示电路、按键单元、电源电路部分、RS232串口电路STC89C52STC89C52主要特征●与MCS-51系列单片机产品兼容● 4K字节在系统可编程Flash存储器(片内具有4K字节闪速存储器)● 1000次擦写周期● 128Bytes的内部RAM单元● 4个8位I/O口,即32位可编程I/O口线● 2个16位定时器/计数器● 6个中断源●可编程全双工串行口●低功耗空闲和掉电模式●掉电后中断可唤醒●看门狗定时器●双数据指针●灵活的ISP在线编程功能(字或字节模式)●宽范围的工作电压,VCC的允许变化范围为了2.7~6.0V●可设置为待机状态和掉电状态●振荡器及时钟电路,全静态工作方式,时钟频率可为0Hz~24MHz。
具有全静态的工作方式,表明它不一定要求连续的工作时钟定时,在等待内部事件期间,时钟频率可降至0。
STC89C52芯片在出厂时,闪存处于可擦除状态,各地址单元内容为FFH,可随时进行编程。
编程是按字节进行的。
编程电压VPP有高压12V的,也有低压5V的。
STC89C52的内部结构框图如图3所示:STC89C52管脚结构图及管脚说明如图4所示VCC:供电电压。
GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,口作为第八位地址接P1编程和校验时,FLASH在这是由于内部上拉的缘故。
将输出电流,收。
管脚结构图4 STC89C52图P2.0~P2.7 P0.0~P0.7P0驱动 P2驱动RARAMP锁存FPEROMP锁存程序地寄存ACC寄存堆栈指TMP2TMP1缓P增1ALU中断串行口定时PCPSWPSEN定指DPTR控寄锁存P锁存POSCP驱P驱++P1.0~P1.7P3.0~P3.7图3 STC89C52的内部结构框图个4口缓冲器可接收,输出P2口,I/O位双向8口为一个内部上拉电阻的P2口:P2.TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表3-1所示:P3口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
表5 STC89C52部分引脚功能表端口引脚复用功能RXD P3.0 (串行输入口)TXD P3.1 (串行输出口)/INT0(外部中断0) P3.2/INT1(外部中断1) P3.3T0(定时器0 P3.4 的外部输入)T1 P3.5 (定时器1的外部输入)/WR(外部数据存储器写选通) P3.6/RD P3.7(外部数据存储器读选通)RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH 编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该微处理器在外部执行状态ALE禁止,置位无效。
引脚被略微拉高。
如果/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现,不管是否)0000H-FFFFH则在此期间外部程序存储器(保持低电平时,EA当:/EA/VPP有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入XTAL2:来自反向振荡器的输出STC89C52的振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
STC89C52最小系统单片机最小系统,是指能维持单片机运行的最简单配置的系统。
这种系统成本低廉、结构简单,常用来构成简单的控制系统。
复位电路单片机在启动运行时都需要进行复位操作,以便使CPU和系统中的其它部件都处于某一确定的初始状态,并从这个状态开始工作。
AT89C52单片机有一个引脚RST,它是施密特触发器的输入端,其输出端接复位电路的输入。
复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4μs才能完成复位操作。
复位有电复位和手动复位两种。
手动复位有电平方式和脉冲方式两种。
本次设计中,采用上电复位。
复位电路连接图如图6所示:图6 复位电路振荡电路时钟电路产生的振荡脉冲经过触发器进行二分频之后,才能为单片机的时钟脉冲信号。
振荡频率取决于石英晶体的振荡频率,频率范围可取1.2MHz—12MHz。
C2、C4主要起频率微调和稳定作用,电容值可取5~30pF。
晶体振荡频率高,则系统的时钟频率也高,单片机运行也就快,但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高(线。
22pF的值均为C4和12MHz,C2。
在本次设计中,选取晶振频率为间寄生电容要小).振荡电路如图7所示图7 振荡电路电源电路部分任何电子设备都需要用直流电源供电,比较经济实用的的方法是直接使用计算机USB接口供电,其输出电压稳定,可靠性高,调试方便电源电路见图8图8 电源电路数据显示电路LED显示器介绍在单片机应用系统中,为了控制系统的工作状态,以及向系统中输入数据和信息,系统应设有按键或键盘。
为了观察和监视键盘输入的信息,为了了解系统的工作情况以及得到系显示器。
LED统完成任务的结果,系统应设有显示装置。
单片机最常用的显示装置是图9 LED管脚配置图LED显示器原理LED显示块是由发光二极管显示字段的显示器件。