出租车计价器设计方案.docx

上传人:b****6 文档编号:7337769 上传时间:2023-01-23 格式:DOCX 页数:26 大小:332.91KB
下载 相关 举报
出租车计价器设计方案.docx_第1页
第1页 / 共26页
出租车计价器设计方案.docx_第2页
第2页 / 共26页
出租车计价器设计方案.docx_第3页
第3页 / 共26页
出租车计价器设计方案.docx_第4页
第4页 / 共26页
出租车计价器设计方案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

出租车计价器设计方案.docx

《出租车计价器设计方案.docx》由会员分享,可在线阅读,更多相关《出租车计价器设计方案.docx(26页珍藏版)》请在冰豆网上搜索。

出租车计价器设计方案.docx

出租车计价器设计方案

计算机科学与技术学院

硬件课程设计报告

 

姓名:

赵海鹏学号:

08093719

专业:

信息安全

班级:

信安09-1 

设计题目:

出租车计价器

成员:

赵海鹏

指导教师:

苏晓龙

 

2011年12月徐州

 

课程设计指导教师评阅书

指导教师评语:

 

成绩:

指导教师签字:

年月日

摘要

在这个实验当中,我们是以步进电动机来模拟汽车车轮的转动。

用霍尔传感器对转动信号进行采集。

把采集到的信号传送8253进行计数(采用减数计数法)。

在此系统中,起步价为5元(即3公里以内为5元),超过5公里的部分,每公里1元;E键切换公里数与总价钱显示,F键清零。

 

关键字:

出租车计价器;8253;8279;霍尔元件

目录

总体设计部分

1设计任务与要求------------------------------------------------------------------------------------------------4

1.1问题的提出----------------------------------------------------------------------------------------------------4

1.2需求分析-------------------------------------------------------------------------------------------------------4

1.3设计任务-------------------------------------------------------------------------------------------------------5

2硬件设计----------------------------------------------------------------------------------------------------------5

2.18253的应用--------------------------------------------------------------------------------------------------5

2.28279的应用--------------------------------------------------------------------------------------------------9

2.3霍尔元件的应用--------------------------------------------------------------------------------------------13

2.4电路的主要功能-----------------------------------------------------------------------------------------------14

2.4.1采集信号的功能-----------------------------------------------------------------------------------------14

2.4.2计数功能-------------------------------------------------------------------------------------------------15

2.4.3输出功能------------------------------------------------------------------------------------------------15

2.5电路连线图-------------------------------------------------------------------------------------------------17

3软件设计--------------------------------------------------------------------------------------------------------17

3.1流程图-------------------------------------------------------------------------------------------------------18

3.2实验源程序-----------------------------------------------------------------------------------------------19

专题设计部分

实验体会与总结----------------------------------------------------------------------------------------------17

参考文献------------------------------------------------------------------------------------------------------------17

 

总体设计部分

1设计任务与要求

1.1问题的提出

出租车计价器在人们生活中发挥着极其重要的作用,已经成了人们生活中的一部分,它也是现代电子科技服务生活的一个很好的实例。

在此之前,人们一般会用估计方法估算出大概的乘车费用,而估算是靠人们的生活经验,其误差往往是比较大的。

如果是熟知地段和路程,其乘车费用还相对容易计算,也能使双方满意。

而对于非熟知地段和路程,其费用的计算往往引起争议,使双方的生活产生不必要的障碍。

为了解决以上问题,我们提出设计出租车计价器。

它应具有较准确的计价功能,并且其计价值与出租车行驶距离具有固定算法,不损害双方利益,以公平、公正为原则。

1.2需求分析

了解市场的需求,是设计的主要考虑因素。

在出租车计价过程中往往出现问题。

问题的关键是:

大家都想做一笔公平的交易。

即车主想收回成本并有所盈利,乘客想消费的时候物有所值。

其表现的具体形式就是乘车费用的计算,这是本问题的核心所在。

我们就应分析:

如何才能体现公平,最终达到公平交易。

要想出租车计价实现公平,则务必做到精确的测量和计算。

在本实验中,我们设计出租车计价器,它运用的是一种使用仪器收集信号的方法,这样它的精度就比较高(由于仪器限制,信号用固定频率信号模拟代替)。

然后,我们采用的是可编程的计数器8253,保证了能够进一步的提高它的准确性。

此时,问题并没有完全得到解决。

原因在于:

8253可以计数,但是它却不能把数据的信息直接的传递给一些外部设备,让外部的设备将这些信息能够显示出来,比如说,用显示灯来显示的话,8253就做不到直接与其通信的功能。

出租车计价器采用仪器计价,其精度很高,性能良好,值得信赖。

可以使交易双方放心,从而使交易顺利进行。

这样,生活中的这个问题就能够借助出租车计价器而得以解决。

市场的需求,即生活的需求,就是要得到一个公平的、精确的计价器,这个计价器设计出之后就满足了这个需求,解决了实际生活问题。

1.3设计任务

设计一个出租车计价器系统,当出租车起步后,随着行驶距离的增加在显示管上显示乘客应付的价钱。

