欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机课程设计出租车计价器.docx

    • 资源ID:494826       资源大小:284.44KB        全文页数:28页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计出租车计价器.docx

    1、河南理工大学微机原理与单片机接口技术课程设计报告出租车计价器设计姓名: 郝高锋蒋亚光学号: 专业班级:指导老师: 所在学院: 电气工程与自动化学院2013 年04 月 10 日摘要本设计是一个基于单片机的出租车计价器。本设计主要完成的功能有计时, 计费,记录里程,空车显示,暂停,测速等。用到的硬件主要有 C51 单片机, 直流电动机,霍尔传感器等。通过霍尔传感器及单片机的外部中断功能,记录 车轮的旋转圈数,通过车轮的周长计算里程。由于使用的单片机系统附带的数 码管显示只有四个数码管,所以每次只能显示一种数据:里程、费用或者等待 时间。为了所有的数据都能在数码管上显示,加入了按键。第五个键可以显

    2、示 里程,第六个键可以显示等待时间,第五个键和第六个键都没有按的话就是显 示费用。本设计还附有测速的功能,通过单片机内部的计时器计时,通过每分 钟测得的里程计算出车的速度。通过测得的速度判定使用里程计费还是通过时 间计费,这样也比较人性化。本设计的另一个人性化之处在于可以暂停计费, 这样可以随时暂停计费,支持部分收费。本设计的空车提示功能对司机和乘客 都有好处,方便乘客叫车,也可以减少司机的麻烦。本设计通过灯的提示表示 某个键被按下,这样能让司机和乘客很清晰的看到按了什么键。当按下启动计 费键后绿灯会亮,这样就会让司机很容易判断是不是按了启动计费键,以免造 成不必要的损失。当按下暂停键时,红灯

    3、就会亮,这样方便乘客判断是不是暂 停了计费,有利于保障乘客的合法权益。而空车则有黄灯提示,这样乘客只要 看到黄灯就能判断是空车能够方便乘客叫车。本设计主要有三部分组成,分别是霍尔传感器测量部分、单片机处理部分、数码显示部分。霍尔传感器测量部分主要是由硬件组成的不需要太多的编程, 而单片机处理部分主要任务是编程,数码管显示部分是单片机的扩张部分。下 面对本设计进行一些简单的功能总体描述。加电之后系统默显示三公里内的费 用,此时处于初始状态;第一个键是计费启动键,按下之后开始计费同时绿灯 亮;第二个键是计费暂停键,按下之后计费暂停同时红灯亮;第三个键是空车 提示键,按下之后黄灯亮,同时等待时间、里

    4、程、费用等都归零;第四个键是 单程和往返转换键,可以实现单程、往返的转化;第五个键是里程查询键,按 了之后数码管显示里程数;第六个键是等待时间查询键,按了之后可以查询等 待时间。关键字:C51 单片机霍尔传感器费用里程等待时间中断 计时器1 概述1.1 出租车起源出租车是一种公共交通工具,一般是短途的、往返于同一城市的不同地点。其收费一般比其它的公共交通高,比如:公交车、地铁等。出租车起源于英国。1620年,伦敦出现了第一家四轮马车出租车队,尽管整个车队才有四辆马车, 但是车夫们穿着统一订做的制服,行驶于街道十分拉风,随即这一行业开始迅猛发展起来。1654年,英国议会颁布了出租马车管理的法令,

    5、并给出租马车主发放营业许可证。 1886年卡尔本茨发明了以汽油发动机为动力的三轮汽车, 这一年被称为汽车元年。 而直到1897年,世界上第一家出租汽车公司才在德国斯图加特成立。我国的出租车行业最早是始于清朝末年,当时有一些德国商人和法国商人在中国办了洋车行,包括上海、北京、青岛、宁波等口岸城市。建国之后出租车行业曾经存在过一阵子,到文革期间出租车被当作资本主义的尾巴给彻底割掉了。之后文革之后有缓慢的发展,到改革开放后有了较大的发展。1.2 出租车计价器研究现状出租车计价器大概经历了四个发展阶段,一、传统的全部由机械元器件组成的机械式,二、半电子式即用电子线路代替部分机械元器件,三、集成电路式,

    6、 四、单片机式。使用单片机设计的出租车计价器功能很强大,可以满足计时、计程、计费、查看、存储、统计等多种计量功能。利用编程可设计出多种不同的计费模式, 不同的情况采取不同的收费方式,使司机在工作中能够应付各种突发状况,设 计理念更加人性化,符合当今社会的需要。其各种功能由键盘控制,操作简单。且计价器造价低廉,安装方便,优势明显。1.3 出租车计价器发展趋势随着单片机性能不断提高而价格却不断下降,单片机控制得到更广泛的应 用。外围芯片的不断发展使得计价器的功能更加强大,性能更加稳定。随着电 子技术的发展以及对计价器的不断改进和完善,产生了诸多的附加功能。例如:(1) 存储功能,可存储多项营运数据

    7、,便于查询。新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年;(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;(3)LCD显示功能, 液晶屏的使用让计价器实现多屏显示的功能,可同时显示各项营运数据使乘客一目了然。1.4 本设计的目的及意义随着人民生活水平的提高,人们已经不再满足于衣食住的享受,出行的舒适程度已经受到越来越多人的关注。于是,出租车行业以较低价格,较高的服务质量,给人们带来了出行的方便及享受。但是大量的买卖纠纷困扰着行业的发展。改良计价器是解决这一矛盾的最好方法。用更加精良的计价器来为乘客提供更加方便快捷、优良的服务是本设计的一大

    8、目的。凡坐过出租车的人都知道,只要汽车一开动,随着行驶里程的增加,汽车前面的计价器,里程显示器显示的读数就会从零逐渐增大,而当行驶到某一值时(如3千米)计费数字显示器开始从起步价(如5元)增加。当出租车到达某地需要在那里等候时,司机按下“计时”键,每等候一定时间,计费显示就增加一个等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。我国在70年代开始出现出租车,但那时的计费系统大都是从国外进口的, 不但不准确,而且价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内很多机械厂家都推出了国产计价器。出租车计价器的功能也从刚开始的只显

    9、示路程(需要司机自己定价,计算后四舍五入),发展到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。所以可以本课题的研究很有必要,意义重大。2 系统总体方案及硬件设计2.1 计价器工作原理出租车计价器是根据乘客乘坐汽车行驶距离和等候时间的多少进行计价, 并在行程中同步显示费用。从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。过3公里后,实现每1公里单价收费,中间遇暂停时,开始计时收费, 测距收费和计时收费的和便构成了乘客的总车费。完整的出租车计价器还应包 括存储、查看、统计等功能。串口显示

    10、驱动电路等待时 间总金额显示里程89S51单片机键 盘 控 制本计价器设计采用单片机控制。主要是利用单片机丰富的I/O端口以及其控制的灵活性,实现基本的里程计价功能、时钟显示功能、空车提醒等功能。其原理框图如下:里程计算单元原理框架图通过键盘控制计价器的启动、暂停、空车提示及各种显示之间的转换。测 量单元是非常重要的单元,用来测量里程;同时与计时器配合工作也可以测速。而单片机是核心处理单元,处理按键信息及测量单元的信息,并发出正确的指 令,在整个系统中的作用就相当于人的大脑。显示单元是一个重要的人际交流 单元,主要用来显示费用、里程、总等待时间等信息,为司机和乘客提供各种 方便。2.2 单片机

    11、单元单片机单元是本设计的核心部分,采用的是C51单片机。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统, 片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数: 与MCS-51产品指令系统完全兼容4k字节可重擦写Flash闪速存储器1000次擦写周期 全静态操作:0Hz24

    12、MHz 三级加密程序存储器1288字节内部RAM32个可编程IO口线2个16位定时计数器6个中断源 可编程串行UART通道 低功耗空闲和掉电模式单片机引脚图如下:AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个IO 口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一

    13、个硬件复位。P0 口:P0 口是一组8 位漏极开路型双向IO 口,也即地址数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时, 要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部

    14、存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。FIash编程和程序校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVXRI 指令)时,P2 口线上的内容(也即特殊功能寄存器(

    15、SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8 位双向IO 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3口除了作为一般的IO口线外,更重要的用途是它的第二功能,如下表所示:端口引脚第二功能P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外中断0)P33/INT1(外中断1)P34T0(定时计数器0外部输入)P35

    16、T1(定时计数器1外部输入)P36/WR(外部数据存储器写选通)P37/RD(外部数据存储器读选通)本设计使用的单片机最小系统如下图:2.3 里程计算里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。霍尔传感器是根据霍尔效应制作的一种磁场传感器。在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。由于A44E 属于开关型的霍尔器件,其工作电压范围比较宽(4.518V), 其输出的信号符合TTL 电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可

    17、达到1MHZ。差分放大器C、施密特触发器D 和OC 门输出E 五个基本部分组成。在输入端输入电压CC V ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差H V 输出,该H V 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到“工作点”(即OP B )时,触发器输出高电压(相对于地电位),使三极管导通,此时OC 门输出端输出低电压,通常称这种状态为“开”。当施加的磁场达到“释放点”(即rP B )时,触发器输出低电压,三极管截止,使OC 门输出高电压,

    18、这种状态为“关”。这样两次电压变换,使霍耳开关完成了一次开关动作。里程测量原理图如下:本设计选择了P3.2 口作为信号的输入端,内部采用外部中断0,车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片的中断,对脉计数,当计数达到1000 次时,也就是1 公里,单片机就控制将金额自动的加增加,算公式:单价 公里数=金额。2.4 键盘控制及指示灯单元本设计是用了最小系统的所有六个键。第一个键是计费启动键,按下之后 开始计费同时绿灯亮;第二个键是计费暂停键,按下之后计费暂停同时红灯亮; 第三个键是空车提示键,按下之后黄灯亮,同时等待时间、里程、费用等都归 零;第四个键是单程和

    19、往返转换键,可以实现单程、往返的转化;第五个键是 里程查询键,按了之后数码管显示里程数;第六个键是等待时间查询键,按了 之后可以查询等待时间。键盘电路如下图:本设计的灯指示功能主要是方便乘客和司机。按下启动键时绿灯亮这样既能提示乘客已经开始计费,防止司机多计费又能防止司机忘记按下启动键而造成少收费,使司机受到损失。是一个非常人性化的设计。2.5 显示单元本设计利用的单片机最小系统只有四个数码管动态显示所以同一时间内只能显示费用、里程、等待时间中的一个,所以为了能够让乘客和司机能看到各种数据就要用到键盘转换,按下不同的键显示不同的数据。系统默认的是显示费用,如果想看到其它的数据就要按下相应的按键

    20、。第五个键是里程查询键, 按了之后数码管显示里程数;第六个键是等待时间查询键,按了之后可以查询等待时间。单片机最小系统所用的数码显示管是共阴极的数码显示管,送高电平亮。由于四个数码管共用一个八位端口所以要用到动态显示。数码管的动态显示的扫描时间比较难调节,需要多次的调节。比较繁琐不过只要坚持多次调节就能够成功。3 软件设计本设计的电路部分比较简单主要是软件部分,所以软件是核心部分。主要包括外部中断0,定时器中断1,键盘扫描,数码管显示等模块。3.1 主程序模块主程序主要是完成初始化,包括推挽试输出、设置定时器工作方式、中断 控制寄存器设置。当然还包括一个死循环,循环中包括键盘扫描和数码管显示。

    21、初始化、赋初值判定是那个键被按下执行相关操作数码管显示键盘扫描3.2 外部中断车轮每转一周执行一次中断程序执行一次中断程序,如果是处在根据里程计费的模式则记录圈数的变量q和n都增加1,然后判定q是否达到一千,如果达到一千则路程增加二百米。同时判定是单程还是双程,如果单程则费用增加0.4元, 如果是双程则费用增加0.3元。如果是处在计时收费模式则仅n增加1。流程图如 下否是否q 是否为1000j+0,2是 f=5j 是否大于3否是f=1.5*(j-3)d 是否为 0否结束是f=2*(j-3)变量k是否为零是为了判定是否为计程收费,如果k为零则说明是计程收费、如果k不为零则表示是计时收费。变量j表

    22、示里程,里程小于3公里时费用为5元, 当里程大于三公里时按单程价格为2元/公里,往返价格为1.5元/公里收费。3.3 计时测速单元定时测速主要是为了满足“车速5公里/小时的时间累积为总等待时间,每5 分钟等待时间相当于里程数增加1公里”这项要求的。测速的原理是:通过定时器可以实现每一分钟都执行一次定时器中断程序,在定时器中断程序中判定车轮在这一分钟转的圈数,然后利用圈数及车轮的周长计算车速。当车速小于5公里/小时时就会进入计时收费模式,此时变量k置1,中断程序中记录车运行圈数的不会增加,同时记录圈数的变量q要减去这一分钟内的圈数n。当速度再次大于5公里/小时时k又被置0,进入计程收费模式,同时

    23、记录q加上这一分钟之内的汽车转过的圈数n。n 是否大于100否是k 是否为 1k=0r=n是否q=q-nj=j+0.2k=1f=5j 是否大于 3否是f=1.5*(j-3)否d 是否为 0f=2*(j-3)n=0结束是3.4 键盘扫描单元键盘扫描主要是判定哪个键被按下然后执行相关的程序。按键的具体功能描述如下:第一个键是计费启动键,按下之后开始计费同时绿灯亮;第二个键是计费暂停键,按下之后计费暂停同时红灯亮;第三个键是空车提示键,按下之后黄灯亮,同时等待时间、里程、费用等都归零;第四个键是单程和往返转换键,可以实现单程、往返的转化;第五个键是里程查询键,按了之后数码管显示里程数;第六个键是等待

    24、时间查询键,按了之后可以查询等待时间。3.5 显示单元显示单元比较简单只是利用了动态显示,将要显示的数据通过数码管显示。流程图如下:开始结束显示 gg=10*fg=j*10g=he 是否等于 1w 是否等于 14 Proteus 软件仿真5 课程设计体会刚开始时不了解霍尔传感器是如何使用的所以感觉硬件电路部分无从下手, 为了解决这个问题查了很多资料也在网络上找了很多资料并且和同学进行了讨 论。明白了霍尔传感器的工作原理之后就是焊接电路了,这次设计的电路相对 还是比较简单的,所以焊接电路只遇到了一些比较小的问题还是很容易就能解 决的。关键是程序设计,关于如何测量问题开始有两种方案:一、用计数器记

    25、 录车轮转过的圈数,二、使用外部中断记录车轮转过的圈数。经过分析发现用 计数器记录圈数不容易测速,所以选择了使用外部中断进行记录圈数。圈定好 方案后首先大概的把程序结构想好然后在进行程序的编写。其实程序的编写过 程还是很顺利的,没有遇到什么困难,但是在程序调试中遇到了一个难题即外 部中断程序不能够执行,经过了多次的检查都没有发现错,开始怀疑是硬件出 了问题于是就怀疑是霍尔传感器出了问题。不过把霍尔传感器装到其他同学的 电路上却运行正常,排除了霍尔传感器的问题。还是回到了程序上,经过对程 序的认真仔细的检查终于发现了错误所在,其实就是一个细节问题,一个很细 小的失误,但是这个失误让我付出了很大的

    26、代价。首先是花费的时间,为了这 个很小的失误我大概用了近五六个小时的时间,不停的调试、查看程序。其次是很影响心情,因为整个程序的构思和各个方面都没有什么错误,但是偏偏运行结果不正确,这对我造成了很大的心理压力,信心也很受打击。解决了这个细小的失误之后程序和硬件基本上就没有什么问题了,达到了预想的要求。从本次设计中我学到的最重要的一点就是细节决定成败。做任何事都要注重细节,正所谓千里之提溃于蚁穴。一定要把每个细节做好,不能只看整体的思路没有问题就认为大功告成了,往往在某个细节上功亏一篑。其实做好每个细节并不难就看你认真不认真,或许很仔细很认真的去做会在刚开始的时候有点慢,用的时间比较多,但是在调

    27、试的时候会省去很多的时间。以前我认为能把程序的主体部分先编出来然后在进行调试就简单了,但是随着编写程序的增多我发现调试和修改程序往往比编写程序更麻烦,更需要精力。因为你第一遍编写的时候是按照你的设想编写的,由于你的不认真可能造成实际编写的和你所设想的算法有些出入,然后你检查的时候由于潜意识中认为是按照自己的设想编写的就很容易忽略某些小的失误,这样就很难查出那些不太明显的错误。恰恰就是这些小的失误可能造成你整个工程的无法完成。参考文献1 河南理工大学.微机原理与单片机接口技术M.2 徐淑华等著. 单片机微型机原理及应用 .哈尔滨工业大学出版社3 马淑华等著单片机原理与接口技术.北京邮电大学出版社

    28、4 李群芳、张士军、黄建.单片微型计算机与接口技术(第三版).电子工业出版社, 2008.5 李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,2005.附 1:源程序代码#include #define uint unsigned int#define uchar unsigned char sbit w1=P00;sbit w2=P01; sbit w3=P02; sbit w4=P03; sbit L1=P05; sbit L2=P06; sbit L3=P07; sbitH1=P36; sbitH2=P37;sbitD1=P20; sbitD4=P23; sbitD7=P26;

    29、 sbitD10=P33; sbitD3=P22; sbitD6=P25; sbitD12=P35; sbitD2=P21; sbitD5=P24; sbitD8=P27; sbitD11=P34;char tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; char tab2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; static uchar x,m,k,s,d,e,r,w,y,g1,g2,g3,g4;static int q,n; static float j,f; static uint g,h; void xianshi();voiddealy(uint i,c)/延时函数uint a,b; for(a=i;a0;a-)for(b=c;b0;b-);void INT0() interrup


    注意事项

    本文(单片机课程设计出租车计价器.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开