ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:597.86KB ,
资源ID:21374461      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21374461.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(出租车计费系统的设计思路和过程Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

出租车计费系统的设计思路和过程Word格式文档下载.docx

1、当乘客上车时,可自动问候乘客,当到达目的地,自动播报乘车费用并礼貌再见,表达希望下次乘坐的意思。增加的这些功能将会更好地为乘客服务。本系统设计也可应用于其他计费系统中,如电脑计费系统等等,其应用技术也有相当范围的应用面,如显示和播报部分也可应用于智能饭卡智能电动车机器人等电子相关产品中。可见掌握了该系统的设计和分析可实现对电子专业知识的具体应用,增强理论联系实际的能力。除此以外,所涉及的知识面也联系到现实生活中很多相关电子产品,也将对其他电子产品有一定理论基础。第第 2 章章 系统设计系统设计 2.1 系统组成系统组成 其中系统电源电压为+16V。速度传感器不需要进行设计,假设它具有汽车每运行

2、1 提供 1000 个脉冲信号的特性。显示器采用 LED数码管。具体功能要求如下:图 2.1系统方框图 2.1.1 计费及显示计费及显示 里程,即汽车行程里程,用四位数字显示,显示方式为“XXX.X”,单位为,精确到 0.1。单价,即里程单价,用三位数字显示,显示方式为“X.XX”,单价为元/,根据每天不同的时间段有两种情况:当时间段为 06:0023:00 时单价为 1.4 元/,其他时间段内单价为 1.80元/。等候时间,用四位数字显示分钟和秒,显示方式为“XX:XX”,等候的定义是:当汽车行驶速度小于或等于 12/h 时为“等候”。在等候时间大于 1 小时的情况下,可以不显示等候时间,但

3、必须对等候时间进行统计计算。等候单价,等候单价有两种情况:在等候时间小于 1 小时的情况下,等候单价为 1 元每 5 分钟;在等候时间大于 1小时的情况下,等候单价为 20元每小时。费用的计算,出租车的起价为 5.00元,当里程小于 2时,按起价计算费用;当里程大于 2时按下式计算费用:费用=里程*里程单价+等候时间*等候单价。费用的显示,用五位数字显示,显示方式为“XXX.XX”,单价为元。2.1.2 时钟及显示时钟及显示 当出租车在通常运行状态下,应能显示当前的时间,在汽车熄火的情况下,时钟必须正常运行,但是可以不显示时钟.2.1.3 计费开始提示计费开始提示 当出租车载上乘客并起步后,将

4、空车指示牌扳倒时,空车指示牌里的指示灯熄灭,并有语音或灯光提示信号。图 2.2 总体原理框图 2.2 功能模块设计功能模块设计 根据系统的设计要求,将整个测控 FPGA系统 CZJFXT分为七个模块,它们分别是:分频器模块 FPQ,等待判别模块 DDPB,里程计算模块 LCJS,里程计费模块LCJF,等待计时模块 DDJS,等待计费模块 DDJF,输出数据选择模块 SCXZ。分频器模块 FPQ:将外部时钟信号 SCLK(设计时假设为 1024HZ)经过适当分频后,产生 1HZ的系统工作用基准时钟信号 CLK1HZ,供给系统中的有关模块计时用。等待判别模块 DDPB:根据速度传感器脉冲信号 WC

5、LK 和分频器产生的基准时钟信号 CLK1HZ,计算单位时间里 WCLK 的脉冲个数(每产生 1000个脉冲信号,即每米产生 1个脉冲信号),亦即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号 DDBZ。当速度大于 12/H,即速度大于 200M/MIN 时,出租车处于运行状态,这时等待标志 DDBZ=0;当速度小于等于 12/H,即速度小于等于200M/MIN时,出租车处于等待状态,这时等待标志 DDBZ=1。该模块的 VHDL程序设计可分为三个进程:60S 周期性跳变信号产生进程,每分钟行驶距离计算进程,等待标志判别进程。等待标志判别进程就是比较每分钟 WCLK 脉冲个数

6、与等待状态 WCLK脉冲临界个数 200的大小,从而确定 DDBZ的赋值。里程计算模块 LCJS:根据速度传感器脉冲信号 WCLK 和等待标志 DDBZ,对出租车行驶的里程数 XSLC 进行计算,同时发出里程标志信号 LCBZ和里程计费标志信号 JFBZ。如果 LCBZ=1,说明行驶距离超过 2,里程计费启动;如果 LCBZ=0,说明没超过 2,按起价计费,每行驶 1应计费 1次,并且计费的启动信号应是某一时刻,因此每行驶 1,计费标志信号 JFBZ 应跳变 1次。该模块的 VHDL程序设计可分为两个进程:里程计算及标志产生进程,产生计费信号进程。产生计费信号进程就是每行驶 10百米(即 1)

7、JFBZ由低电平 0 变为 1,经过一个系统时钟周期后JFBZ又回复到低电平 0,里程计费模块 LCJF就是在 JFBZ脉冲信号的上升沿到来时进行计费的加法操作。里程计费模块 LCJF:在计费标志信号 JFBZ,等待标志信号 DDBZ,里程标志信号 LCBZ和时段标志信号 SDBZ等信号的控制下,计算行驶里程超过 2 以上里程的费用 LCFY。该模块的 VHDL程序是通过由多个条件控制的加法进程来完成里程计费的,里程计费的条件是在 DDBZ=0,并且在 JFBZ的上升沿根据 SDBZ分别进行加法计费操作。当 SDBZ=1 时,表示在 06:00 时段,其单价 SD1为 1.4 元/;当SDBZ

8、=0 时,表示其他时段,其单价 SD2为 1.8 元/。如果 LCBZ=0,说明没超过 2,按起价计费。等待计时模块 DDJS:在等待标志信号 DDBZ 和基准时钟信号 CLK1HZ的控制下,进行等待时间 DDSJ 的计算,其中 DDSJ 的低 8 位表示等待时间的秒数,DDSJ 的高 8 位表示等待时间的分钟数,同时根据等待时间的长短发出一个熄灯标志信号XDBZ。当等待时间小于等于 1小时,XDBZ=0,等待时间显示灯亮;当等待时间大于1 小时,XDBZ=1,等待时间显示不亮。该模块的 VHDL程序是通过一个多层嵌套的加法进程来完成等待计时的。等待计费模块 DDJF:在等待标志信号 DDBZ

9、 和熄灯标志信号 XDBZ 控制下,进行等待费用 DDFY的计费操作。该模块的 VHDL程序包括两个进程:60S 周期性跳变信号产生进程,等待费用计算进程。等待费用计算的条件是在 DDBZ=1 并且在 60S 周期性跳变信号 T60S 的上升沿,根据 XDBZ分别进行加法计费操作。当 DDBZ=1 且XDBZ=0 时,按 1 元/5 分钟,即 20 分/分钟计费;当 DDBZ=0 且 XDBZ=1 时,按 20元/小时,即 33分/分钟计费。输出数据选择模块 SCXZ:根据单片机发出的数据传输选择控制信号 SEL,选择有关计算处理结果传输给单片机。第第 3 章章 硬件及软件实现硬件及软件实现

10、3.1 传感器传感器 传感器通常是指能感受并能按一定规律将所感受的被测非电量(包括物理量、化学量、生物量等)转换成便于处理与传输的电量(一般为电量,也有少数为其他物理量,如光信号)的器件或装置。光电传感器是把光信号转换为电信号的传感器,光电传感器的种类极多。它们共同的特点是响应速度快,易于实现非接触测量,非常适于与计算机接口。3.1.1 光电传感器电路设计光电传感器电路设计 光电传感器工作时,大致应用了三种效应:通过光子与物质的相互作用能直接得到电信号的量子效应;光被物质吸收变成热量后,利用热电转换得到电信号的热效应;光作为一种电磁波,直接与物质相互作用,从而感应出电信号的波动相互作用效应。反

11、射式光电传感器是用来检测黑白线条的,如图 3.1.1(a)所示 由于黑白物体的反射系数不同,利用反射光可以使光敏三极管实现导通和断开,调节传感器与被测对象之间的距离,使光敏三极管只能接受到白色物体反射回来的光束。而黑色物体的反射系数小,所反射回来的光束很弱,光敏三极管无法接受到反射光。从而实现对黑白线条的检测。还要在输出信号处加个控制电路,如图 3.1.1(b)起隔离强信号和方波整形的作用.(a)(b)图 3.1.1 反射式光电传感器 3.1.2 车轮光电开关检测电路车轮光电开关检测电路 由于要测出出租车的运行速度,每 1千米产生 1000个脉冲信号并计算出单位时间里的脉冲个数,转换成车轮所转

12、的圈数,即产生脉冲数的多少。在该设计中采用在车轮的转盘上安装一个 3 条黑白线均匀的圆盘,再用光电开关来检测,如下图 4.1.2所示,当出租车运动时,车轮转动,光电传感器利用接收黑白电平时输出的高低电平,当光电传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑白条数转换成脉冲数,从而测试出出租车运行速度。图 3.1.2 光电检测电路 用一张贴有黑色胶带的白纸,让光电传感器离纸不到 5cm 的平面上与胶带垂直经过,看计数是否与所经过的的胶带数目相等,若多次测试都是吻合的,则此光电传感器良好.3.2

13、 单片机单片机 单片机既是一个微型的计算机,它具有组成计算机系统的三个要素:CPU、内存与 I/O。CPU:运算或逻辑上的判断;内存:存放程序与数据;I/O:与外界沟通的桥梁。图 3.2.1 单片机简图 3.2.1 8051 单片机功能方块图单片机功能方块图 图 3.2.2 8051 单片机功能方块图 振荡及时序单元(OSC):8051内部有晶体振荡电路,只要在外部加上石英振荡晶体,即可产生频率非常稳定的振荡信号,这个振荡信号正是 8051的心脏,所有 8051的时钟序列都以此振荡信号为基准。内部数据存储器(Data Memory):当程序在运行时,有些数据是经常在变动的,例如 LED的显示状

14、态或显示值等,它会因 I/O测量的结果而变动,这些值就暂时放置在此区域中,供其他程序进一步读取,这也代表此区域是可以随时读写的。8051系列的 CPU提供 128个字节可读写的数据存储单元,52系列的 CPU 则提供 256个字节的数据存储单元,这个数据区域中有一段区域 16个字节共 128 位是可以进行位寻址的,MCS51系列的 CPU 有相当强的位处理指令,可以妥善且有效地运用该数据存储器,使用方法将在 8051 的指令说明中再详述。内部程序存储器(Program memory):这段区域用于存放我们的应用程序,而且这部分一经确认后是永远不做修改的。8051 系列的 CPU 提供内部 40

15、96 个字节(4KB)的程序存储器,8052 系列的 CPU则提供 2 倍即 8192 个字节(8KB)的程序存储器,而 8031和 8032则不含此单元。此单元可以使 CPU 选择由内部的程序区启动或由外部的程序区启动,内部的程序区启动具有保护功能,后者成本较为低廉。在 8051系统中特地将程序区和数据区分隔开,两者最大的差异是后者可以读取和写入,简而言之,PROGRA MMEMORY 就是 ROM,DATA MEMORY则是 RAM。定时/计数器(Timer/Counter):51系列的 CPU 有 2 个定时/计数器,而 52系列 CPU则有 3个定时/计数器,每个定时/计数器又有多种模

16、式可供选择。串行接口(Serial Port):8051可通过此接口与外部的计算机等设备连线交换信息,也可以通过此接口进行I/O的扩充。并行输入/出端口(Parelled I/O):不论是 8051或 8052 单片机都有 4 个输入/出端口,总共有 32 个输入/出,而且每个点都可以单独定义成输入或输出。控制总线(Bus Control):当程序的空间超出 MSC51系列内存程序空间的限制时,会通过本单元的控制线路向外部送出地址线信号和控制信号,同时当程序执行 MOVX DPTR,A指令时,代表对外部数据内存做写入的运行,此时也要靠本单元送出必要的控制信号,才能达成外部 READ与 WRIT

17、E 的运行请求。8051运算处理单元(Core):这是整个单片机的控制处理核心,它读取程序码,经过计算及处理后,将结果送到各个寄存器或输入/输出端口上,并且接受内部和外部的中断信号,然后执行特定的中断服务程序。只要加入电源并且石英晶体开始运行后,本单元就一直不停地工作着,通常我们所谓的死机是指本单元跳入一个未知没有出口的循环中执行,而不是指CPU 停止一切的运行,不再执行任何程序。累加器(Accumulator):累加器是众多寄存器中最重要的一个寄存器,通常以简写 Acc代表累加器,8051的指令中有许多指令和 Acc寄存器有关,也有多个指令非通过 Acc 不可,基本上,8051 的指令中赋予

18、 Acc 累加器的权限最大。Intel 公司建议程序的执行尽量以 Acc为主。B寄存器(B Register):B寄存器是一个一般用途的工作寄存器,当 8051使用乘除指令时,则一定要通过B寄存器来做运算。中断优先顺序控制寄存器(IPC,Interrupt Priority Control):这个寄存器中存放中断时的优先顺序表,若对应的位设成 1 时,代表中断有较高的中断优先权。允许中断控制寄存器(IEC,Interrupt Enable Control):此寄存器内含系统允许中断的中断源设置值,8051 共有 5个中断可供选择,8052则有 6个中断源,IEC 寄存器内另有一个位简称 位,若

19、 0时就禁止系统所有的中断要求。串行输出入缓冲寄存器(SBUF,Serial Buffer):所有待送出或刚进入的串行数据值都存放在此寄存器中,8051 的串行通信是非常简单的,只要一设置完通信协议后,再执行一个 MOVSBUF,A指令,就可立即将并行数据值转化成串行数据送到外部。串行通信控制寄存器(SCON,Serial ControL或称 UART):此寄存器主要在设置串行通信的模式,当串行数据已经送完或数据已收妥时,会有对应的位被设置成 1,这些位也可以当成中断要求信号,请求 CPU执行特定的串行中断服务程序。定时/计数控制寄存器(TCON,Timer/Counter Control):

20、这个寄存器可以控制定时/计数器的打开或关闭,若一经打开且计数到溢位时,TCON上亦有对应的位被设成 1,CPU必须针对此位的状态,决定是否重新设置定时/计数值。堆栈指标寄存器(SP,Stack Pointer):8051利用 SP 指引最近一次存入堆栈内的地址,每当我们在程序中调用其他子程序时,原程序的返回地址就会自动存入内部 DATA MEMORY 组成的堆栈(Stack)中,而当子程序执行到 RET 指令时,CPU会自动由堆栈中取回原先存入的返回地址,继续执行原程序。每当 CPU 将 8 位值存入堆栈时,我们称之为 PUSH(推入),这时 SP 值会增加 1,反之堆栈中取回 8位值时,则称

21、之为 POP(提回),此时 SP 值会减少 1。在写 8051单片机的控制程序时,在程序起始状态阶段一定要设置 SP 值,以便程序有足够的堆栈空间,也可以利用软件程序随时机动调整的堆栈指标 SP 的值。特殊功能寄存器区(SFR,Special Function Register)8051单片机内部将多个寄存器统称成 SFR,代表其特定的功能,甚至 Port0、Port1、Port3也都是属 SFR 的成员之一,在这些 SFR 中有部分的寄存器可以进行位寻址,表 4.1是这些 SFR 寄存器的整理,其中加(*)记号的寄存器可进行位寻址。表 3.1 可进行位寻址的 SFR 寄存器 SFR 寄存器

22、部分可进行位寻址的寄存器 算术运算寄存器 Acc(*)、B(*)、PSW(*)指标类寄存器 SP、DPL、DPH 并行输入/出端口 P0(*)、P1(*)、P2(*)、P3(*)中断控制寄存器 IP(*)、IE(*)定时/计数寄存器 TMOD、TCON(*)、TL0、TH0、TL1、TH1 串行通信寄存器 SCON(*)、SBUF 3.2.2 AT89S51 单片机简介单片机简介 AT89S5l 是新型高档单片机。它的主要特性是:片内含有 32 KB的 Flash 程序存储器,擦写周期为 1000次;片内数据存储器内含 512字节的 RAM;具有可编程 32线 I/O 口(P0,P1,P2和

23、P3 口);具有 3个可编程定时器 T0,T1和 T2;中断系统是具有 8 个中断源、6个中断矢量、2级中断优先权的中断结构;具有一个全双工 UART 串行口;低功耗工作方式为空闲模式和掉电模式;具有双数据指针 DPTR0 和 DPTR1;具有 3级程序锁定位;具有硬件看门狗定时器 WDT;AT89S51 工作电源为 4.05.5V(AT89LV51RC 为 2.75.5V);AT89S51 最高工作频率为 33MHZ(AT89LV51RC 为 12MHZ);具有断电标志 POF 3.2.3 AT89S5l 与与 51 系列单片机相比具有如下特点系列单片机相比具有如下特点 程序存储器由 8 K

24、B 增加到 32 KB;片内数据存储器由 256宇节增加到 512字节;数据指针由 1个增加到 2 个;增加了看门狗定时器,CPU 在执行程序过程中,由于瞬时的干扰使程序陷入死循环状态,WDT(Watchdog Timer)是使 CPU 摆脱这种困境而自动恢复的一种方法;退出掉电方式由单纯硬件复位方式增加到硬件复位和中断两种方式;新增加了断电标志 POF 3.2.4 89S51 的内部框图的内部框图 图 3.2.3 89S51 的内部框图 引脚排列及功能:AT89S51 有 3种封装形式:PDIPPLCC 和 TQFPPDIP 封装的引脚排列如图所示。图 3.2.4 单片机电路板 口线 P0口

25、8 位、漏极开路的双向 1O口。当使用片外存储器及外扩 IO口时,P0口作为低字节地址数据复用线。在编程时,P0口可用于接收指令代码宇节;在程序校验时,P0 口可输出指令字节(这时需要加外部上拉电阻)。P0口也可作通用 I/O 口使用但需加上拉电阻变为准双向口。当作为普通输入时,应将 输出锁存器置 1 PO口可驱动 8个 TTL负载 P1口8 位、准双向 IO口,具有内部上拉电阻。P1口是为用户准备的 1O双向口。在编程和校验时,可用做输入低 8位地址。用做输入时,应先将输出锁存器置 1 P1口可驱动 4 个 TTL负载。表 4.2 P1.0 P1.1 替代功能 引 脚 替代功能 说 明 P1

26、.0 T2 定时器 2 的外部事件输入端;可编脉冲输出端 P1.1 T2EX 定时器 2 的捕捉重装触发器输入端;定时器 2 的计数方向控制端 P2口8 位、准双向 1O口具有内部上位电阻 当使用片外存储器或外扩 1O口时P2口输出高 8位地址。在编程校验时P2口可接收高字节地址和某些控制信号。P2口也可作普通 IO 口使用。用做输入时,应先将输出锁存器置 1 P2口可驱动 4 个 TTL负载。P3口8 位、准双向 1O口,具有内部上拉电阻。P3口可作为普通 1O口。用做输入时,应先将输出锁存器置 1在编程校验时P3口接收某些控制信号。它可驱动 4个 TTL负载。P3口还提供各种替代功能。表

27、3.3 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(外部数据存储器读选通)控制信号线 RST复位输入信号,高电平有效。在振荡器稳定工作时,在 RST 脚施加两个机器周期(即 24个晶振周期)以上的高电平,将器件复位。EAVPP外部程序存储器访问允许信号 EA(External Access Enable)。当EA信号接地时,对 ROM的读操作限定在外部程序存储器,地

28、址为0000HFFFFH;当EA接地时,对 ROM 的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压(AT89C51 的 VPP 为 5V或 12V;AT89LV51的VPP 为 12 V)。在编程校验时,该引脚可接 VCC。PSEN片外程序存储器读选通信号用 PSEN(Program Store Enable),低电平有效 在片外程序存储器取指令期间,当PSEN有效时,程序存储器的内容被送至 PO口(数据总线);在访问外部 RAM时,PSEN无效。AIE/PROG低字节地址锁存信号 AlE(Address latch Enable)。在系统扩展时,AlE

29、的下降沿将 PO口输出的低 8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲频率为晶振频率的 16,可用做外部定时脉冲使用。但要注意,每次访问外 RAM 时要丢失一个 ALE脉冲。在编程期间该引脚输入编程脉冲(PROG)。电源线 VCC电源电压输入。GND接地。外部晶振引线 XTAL1片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体 和微调电容。当使用外部振荡器时,引脚 XTAL1 接收外振荡器信号,XTAIL2 悬空。3.2.5 中断控制中断控制 可采用中断的时机:当计数值数完时要做一个特定的动作。当外部信号有一个脉冲信号产生时要做某种特定的运算。当外部某些信号成立时,必须立即处理。当收到通信界面上的一个特定值时,必须立即反应。当程序必须处理数个小程序,且这些程序必须几乎同时都在执行中。当

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1