当出租车停止后,计价系统停止运行。

2硬件设计

实用的出租车计价器系统含有传感器部分,数据处理部分也由单片机来做(使用微机系统实现代价过大且资源利用率极其低下)。

因此,根据所给实验仪器和要求我们只是利用实验系统对出租车计价器系统进行简单模拟,所设计的系统当然并没有多大实用性。

这一点在此做简单的说明。

下面对我们的实验原理作简要介绍。

利用直流电机模拟出租车车轮的转动。

直流电机转动后每隔一定的时间脉冲后8253进行计数,使得行车里程数和乘车费用都加1,这些变化都将在8279键盘显示上得以显示。

2.18253的应用

8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。

当计数脉冲是已知周期的时钟信号时,计数就成为定时。

  一、8253内部结构

  8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。

  1.数据总线缓冲器

  数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。

这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。

  2.读/写控制

  读/写控制分别连接系统的IOR#和IOW#,由CPU控制着访问8253的内部通道。

接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。

A1A0:

端口选择信号,由CPU输入。

8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。

这4个端口地址由最低2位地址码A1A0来选择。

如表9.3.1所示。

  3.通道选择

  

(1)CS——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。

  

(2)RD、WR——读/写控制命令,由CPU输入,低电平有效。

RD有效时,CPU读取由A1A0所选定的通道内计数器的内容。

WR有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。

  4.计数通道0~2

  每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。

8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。

采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。

最大计数值是9999。

与此计数器相对应,每个通道内设有一个16位计数值锁存器。

必要时可用来锁存计数值。

  当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。

OUT端将有输出。

表示计数次数到。

当某个通道用作定时器时。

由CLK输入一定频率的时钟脉冲。

根据要求定时的时间长短确定所需的计数值。

并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”。

OUT将有输出,表示定时时间到。

允许从CLK输入的时钟频在1~2MHz范围内。

因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。

而后者是内时钟脉冲进行减“1”计数。

作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。

作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:

  定时系数=需要定时的时间/时钟脉冲周期

  ①设置通道:

向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;

  ②计数/定时:

向通道写入计数值,启动计数操作;

  ③读取当前的计数值:

向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。

  ④计数到:

当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。

  计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。

  锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。

  5.方式选择控制字

  二、8253的通道工作方式

  8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。

8253的各种工作方式如下:

  1.方式0:

计数结束则中断

  工作方式0被称为计数结束中断方式,当任一通道被定义为工作方式0时,OUT输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUT仍保持低电平,然后计数器开始减“1”计数,直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT端输出的高电平一直维持到下次再写入计数值为止。

  在工作方式0情况下,门控信号GATE用来控制减“1”计数操作是否进行。

当GATE=1时,允许减“1”计数;GATE=0时,禁止减“1”计数;计数值将保持GATE有效时的数值不变,待GATE重新有效后,减“1”计数继续进行。

  2.方式1:

单脉冲发生器

  工作方式1被称作可编程单脉冲发生器,进入这种工作方式,CPU装入计数值n后OUT输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。

与此同时,OUT输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。

  如果在减“1”计数过程中,GATE由高电平跳变为低电乎,这并不影响计数过程,仍继续计数;但若重新遇到GATE的上升沿,则从初值开始重新计数,其效果会使输出的单脉冲加宽,如教材图9-22(b)中的第2个单脉冲。

  这种工作方式下,计数值也是一次有效,每输入一次计数值,只产生一个负极性单脉冲。

  3.方式2:

速率波发生器

  工作方式2被称作速率波发生器,进入这种工作方式,OUT输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT保持为高电平不变;待计数值减到“1”和“0”之间,OUT将输出宽度为一个CLK周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLK周期,重复周期为CLK周期的n倍。

  如果在减“1”计数过程中,GATE变为无效(输入0电平),则暂停减“1”计数,待GATE恢复有效后,从初值n开始重新计数。

这样会改变输出脉冲的速率。

  如果在操作过程中要求改变输出脉冲的速率,CPU可在任何时候,重新写人新的计数值,它不会影响正在进行的减“1”计数过程,而是从下一个计数操作用期开始按新的计数值改变输出脉冲的速率。

  4.方式3:

方波发生器

  工作方式3被称作方波发生器,任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:

1的方波。

  进入工作方式3,OUT输出低电平,装入计数值后,OUT立即跳变为高电平。

如果当GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。

这时OUT端输出的周期为n×CLK周期,占空比为1:

1的方波序列;若n为奇数,则OUT端输出周期为n×CLK周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。

  如果在操作过程中,GATE变为无效,则暂停减“1”计数过程,直到GATE再次有效,重新从初值n开始减“l”计数。

  如果要求改变输出方波的速率,则CPU可在任何时候重新装入新的计数初值n,并从下一个计数操作周期开始改变输出方波的速率。

  5.方式4:

软件触发方式计数

  工作方式4被称作软件触发方式,其定时波形如图9.3.8所示。

进入工作方式4,OUT输出高电平。

