基于51单片机的出租车计价器课程设计说明书课程设计名称:《单片机原理与接口技术》课程设计课程设计题目:基于51单片机的出租车计价器学院名称:信息工程学院专业:电子信息工程班级:100415学号:27 姓名:夏亮晶同组人:张先生评分:教师:邓老师2013年07月01日基于51单片机原理出租车计价器的设计摘要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。
本设计以 89S51 单片机为中心,利用信号发生器模拟代替霍尔传感器测距,实现对出租车计价统计,输出采用LM016L液晶显示屏。
本电路设计的计价器不但能实现基本的计价,而且还能根据里程或手动来调节单价。
通过单片机上的键盘上的按键来执行开始、暂停、复位等功能。
步骤如下:首先,程序开始做一些必要的初始化工作,等待键盘输入。
然后,启动键K1按下后单片机开始计数传感器传来的计数脉冲,在LM016L液晶显示器显示路程,按下K2显示总费用price是多少,当路程超过3Km,才开始计算。
通过K3、K4,K5、K6,K7、K8改变单价price个位,十分位,百分位。
关键词:89S51单片机 LM016L液晶显示屏计价器目录前言 (1)第一章出租车计价系统的设计要求与设计方案 (2)1.1............. 出租车计价器设计要求21.2..................... 系统主要功能21.3................... 方案论证与比较2第二章出租车计价系统的硬件设计 (4)2.1 振荡电路 (4)2.2 复位电路设计 (4)2.3 键盘接口电路 (5)2.4 显示电路 (5)2.5 路程测量部分 (6)2.6 单片机各引脚功能说明 (7)2.7 1602液晶的简介 (8)第三章出租车计价系统的软件设计 (11)3.1....................... 系统主程序113.2................... 里程计数子程序113.3................... 单价设置子程序12第四章设计体会与小结 (13)参考文献 (14)附录 (15)源程序 (15)硬件电路图 (22)前言单片机课程设计是单片机技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
出租车能保证乘客快速,轻松的到达目的地。
这些优点受到人们的欢迎。
随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。
而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。
而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
本设计采用AT89C52单片机,辅以按键,实现对出租车的多功能的计价设计,输出采用LM016L液晶显示屏。
本电路设计的计价器不但能实现基本的计价,而且还能根据里程或手动来调节单价。
要将出租车计价系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节单价以及计价方式。
因此,研究出租车计价器及扩大其应用,有着非常现实的意义。
第一章出租车计价系统的设计要求与设计方案1.1出租车计价器设计要求设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用LM016L液晶显示总金额,运行时间,暂停时间,起步价为6元,3Km之内起步价计费,超过3Km,每一公里增加1.6元(即1KM增加1.6元),用液晶显示总里程,同时用液晶显示总金额,单价。
①、计费功能费用的计算是按行驶里程收费。
设起步价为6元。
1、当里程<3km时,按起价计算费用2、当里程>3km时,每公里按1.6元计费3、S1为启动路程按钮、S2为启动计价按钮、S3~S8为调整计费按钮、②、显示功能1、显示行驶里程:用三位数字显示,显示方式为“XX.X”,单位为km。
计程范围0-999.9km,精确到0.01km。
2.显示计费单价X.XX,精确到0.01元。
3、显示总费用:用三位数字显示,显示方式为“XXXX.XX”,单位为元。
计价范围0-9999.99元,精确到0.01元。
1.2系统主要功能本出租车自动计费,上电后显示最初的起步价,里程计费单价,计费单价,通过按键可以调节起步价,里程计费单价。
同时具有运行,暂停,停止等状态,具有累加功能。
出租车停止后能够显示行驶的总费用。
1.3方案论证与比较方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图1-1所示:图1-1方案一案二:采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图1-2所示:图1-2方案二方案三:采用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。
方案图如图1-3所示:图1-3方案三方案总结:通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。
第二章出租车计价系统的硬件设计2.1振荡电路单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一般取33pF)。
这样就构成一个稳定的自激振荡器。
振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。
振荡电路如图2-1所示:图2-1振荡电路2.2复位电路设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。
按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
按键复位电路图如图2-2所示。
图2-2 AT89C51引脚配置2.3键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。
I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。
I/O口内部有上拉电阻时,外部可不接上拉电阻。
键盘接口电路如图2-3所示:图2-3键盘接口电路2.4显示电路对于现实电路我们可以采用数码管,也可以采用液晶显示,液晶又分字符型和点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。
英文字符就可。
液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度。
显示电路如图2-4所示:图2-4 数码管封装图及数据线与数码管管脚关系2.5路程测量部分出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器T1 即P3. 5 引脚,利用单片机的T1 的计数功能完成100次的计数后产生一中断来完成路程的测量。
(设车轮周长为1 m ,则霍尔传感器每产生100 个脉冲便表示车已行程0. 1 km ,根据际情况在程序中进行设置) 。
汽车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片A44E 测并输出脉冲,其工作原理如图4 所示,霍尔传感器集成芯片A44E 有信号转换、电压放大、等功能,为增加其抗干扰的能力,经过74L S14 对信号整形后再通过光偶送入P3. 5 引脚。
图2-5路程测量电路2.6单片机各引脚功能说明AT89S52电路图如图2-6所示:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行。
校验时,P0输出原码,此时P0外部必须被拉高。
图2-6 AT89S52P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE 只有在执行MOVX,MOVC指令是ALE才起作用。