基于51单片机的出租车计价器_第1页
基于51单片机的出租车计价器_第2页
基于51单片机的出租车计价器_第3页
基于51单片机的出租车计价器_第4页
基于51单片机的出租车计价器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于51单片机的岀租车计价器 南昌航空大学单片机与接口技术课程设计 课程设计说明书 课程设计名称:单片机原理与接口技术课程设计 课程设计题目:基于51单片机的出租车计价器 学院名称:信息工程学院 专业:电菇息工程班级:100415 学号: 27 姓名: 夏兄晶 同组人:张先生 评分:教师:邓老师 南昌航空大学单片机与接口技术课程设计 2013 年 07 月 01 B 基于51单片机原理岀租车计价器的设计 摘要 现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成 定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面 貌的出租 车行业也将加速发展,计价器的普及也是毫无

2、疑问的,所以未来汽车计价器的市场 还是十分有潜力的。 本设计以89S51单片机为中心,利用信号发生器模拟代替霍尔传感器测 距,实 现对出租车计价统计,输出采用LM016L液晶显示屏。本电路设计的计价 器不但能 实现基本的计价,而且还能根据里程或手动来调节单价。通过单片机上的键盘上的 按键来执行开始、暂停、复位等功能。步骤如下:首先,程序开始做一些必要的初 始化工作,等待键盘输入。然后,启动键K1按下后单片机开始计数传感器传来的 计数脉冲,在LM016L液晶显示器显示路程,按下K2显示 总费用price是多少,当 路程超过3Km,才开始计算。通过K3、K4,K5、K6,K7、K8改变单价pric

3、e个位, 十分位,百分位。 关键词:89S51单片机LM016L液晶显刀壬屏 计价器 南昌航空大学单片机与接口技术课程设计 目录 刖亘1 第一章出租车计价系统的设计要求与设计方案2 11出租车计价器设计要求 2 系统主要功能 1. 2 . 2 方案论证与比较 2 第二章岀租车计价系统的硬件设计 2 振荡电路 2各 2 4显示电路 2 5路程测量部分 26单片机各引脚功能说明 27 1602液晶 第三章出租车计价系统的软件设计 11 系统主程序 南昌航空大学单片机与接口技术课程设计 3.2 里程计数子程序 11 3.3 单价设置子程序 12 第四章设计体会与小结13 参考文献14 附录15 源程

4、序15 图22 南昌航空大学单片机与接口技术课程设计 刖B 单片机课程设计是单片机技术学习中非常重要的一个环节,是将理论知识和实 践能力相统一的一个环节,是真正锻炼学生能力的一个环节。出租车能保证乘客快 速,轻松的到达目的地。这些优点受到人们的欢迎。 随着出租车行业的发展,出租车己经是城市交通的重要组成部分,从加强 行业 管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司 机和乘客 来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大, 用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强 大,用较少的硬件和适当的软件相互配合可以很容易地

5、实现设计要求,且灵活性强, 可以通过软件编程来完成更多的附加功能。本设计采用AT89C52单片机,辅以按键, 实现对出租车的多功能的计价设计,输出采用LM016L液晶显示屏。本电路设计的计 价器不但能实现基本的计价,而且还 能根据里程或手动来调节单价。 要将出租车计价系统产品化,应该根据客户不同的需求进行不同的设计,应该 在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节单价以 及计价方式。因此,研究出租车计价器及扩大其应用,有着非常现实的意义。 南昌航空大学单片机与接口技术课程设计 第一章出租车计价系统的设计要求与设计方案 1.1岀租车计价器设计要求 设计一个出租车自动计费器

6、,计费包括起步价、行车里程计费、等待时间计费 三部分,用LM016L液晶显示总金额,运行时间,暂停时间,起步价为6元,3Kni之 内起步价计费,超过3Km,每一公里增加16元(即1KM增加1. 6元),用液晶 显示总里程,同时用液晶显示总金额,单价。 、计费功能 费用的计算是按行驶里程收费。设起步价为6元。 1、当里程km时,按起价计算费用 2、当里程3kni时,每公里按16元计费 3、S1为启动路程按钮、S2为启动计价按钮、S3飞8为调整计费按钮、 、显示功能 1、显示行驶里程:用三位数字显示,显示方式为“XX. X” ,单位为km。 计 程范围0-999. 9km,精确到0. 01km。