装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUT输出宽度为一个CLK周期的负脉冲。

由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。

如果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。

  显然,利用这种工作方式可以完成定时功能,定时时间从装入计数值n开始,则OUT输出负脉冲(表示定时时间到),其定时时间=n×CLK周期。

这种工作方式也可完成计数功能,它要求计数的事件以脉冲的方式从CLK输入,将计数次数作为计数初值装入后,由CLK端输入的计数脉冲进行减“1”计数,直到计数值为“0”,由OUT端输出负脉冲(表示计数次数到)。

当然也可利用OUT向CFU发出中断请求。

因此工作方式4与工作方式0很相似,只是方式0在OUT端输出正阶跃信号、方式4在OUT端输出负脉冲信号。

  6.方式5:

硬件触发方式计数

  工作方式5被称为硬件触发方式,进入工作方式5,OUT输出高电平,硬件触发信号由GATE端引入。

因此,开始时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUT将输出负脉冲,其宽度固定为一个CLK周期,表示定时时间到或计数次数到。

  这种工作方式下,当计数值计到“0”后,系统将自动重新装入计数值n,但并不开始计数,一定要等到由GATE端引入的正跳沿,才会开始进行减“1”计数,因此这是一种完全由GATE端引入的触发信号控制下的计数或定时功能。

如果由CLK输入的是一定频率的时钟脉冲,那么可完成定时功能,定时时间从GATE上升沿开始,到OUT端输出负脉冲结束。

如果从CLK端输入的是要求计数的事件,则可完成计数功能,计数过程从GATE上升沿开始,到OUT输出负脉冲结束。

GATE可由外部电路或控制现场产生,故硬件触发方式由此而得名。

  如果需要改变计数初值,CPU可在任何时候用输出指令装入新的计数初值m,它将不影响正在进行的操作过程,而是到下一个计数操作周期才会按新的计数值进行操作。

  从上述各工作方式可看出,GATE作为各通道的门控信号,对于各种不同的工作方式,它所起的作用各不相同。

在8253的应用中,必须正确使用GATE信号,才能保证各通道的正常操作。

  7.读取计数器的当前值

  ⑴直接读计数器:

输出锁存器在非锁存状态会跟随计数器计数的变化而变化,直接读计数器是从锁存器得到计数器的当前值。

但由于计数器处于工作状态,读出值不一定能稳定。

 ⑵先锁存再读取:

①通过方式选择控制字对指定通道(SC1、SC0)的计数值锁入锁存器(RL1RL0=00),锁存器一旦锁存了当前计数值,就不再随计数器变化直到被读取。

②读计数器通道(有锁存器)。

 

2.28279的应用

实验中要利用8279的数码显示功能,在实验中将8279键盘接口显示器件选中后,对其进行初始化,在将8253送入的时钟信号在键盘显示器上予以显示,在本实验中8279键盘显示的是模拟的出租车行驶公里数和需要交纳的费用。

8279的编程方法:

  1.8279可按其功能分为:

键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括

  控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.

  控制和定时寄存器:

用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.

  定时和控制:

它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.

  扫描计数器:

扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描.

  键盘功能块包括:

返回缓冲器,键盘反跳及控制,8x8FIFO传感器RAM,FIFO/传感器RAM状态.

  2.返回缓冲器与键盘反跳及控制8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合的键,如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合,如果仍闭合,那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFORAM中的数据格式如下:

  D7D6D5D4D3D2D1D0

  CNTLSHIFTSCANRETURN

  数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行.列的值,如果在传感器阵列中,返回线上的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置.

  FIFO/传感器RAM

  一个8x8RAM,在键盘方式和选通方式中它是一个先入先出(FIFO)存贮器,每一条新的信息顺次写入,然后又按写入顺序读出,在传感器阵列扫描方式时,存贮器作为传感器RAM,这时RAM中的各行存着传感器阵列中相应行的状态.

  FIF0/传感器RAM状态

  在键盘或选通方式中,FIFO状态跟踪FIFO中字符数量注意它是"满"还是"空",写入或读出过多均被认作出错,当FIFO非空时,状态逻辑提供一个中断申请IRQ信号,在传感器阵列扫描方式中,若测知某一传感器变时,IRQ则为有效高电平.FIFO状态字的低3位表示FIFO中的字符数,F表示FIFORAM已满;O(overmn)表示越限错误,即试图向已满的FIFO送另一字符;U(Underdone)表示取空错误,即试图读取已空的FIFO.S/F有两种含义:

在传感器扫描方式时,S/F表示在传感器RAM中至少包含了一个传感器闭合指示,在特殊错误方式时S/F位是出错标志,用来指示是否发生了多路同时闭合错误,Du位表示由于CLEARDISPLAY或CLEARALL命令尚末完成其消除操作而使显示RAM尚不可用.

  3.显示功能块包括:

显示寄存器,16X8显示RAM,显示地址寄存器.

  显示RAM和显示寄存器

  8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UTA0-3,0UTBO-3来刷新显示,显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式,显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示.显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址,读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式,在设置了正确的工作方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

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

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