出租车计价器总结报告Word文档下载推荐.docx
- 文档编号:20657858
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:22
- 大小:480.28KB
出租车计价器总结报告Word文档下载推荐.docx
《出租车计价器总结报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《出租车计价器总结报告Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
学生姓名:
杨艳丽指导教师:
徐建军
一、课程设计题目:
出租车计价器系统设计
二、课程设计要求
1.根据具体设计课题的技术指标和给定条件,独立进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整;
2.查阅有关参考资料和手册,并能正确选择有关元器件和参数,对设计方案进行仿真;
3.完成预习报告,报告中要有设计方案,设计电路图,还要有仿真结果;
4.进实验室进行电路调试,边调试边修正方案;
5.撰写课程设计报告——最终的电路图、调试过程中遇到的问题和解决问题的方法。
三、进度安排
1.时间安排
序号
内容
学时安排(天)
1
方案论证和系统设计
3.14-3.15
2
完成电路仿真,写预习报告
3.16-3.17
3
电路调试
3.18-3.25
4
写设计总结报告与答辩
3.26-3.27
合计
13天
设计调试地点:
电气楼410
2.执行要求
微机原理与接口技术课程成绩80分以上的同学可以自拟题目,其余的同学都是指定题目。
,每组不得超过2人,要求学生在教师的指导下,独力完成所设计的详细电路(包括计算和器件选型)。
严禁抄袭,严禁两篇设计报告雷同。
摘要
现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。
出租车计价器是根据客户用车情况来自动显示车费的数字仪表,根据用车起步价、行车里程计费求得客户用车的总费用,并通过数码管显示相应的里程及金额。
本电路以AT89C51单片机为中心,附加A44E霍尔传感器测距(本电路中用模拟开关替代),实现对出租车计价,采用AT24C02实现在系统掉电的时候保存单价,输出采用8段数码显示管,显示行驶总里程和总金额。
模拟出租车计价器设计:
进行里程显示,预设起步价和起步公里数;
行程按全程收费,有复位功能和启动功能,启动后,开始计价。
我们采用单片机进行设计,可以用较少的硬件和适当的软件相互配合来实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,应用前景广阔。
关键词:
出租车计价器AT89C51单片机A44E霍尔传感器断电保存8段数码显示管
Abstract
TheAT89C51isalow-power,high-performanceCMOS8-bitmicrocontrollerwith4KbytesofIn-SystemProgrammableFlashmemory.ThedeviceismanufacturedusingAtmel'
shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standard80C51instructionsetandpinout.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithIn-SystemProgrammableFlashonamonolithicchip,theAtmelAT89S51isapowerfulmicrocontrollerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.
Keywords:
taximeterAT89C51hallelementnixietube
目录
第1章系统方案设计1
1.1系统硬件设计
1.1.1硬件设计说明6
1.1.2AT89C51单片机简介6
1.1.3硬件电路设计7
1.1.4硬件组成8
1.1.5驱动电路9
1.1.6显示电路9
1.1.7复位电路10
1.1.8掉电保护电路11
1.1.9时钟电路12
1.1.10按键电路12
1.2系统软件设计
1.2.1软件总体设计13
1.2.2系统程序设计13
第2章仿真14
第3章调试17
3.1焊接检测17
3.2硬件检测18
3.3软件调试18
第4章结论19
第5章心得体会与建议20
参考文献21
附录1元器件清单22
第1章系统方案设计
1.1.1硬件设计说明
单片机是单片微型计算机的简称,单片机以其卓越的性能,得到广泛的应用,已经深入到各个领域。
在这次设计中,我们用到P0口和P2口,P0口为8位三态I/O口,此口为地址总线及数据总线分时复用;
P2口为8位准双向口,与地址总线高八位复用;
P0口和P2口都有一定的驱动能力,P0口的驱动能力较强。
设计中,为了能够让数码管更好的正常显示,我们采用了驱动电路来驱动。
在本次硬件设计中,我们考虑采用芯片74LS245来驱动数码管显示。
设计电路时,考虑到用里程(霍尔)传感器价格昂贵,且不便于试验检测,在设计中采用一个模拟开关来代替。
模拟开关一端接在P3.4口,另一端接地,通过来回高低电平的变化,每按两次,对应的里程数加一。
通过在程序中设置的里程和金额的信息,在加上驱动电路的设计,就可以在数码管上分别显示总金额和总里程。
在显示方面,可以用液晶显示,也可以用数码管进行显示。
由于在这次设计中只需要显示里程和金额信息,我们采用数码管进行显示。
这样既节约了成本,又可以达到显示的目的。
同时为了减少硬件的复杂度,我们采用了动态显示方式,选用了共阴极数码管。
为了焊接方便,我们选用了集成在一起的数码管。
我们还设计了控制按键,能够很好的对出租车计价器控制,如启动/停止按键,清零按键等。
1.1.2AT89C51单片机简介
AT89C51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
P0口有二个功能:
1、外部扩展存储器时,当做数据/地址总线。
2、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:
其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用。
2、做一般I/O口使用,其内部有上拉电阻。
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
AT89C51引脚图AT89C51封装图
设计中用到的单片机各管脚(图2.1)功能介绍如下:
VCC:
接+5V电源。
VSS:
接地。
时钟引脚:
XTAL1和XTAL2两端接晶振和30PF的电容,构成时钟电路。
它可以使单片机稳定可靠的运行。
RST:
复位信号输入端,高电平有效。
当在此引脚加两个机器周期的高电平时,就可以完成复位操作。
P1.0:
接启动/停止按键,控制计价。
P1.1:
接功能键。
P1.3:
接清零键。
P0口接数码管段选端,P2口接驱动芯片。
P3.4(T0):
接模拟开关按键,替代了出租车计价器中的霍尔传感器。
P3.1、P3.0口接掉电保护电路。
1.1.3硬件电路设计
按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;
当等于或超过两公里后,按计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)进行计价。
本设计中,起步价为10元,起步里程为3公里,当然这些数据可以在程序中改写,以满足不同时期价格调整的需要。
下图是通过在KeilC中编译通过,并生成Hex文件,在PROTEUS中仿真通过的整体硬件原理图。
系统结构图:
电路原理图:
1.1.4硬件组成
硬件组成主要包括:
驱动电路、显示电路、复位电路、掉电保护电路、时钟电路、按键电路。
1.1.5驱动电路
74LS245是我们常用的芯片,用来驱动led或者其他的设备。
总线驱动器74LS244和74LS245经常用作三态数据缓冲器,74LS244为单向三态数据缓冲器,而74LS245为双向
三态数据缓冲器。
本设计用74LS245作为驱动芯片,双向总线发送器/接收器(3S)。
驱动芯片管脚图
74LS245主要电器特性的典型值如下:
引出端符号:
AA总线端
BB总线端
/G三态允许端(低电平有效)
DIR方向控制端
功能表:
功能表
利用74LS245来驱动数码管显示,单片机的P2.0到P2.5分别接A0到A5管脚,进行数据的传送,其中AB/BA接高电平,控制数据从A到B进行传送,B0到B5分别接数码管的位选端,驱动数码管依次显示。
P2.0到P2.5的数据通过A传送到B中的数据送到数码管,以达到显示数据信息的目的。
1.1.6显示电路
多数的应用系统,都要配输入和输出外设,LED显示器和LCD显示器,虽然LCD显示效果比较好,已经成为了一种发展趋势,但为了节约成本,我们选用了LED显示器(图2.6)。
在显示方面,我们选用了动态显示。
静态显示虽然亮度较高,接口编程容易,但是每位的段码线分别与一个8位的锁存器输出相连。
占用的I/O口线比较多,在显示位数较多的情况下,一般都采用动态显示方式。
利用动态显示的方法,由于LED显示器的余辉和人眼的视觉暂留现象,只要每位显示的时间间隔足够短,就仍能感觉到所有的数码管都在显示。
为了简化硬件,通常将所有位的段码线相应段并联在一起,由一个8位I/O口控制,在同一时刻,只让一位选通,如此循环,就可以使各位显示出将要显示的字符。
LED数码管数码管引脚图
数码管字形字位
LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。
再把多个这样的8字装在一起就成了多位的数码管了。
在本设计仿真中使用的是2个3位共阴8段数码管(图2.7)。
找公共共阴和公共共阳的方法:
首先我们找个电源|稳压器(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。
共阴极数码管,阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,对应的段就显示。
1.1.7复位电路
单片机的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
除了上电复位外还需要按键手动复位(图2.8)。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源VCC接通而实现的。
单片机的复位速度比外围I/O接口电路快为
能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。
复位电路
1.1.8掉电保护电路
掉电保护电路中采用了存储芯片AT24C02。
AT24C02是一个CMOS标准的EEPROM存储器,是AT24CXX系列(AT24C01/02/04/08/16)成员之一,这些EEPROM存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约30uA~110uA,具有标准的I2C总线接口,是应用广泛的小容量存储器之一。
AT24C02引脚图
上图是AT24C02的引脚图,这个芯片是一个8脚芯片,内部存储器有256字节。
引脚功能介绍如下:
A0(引脚1):
器件地址的A0位,是器件地址的最低位,器件地址排列是A6A5A4A3A2A1A0R/W。
A1(引脚2):
器件地址的A1位。
A2(引脚3):
器件地址的A2位。
GND(引脚4):
地线。
SDA(引脚5):
数据总线引脚。
SCL(引脚6):
时钟总线引脚。
TEST(引脚7):
测试引脚。
Vcc(引脚8):
电源线引脚。
本设计采用掉电存储电路图如下:
掉电存储电路
1.1.9时钟电路
MCS-51单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。
其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。
为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。
本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约30PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。
在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。
如图2.11所示。
时钟电路
1.1.10按键电路
按键控制电路中,单片机的P1.0管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;
当弹起按键时,计数器停止工作,停止计价,启动/停止按键带自锁功能。
按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,调用计价子程序开始计价。
清零按键接单片机的P1.3管脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据清零,在程序中给各位赋0代码(0x3f),以达到清零的目的,方便下次计价。
另外为功能键,控制价格调整,这个按键是在没有按下启动/停止按键时有作用,计价过程中无效。
按键电路
1.2系统软件设计
1.2.1软件总体设计
51单片机的程序设计语言主要有两种:
一是汇编程序设计;
二是C语言编程设计。
两种程序设计语言都有各自的优点。
用汇编语言编写和高级语言(C语言)比较起来节省空间,这样对于存储空间仅4Kb的芯片来说是极之有利的,51单片机能更高速的运行。
C语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。
C语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
此外,C语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。
因此,使用C语言进行程序设计已成为软件开发的主流。
本设计就是采用C语言编写的,由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。
1.2.2系统程序设计
本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我设计了整体程序流程图。
在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。
通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。
这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后数码管根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。
整个程序流程图如下:
N
Y
N
第二章仿真
1.打开Proteus软件。
2.选择file菜单下的opendesign选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。
3.将用keil编译产生的hex文件下载到单片机中:
双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。
4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。
下图为软件的仿真窗口图:
仿真结果图:
第三章调试
调试流程图:
3.1焊接检测
(1)检测断路:
将万用表调到蜂鸣器档,分别用红黑表笔接触实物上连接的两点。
如果蜂鸣器发出清脆的蜂鸣的声音说明线路焊接良好,没有断路;
如果蜂鸣器没有发出声音,先尝试多测2次,可能是表笔没有接触好接点,尝试多次后仍无声音,则该条线路需要重新焊接。
我首先测的是数码管,上拉电阻那一块,因为数码管脚复杂的原因,这部分电路焊的很杂。
通过测试后,均无断路。
然后测74ls245数码管驱动部分电路。
最复杂的测完之后,测试按键晶振电路那一块,发现提供脉冲按键没有和51芯片P3.4口焊接在一起。
其他电路没有问题。
(2)检测短路:
将万用表蜂鸣器档得红黑表笔分别接触电路不应连接的两点,如果蜂鸣器响则电路短路,否则,电路没有短路。
我仔细观察电路后,一一测试了焊锡靠的很近的地方,测试后,均无短路。
3.2硬件检测
在焊接电路前,首先要进行元器件的检测。
检测主要是测出各个元器件的型号。
对于数码管的检测在显示电路中已介绍。
识别电阻时可根据各环的数量级和色码表,判断电阻的阻值。
排阻是将多个电阻集中封装在一起,组合制成的。
排阻具有装配方便、安装密度高等优点。
常用排阻有A型和B型。
A型排阻的引脚总是奇数的。
它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。
B型排阻的引脚总是偶数的。
它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。
排阻的阻值读法如下:
“103”表示:
10kΩ,“510”表示:
51Ω。
以此类推。
对于集成芯片的检测,就是根据它的管脚图,来识别各个引脚,以方便焊接。
设计的过程中,对硬件的检测和对软件的测试都不能忽略,因为在系统的仿真过程中。
各元件都是理想的,而在设计实际电路时,就需要多方面考虑。
要先对元件进行检测,然后进行调试。
例如如果在设计中不加任何驱动,在仿真软件中仍然可以正常计价,但是在具体硬件焊接时,需要考虑电路的驱动能力。
在已经焊接好的电路板上,要对其各个元器件进行检查。
一般情况下,集成电路不会出现故障。
在本设计中采用了先焊接插槽的方法,这可以避免一些元件在焊接的过程中被烧坏。
另外在焊接数码管时,要先排线,再焊接以免线路混乱。
元件在选购时需要多备选元件,元件的型号较多,产品质量没有可靠保证,就避免不了我们买的元器件是损坏的,再加上焊接是在万能板上焊接的。
就有可能发生虚焊,短路等情况的发生。
所以,在焊接好每个元件后都要进行检测,以保证焊接无误。
焊接好电路板,把相应的芯片插到对应的插槽中,再检一次,看芯片是否与插槽接触良好。
驱动部分是检查74LS245与数码管和单片机接触的各个引脚,看是否焊接良好,另外要让芯片和插座有良好的接触。
显示部分检测的目的是看数码管是否能够正常显示。
如果不该亮的字段点亮,检测是因否有短路的情况;
如果数码管不显示,说明位选端可能没有焊好;
如果显示不够亮,则应该检查驱动电路。
晶振部分使用示波器查看波形。
如果出现看不到12MHZ的正弦波形的现象,说明此部分电路不正常。
(1)首先检测各部分硬件是否损坏:
51芯片,74245芯片,数码管能否正常亮。
检测后均正常。
上网查资料区分电解电容的正负极。
(2)检测电阻值是否正确:
从实验室拿了不同阻值的电阻,但为了以防万一,先用万用表的欧姆档测需要接入电路的各电阻阻值是否正确。
测试中发现有一包标为10k的电阻测得为1k,于是去实验室重新取了10k电阻。
(3)在仿真中,芯片的接地和VCC是不需要分别接电源和接地的。
但在实际电路焊接中需要给每个芯片接电源和接地。
3.3程序调试
全部测试后,数码管可以正常亮,但似乎有数字在闪,根本不能分辨究竟电路有没有工作。
有同学说可能是延时时间太长的原因。
于是上网查资料后得知:
延时时间太长,会使数码管闪;
延时时间太短,会出现叠影现象。
在proteus仿真电路中将延时时间修改为很大观察结果,数码管示数的确有闪烁。
于是将51芯片拆下来,修改程序,将延时时间改小。
重新生成hex文件,下载到51芯片中,插在电路中。
通电后,数码管终于可以正常显示了。
整个电路调试成功。
第四章结论
在本次设计中,我采用AT89S52芯片(实际电路)为核心器件,设计出了简单的出租车计价器,能够实现显示总金额和总里程,按键控制清零。
选题后,我便开始复习单片机方面的知识,也查阅、搜索了很多相关资料,进行总体设计与具体设计,同时也学习仿真软件Protues和编程软件KeiC。
由于以前都采用汇编语言实现编程,对用C语言来实现单片机的编程不太习惯,花费了一些时间来熟悉C语言的编程。
在设计开始,要形成流程图,它可以使设计有一定的逻辑性与严密性,使得设计思路明确。
采用模块化的设计思想很重要,它方便编写、修改与调试,另外加上必要的注释,便于交流与理解。
经过细心的电路焊接和后期的思考调试,最终实现了预期的功能:
利用按键代替霍尔传感器形成脉冲,给单片机的P3.4口,经过执行程序后在数码管上显示总金额和里程数。
前三公里10元,超过3公里,每公里2元。
而等待每15min加2元的程序编程不会。
算法为:
M=10+2*(k-3)
本次设计还有很多不足。
例如脉冲部分如果用霍尔传感器效果会更好。
程序编程还需要很大的改进,因为本人能力还不够,等待15min加2元得程序不会编写,使这次课设有点遗憾。
此外,出租车计价器还可以有很多功能的延伸和丰富,例如显示模块可以利用ds1302芯片在不计费的情况下作为电子时钟使用;
可以增加语音模块播报路程金额信息等。
通过本次课设,认识到自身的很多不足,激励我以后一定要认真学习专业知识,熟悉应用他们,变成自身的一种能力。
第五章心得体会与建议
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。
通过自身的努力以及相关图书资料的帮助,逐渐熟悉了KEIL、PROTEUS和C语言等软件的使用以及硬件焊接与检测过程中的一些小技巧。
本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计价器 总结报告
![提示](https://static.bdocx.com/images/bang_tan.gif)