7、2、显示计费单价X. XX,精确到0. 01元。 3、显示总费用:用三位数字显示,显示方式为“XXXX.XX”,单位为元。 计价范围0-999999元,精确到0. 01元。 12系统主要功能 本出租车自动计费,上电后显示最初的起步价,里程计费单价,计费单价,通 过按键可以调节起步价,里程计费单价。同时具有运行,暂停,停止等状态,具有 累加功能。出租车停止后能够显示行驶的总费用。 13方案论证与比较 方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用 外围 的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分 频,最后 通过译码电路对数据进行译码,将译码所得的数据送给

8、数码管显示,一下是该方案 的流程框图,方案一如图1-1所示: 南昌航空大学单片机与接口技术课程设计 V 空攵士J士 口 寺待怡丐 时 数码管显示 时 钟 脉 公里脉冲 K r 冲 译 码 计费脉冲 i U 1/ 图1-1方案一 案二:采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为 分频 模块,控制模块计量模块译码和动态扫描显示模块,其系统框图如图1-2所示: 图1-2方案二 方案三:釆用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显 示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系 统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。

9、方 案图如图1- 3 所 ZK: 图1-3方案三 方案总结:通过各个方案的比较,本次釆用方案三,不但控制简单,而且成本 低廉,设计电路简单。 南昌航空大学单片机与接口技术课程设计 第二章出租车计价系统的硬件设计 2. 1振荡电路 单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为 引脚XTAL2o通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一 般取33pF) o这样就构成一个稳定的自激振荡器。 振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频 图2-1振荡电路 2. 2复位电路设计 复位操作有两种基本形式:一种是上电复位,另一种是按键

10、复位。按键复 位具 有上电复位功能外,若要复色只要按图中的RESET键,电源VCC经电阻Rl. R2分 压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容 充电来实现单片机自动复位操作。上电瞬间RESET引脚获得髙电 平,随着电容的充 电,RERST引脚的髙电平将逐渐下降。RERST引脚的高电平只 要能保持足够的时间 (2个机器周期),单片机就可以进行复位操作。按键复位 电路图如图2-2所示。 南昌航空大学单片机与接口技术课程设计 RST PSEX ALE FA 2. 3键盘接口电路 独立式键盘:独立式键盘中,每个按键占用一根I/O 口线,每个按键电路相对独立。 I

11、/O 口通过按键与地相连,I/O 口有上拉电阻,无键按下时,引脚端 为高电平,有 键按下时,引脚电平被拉低。I/O 口内部有上拉电阻时,外部可不 接上拉电阻。键 2. 4显不电路 对于现实电路我们可以采用数码管,也可以采用液晶显示,液晶又分字符型和 点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。英文 字符就可。液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变 液晶的壳度。显不电路如图24所不: 南昌航空大学单片机与接口技术课程设计 图2-4数码管封装图及数据线与数码管管脚关系 2. 5路程测量部分 出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标

12、准的 脉冲 信号送入单片机的定时/计数器T1即P3. 5引脚,利用单片机的T1的计 数功能完成 100次的计数后产生一中断来完成路程的测量。(设车轮周长为lm,则霍尔传感器 每产生100个脉冲便表示车已行程0. 1 km,根据际情况在程序 中进行设置)。汽 车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片A44E测 并输出脉冲,其工作原 理如图4所示,霍尔传感器集成芯片A44E有信号转换、电压放大等功能,为增加其 抗干扰的能力,经过74L S14对信号整形后再通过 光偶送入P3. 5引脚。 图2-5路程测量电路 南昌航空大学单片机与接口技术课程设计 26单片机各引脚功能说明 AT89S52 电路

13、图如图2-6所不: VCC:供电电压。GND:接地。POD: P0 口为一个8位漏级开路双向I/O 口,每脚可 吸收8TTL fl流。当P1 口的管脚第一次写1时,被定义为高阻输入。P0能够用于外 部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编 程时,P0 口作 为原码输入口,当FIASH进行。校验时,P0输出原码,此时P0外部必须被拉高。 (T2) P10 匚 1 VCC (T2 X)P1 1 匚 2 POO (ADO P1 2匚 3 PQ 1 (ADI) P1.3C 4 P0 2 (A2) P1 4匚 5 P0. 3(AI3) 6 P0 4 (At4) IMIS-0)

14、P1 6 匚 7 P0.5(AM) (SCK) Pl 7G 8 PQ (AQ RST 9 ZJPO 7 (AD*7) (RXD)P3 0 匚 10 EXfVPP (TXDJP3 1 d 11 A1E/PRUS (IRTO : )P3 12 (iRTi)P3 3 d 13 P2 7(A15) (T0)P3 4d 14 F2 6 (A14 CH)P3 5 匚 15 P2 5(A13) C55RJP3 6 匚 16 P2 4(A12) (RDP3 7 匚 V P2JW1) XTAL2 匚 18 P22 (AW XTAL1 C 19 P2 1(A9) GND匚 20 2 P2 0(A8) B1 图 2

15、-6 AT89S52 P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收 输出4TTL |1电流。 P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平 时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1 口作为第八 位地址接收。 P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输 岀4个TTL n电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输 入。并因此作为输入时,P2 口的管脚被外部拉低,将输岀电流。这是由于内部上拉的 缘故。P2 口当用于外部程序存储器或16

16、位地址外部数据存储器进行存取时,P2 口 输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数 据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校 验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为 输入, 由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为AT89S52的一些特殊功能口,P3 口同时为闪烁编程和编程校验接 收 南昌航空大学单片机与接口技术课程

17、设计 一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电 平时 间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位 字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不 变的频率 周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外 部输岀的脉冲 或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉 冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX, M0VC 指令是ALE才起作用。另外,该引脚被略微拉高。如果 微处理器在外部执行状态A

18、LE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器 周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信 号将不出 现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH), 不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端 保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编 程电源(VPP) O XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.7 1602液晶的简介

19、字符型液晶1602主要技术参数如表2-1所示: 显示容量: 16*2个字符 芯片工作电压: 4. 55. 5V 工作电流: 2. 0mA (5. 0V) 模块最佳工作电压: 5. 0V 字符尺寸: 2.95*4.35 (W*H) mm 表2-1字符型液晶1602主要技术参数 接口信号说明如表2-2所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 Vss 电源地 9 D2 DataI/0 2 VDD 电源正极 10 D3 DataI/0 3 VL 液晶显示偏压信号 11 D4 DataI/0 4 Rs 数据/命令选择端(H/L) 12 D5 DataI/0 5 R/W 读/写选择端(H/L

20、) 13 D6 DataI/0 6 E 使能信号 14 D7 DataI/0 南昌航空大学单片机与接口技术课程设计 7 D0 Datal/0 15 BLA 背光源正极 8 D1 Datal/0 16 BLK 背光源负极 表2-2 1602接口信号说明 控制器接口说明(HD44780及兼容芯片) 1、基本操作时序 a读状态:输入: Rs=L, Rw=H, b E=H 输出: DOD7二状态字 写指 令:输入:RsL, Rw=L, E二高脉冲 DOD7=指令码 输出; 无 C读数据:输入:Rs=H, Rw=L, d 据:输入:Rs二H, Rw=L, E二高脉冲 状态字说明如表2-3所示: E=H

21、DOD7二数据 输出: 输出: DOD7二数据 无 写数 STA7 STA6 STA5 STA4 STA3 STA2 STA1 STAO D7 D6 D5 D-1 D3 D2 D1 D0 表2-3状态字说明(a) STAO6 当前数据地址指针的数值 STA7 读写操作使能 1:禁止0:允许 表2-4状态字说明(b) 注:对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0 RAM地址映射图 控制器内部带有80*8位的RAM缓冲区,对应关系如下图2-5所示: 表2-5 RAM地址映射图LCD 16字*2行 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 1

22、2 3 4 5 6 7 8 9 A B c D E F 0 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 0 1 2 3 4 5 6 7 8 9 A B c D E F 0 7 显示模式设置如表2-6所示: 指令码 功能 0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据接口 表2-6显示模式设置 指令码 功能 0 0 0 0 1 D C B D=1开显不; C1显不光标; B=1光标闪烁: D=0关显示c=o不显示 光标 B=0光标不显示 0 0 0 0 0 1 N S N=1当读或写一个字符后地址指针力口 一,且光标加一 N=0当读或写一个

23、字后地址指针减一,且 光标减一 南昌航空大学单片机与接口技术课程设计 S=1当写一个字符后,整屏显示左移 (N=l)或右移(N=0),以得到光标不移 动而 屏幕移动的效果 s=0当写一个字符,整屏显示不移动 表2-7显示开关及光标设置数据控制 控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAMo 南昌航空大学单片机与接口技术课程设计 第三章出租车计价系统的软件设计 3. 1系统主程序 在主程序模块中,需要完成对各参量和接口的初始化、出租车起价和单价的初 始化等工作。另外,在主程序模块中还需要设置修改单价的程序。 然后将总金额、里程和单价送数码管显示出来。程序流程如图所

24、示。 3. 2里程计数子程序 当汽车运行起来时,就启动计价,根据里程寄存器中的内容计算和判断行驶里 程是否已超过起步价公里数。若已超过,则根据里程值每公里的单价数和起步价 数来计算岀当前的总金额,并将结果输出在显示屏上。 南昌航空大学单片机与接口技术课程设计 3. 3单价设置子程序 设置单价时,按下S3键,此时按下S2起步价加一元,按下S4起步价减一 元。按下S1键程序跳回等待运行阶段。 南昌航空大学单片机与接口技术课程设计 第四章设计体会与小结 经过这些天有关于出租车计价器的课程设计,使我对单片机的应用有了更 深的 了解。在课程设计的过程中,还是碰到了许多的问题。比如,对于数码管动态扫描显

25、示、数码管的闪烁和键盘的延时防抖的综合编程不能较好地解决;对于一些相关的 应用软件没能熟练掌握。通过这几天晩上的苦想和反复调试,最终还是把问题解决 To 通过这次课程设计,我最大的收获就是自己的动手能力和独立解决问题的能力 得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会査阅资料 和对别人 的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学 不到其中的精 髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握。 最大的收获是更淸晰了如何有条理的编程。第一个就是流程图,原来不以 为然 的事现在觉得非常的有必要。第二就是编程顺序,要写一个功能很复杂的程序首先 写那些自己可以很快

26、完成的较简单的内容,比如调单价时的闪烁,那 么就可以开始 只写调一位单价,然后再加入程序可以调两位单价,再然后加入 闪烁功能,这样既 可以使编程变得更有条理,而且对心态也是很有帮助的。一 步一步的完成相应的要 求会使自己的心情倍感舒爽而不是一直未能达到要求时的迷茫。 凡事都要自己去动下手,去实践一下,遇到困难,永远不要沮丧气馁。在 动手 的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了 我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他 方面的知识。 南昌航空大学单片机与接口技术课程设计 参考文献 1. 李群芳、张士军、黄建.单片微型计算机与接口技

27、术(第三版)电子工业 出版社,200 x) for (y=110; y0; y); / 函数名称:Display0 函数功能:显示路程和单价信息 入口参数:路程X,和单价P 出口参数:无 */ void Display (ulong x, uint p) number1 1: =x/10000%10 + P ; numberl2= =x/1000%10 + 0; numberl 3= =x/100%10 +O; numberl5= =x/10%10 * (T ; numberl6= =x%10 + P ; numberl12 =p/100%10 + 0; numberl14 =p/10%10

28、+O; numberl15 =p%10 + 0,; if (numberltl =0) numberll=,* : if (numberl2 = 0) 南昌航空大学单片机与接口技术课程设计 numberl 2=; Print(0 x80, Inumberl); / 函数名称 s Show_PriceO 函数功能:显示最后的价格 入口参数:单价temp全局变量dis出口参数:无 void ShowJPrice (ulong temp) ulong ResuIt = 0; float value = 1 0; if(dis = 300) Result = price; else Result =

29、temp*(dis - 300); value = Result/100 + 0 5; ResuIt = (ulong)value; ResuIt += price; number28 = Result/100000%10 +O; number29 = Result/10000%10 + 0: nximber210= Result/1000%10 +, 0; nunber2ll = Result/100%10 + 0;number212=, number213 = Result/10%10 + 0,; number214 = ResultXlO +O; if (number28 = 0) nu

30、mber28=,1 ; if (number29 =O) number29=,; if (nunber210二0) number210=,* : Print(OxcO, / 函数名称:Key_ScanO 函数功能:通过按键设定要的参数数值 入口参数:无 南昌航空大学单片机与接口技术课程设计 / void Key_Scan(void) 出口参数:无 if (key 1 = 0) Delay (2); if(keyl = 0) while(!keyl); state +; if (state = 3) state = 0; if (key2 = 0) Delay (2); if(key2 = 0)

31、 while (!key2); choice +; if (choice = 2) choice = 0; if(key3 = 0) Delay (2); if (keyS = 0) 参数的白位加+1 whiledkey3);switch (choice) case 0: if (perk + 100) = 999) perk += 100; Display (dis, perk): break; case 1: if (price + 100)= 100) perk v 100; Display(dis, perk): break: case 1: if (price = 100) price = 100;break; defauIt: break; if (key5 = 0) 参数的十位+1 Delay (2): if(key5 = 0) while (!key5); switch(choice) case 0: if (perk + 10) = 999) perk += 10; Display (dis* perk); break; case 1: i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论