出租计费系统设计单片机课程设计大学毕设论文.docx
《出租计费系统设计单片机课程设计大学毕设论文.docx》由会员分享,可在线阅读,更多相关《出租计费系统设计单片机课程设计大学毕设论文.docx(20页珍藏版)》请在冰点文库上搜索。
出租计费系统设计单片机课程设计大学毕设论文
存档资料成绩:
华东交通大学
课程设计报告书
所属课程名称单片机原理与应用
题目 单片机应用系统设计
院系 电子与信息工程
专业班级计算机科学与技术
学 号
学生姓名
指导教师
2010年月日
华东交通大学理工学院
课程设计(论文)任务书
专业计算机科学与技术级姓名
一、课程设计(论文)题目出租计费系统设计
二、课程设计(论文)工作:
自2010年月日起至2010年月日止。
三、课程设计(论文)的内容要求:
内容:
掌握单片机应用系统设计步骤,查找资料加以说明。
要求:
软硬件设计,画程序流程图和硬件电路图。
设计方法与步骤:
总体设计,硬件设计,可靠性设计,保密性设计,软件设计。
学生签名:
____________
2010年月日
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
课程设计(论文)评阅意见
评阅人 职称
2010年月日
目 录
第1章课程设计任务书..............2
第2章系统方案比较与选择...........5
第3章电路的系统设计...............12
第4章程序设计.....................18
第5章测试分析与计算...............22
第6章课程设计心得.................24
第7章参考文献.....................25
第2章系统方案比较与选择
2.1方案论证与比较
方案一:
采用数字电路控制,其原理如图所示。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
电路框图如图1-1所示。
图1-1数字电路方案
方案二:
出租车驱动轮转数与转轴转数的传动比是一定的,磁感应传感器会产生一个大约20ms的低脉冲,可以通过计算磁感应传感器产生的低脉冲数来计算出租车跑的里程数及相应的车费。
编码器的单片机通过一个I/O口来检测磁感应传感器信号,当确定为传感器产生的信号时,就通过另一个I/O口向解码器的单片机发送一组编码,而解码器的单片机则首先判断当前准备接收的数据是编码器发送的编码还是解码写入器发送的解码。
当判断是解码写入器发送的解码时,解码器的单片机接收此解码,并利用12c总线协议将解码保存到E2PROM中去;当判断是编码器发送的编码时,解码器的单片机先接收此编码,然后读出自己E2PROM中的解码,将其与接收到的编码相比较,如果相同则解码器单片机通过一个I/0口向计价装置发出计价脉冲,否则不发出计价脉冲。
解决了以往计价器计价不准确、使用寿命短等缺点,但此方法通常使干扰信也能产生计数脉冲,分立元件过于复杂,电路稳定性不好。
方案图2-2所示。
图2-2方案框图
方案三:
采用单片机控制。
以单片机为核心,设计上采用89S51单片机为主控器,以FJ2E-D10NK霍尔传感器测距,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调整、时钟显示功能。
原理结构如图2-3所示。
图2-3原理结构框图
本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。
单片机计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)。
89S51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择。
通过比较以上三种方案,单片机方案有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用89S51单片机实现出租车计价的功能。
2.2主要元器件的介绍
(1)MCS—51系列AT89S51
AT89S51的是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,高密度、非易失性储存生产,兼容标志8051指令系统及引脚。
低价位的它可以提供许多高性价比的应用场合,可灵活控制。
芯片管脚图如图2-4所示:
图2-489S51芯片管脚图
主要性能参数:
与MCS—51产品指令系统完全兼容
4K字节在系统编程(ISP)Flash闪速储存器
1000次擦写周期
4.0—5.5V的工作电压范围
全静态工作模式:
0HZ—33HZ
三级程序加密锁
128*8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
全双工串行UART通道
低功耗空闲和掉电模式
中断可从空闲模式唤醒模式
看门狗(WDT)及双数据指针
掉电标识和快速编程特性
灵活的在系统编程(ISP字节或页写模式)
功能特性概述:
4K字节Flash闪速储存器,128字节内部RAM,32个I/O口线,看门狗,两个数据指针,两个16位计时器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时钟电路。
同时AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止工作并紧张其它所有部分工作直到下一个硬件复位。
(2)FJ2E-D10NK霍尔传感器
它是一种磁传感器。
可以检测磁场及其变化,可在各种磁场有关的场合中使用。
以会儿效应为其工作基础。
它结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高,耐震动不怕一些污染和腐蚀,而且精度高工作温度范围宽。
这种霍尔元件大量用于直流无刷电机和测磁仪表。
FJ2E-D10NK集成霍尔开关由稳压器A,霍尔电势发生器(即硅霍尔片)B,差分放大器C,施密特触发器D和OC门输出E五个基本部分组成。
(1)、
(2)、(3)代表集成霍尔开关的三个引出端点。
外形及接线如图2-6所示。
(a)外形图(b)接线图
图2-6霍尔传感器外形及接线
在输入端输入电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。
这样两次电压变换,使霍尔开关完成了一次开关动作。
集成开关型霍尔传感器原理如图2-7所示。
图2-7集成开关霍尔传感器原理
(3)数码管
数码管时一种半导体发光器件,其基本单元时发光二极管。
数码管按段数分为七段数码管和八段数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时
将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
驱动时将所有数码管的8个显示笔划为“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,通过单片机对位选通COM端电路的控制来觉得数码管显示的字形。
数码管也74LS164的连接电路图见附录二,其管脚图见2-8所示。
图2-8管脚图
第3章电路的系统设计
3.1设计总框图
总框图的设计包括键盘控制模块,启动/清除开关模块,掉电储存单元模块,里程传感器,单片机控制模块部分,显示模块,锁存器和显示驱动电路。
输入部分通过89S51控制输出的显示数字。
其结构框图如3-1所示。
图3-1结构总框图
3.2里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,经处理计算,送给显示单元的,其原理如图3-2所示。
图3-2 传感器测距示意图
由于FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围比较宽(4.5V~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。
我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当技术达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:
当前单价×公里数=金额。
3.3数据显示单元的设计
用单片机驱动LED数码管按显示方式分,有静态显示和动态(扫描)显示,由于设计要求有单价(2位),路程(2位),总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),而且在白天其对比度也不能够满足要求,因此我们采用了6位LED数码管道分屏显示,如图3-3(A、B、C、D)所示。
图3-3(A)时钟显示(显示为12点00分46秒)
图3-3(B)总金额和单价显示(显示为总金额12.0元,每公里4.6元)
图3-3(C)路程和单价显示(图中显示总路程12公里,当前单价4.6元)
图3-3(D)单价调整显示(图中显示为右起白天单价4.6元、晚上7.8/中途等待1.2元)
数据的分屏的显示是通过按键S1实现切换的。
切换显示如图2-4所示。
3-4切换显示屏
在出租车不走的时候,按下S1,可以实现数据的分屏显示;车载行走的时候只有总金额和单价显示屏在显示,当到达目的的的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。
从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。
移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。
电路中的三个整流管D1~D3的作用是降低数码管的工作电压,增加其使用寿命。
3.4AT24CO2掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,储存当前设定的单价信息。
AT24C02是ATMEL公司的2KB字节的电可擦除储存芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
掉电储存电路如图3-6所示。
图3-6掉电储存电路
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。
每当设定一次单价,系统就自动调用储存程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读储存器程序,将储存器的单价等信息,读到缓存单元内,供主程序使用。
3.5按键单元的设计
电路共采用了五个按键,S1、S2、S3、S4、S5,其功能分别是:
S1分屏显示切换按键,S2功能设定按键,S3:
+/白天晚上切换按键,S4:
—/中途等待开关,S5:
上电复位。
3.6设计总体电路图
整个电路以89S51为核心,用来控制的驱动的各个分支电路。
当霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,送给显示单元的,用单片机驱动LED数码管显示,按键可以实现数据的分屏显示和计价等功能,以达到显示不同情况下数值的目的。
当电源断开的时候,AT24C02储存当前设定的单价信息,R8、R10是上拉电阻是减少AT24C02的静态功耗。
只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。
电路共采用了S1、S2、S3、S4、S5五个按键,来实现人为改动计价器的功能。
设计总图电路如图3-9所示。
(3)运行步骤。
①8051P1.0—P1.7、P3.2—P3.5依次接发光二极管L1—L12。
②将BUS3区P3.0用连到数码管显示区DATA插孔。
③将BUS3区P3.1用连到数码管显示区CLK插孔。
④单脉冲发生/SP插孔连到数码管显示区CLR插孔。
⑤仿真实验系统在"P....."状态下。
⑥以连续方式从0000H开始执行程序,初始态为四个路口的红灯全亮之后,南北路口的绿灯亮东西路口的红灯亮,南北路口方向通车。
延时一段时间后南北路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,南北路口红灯亮,而同时东西路口的绿灯亮,东西路口方向开始通车,延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,再切换到南北路口方向,之后重复以上过程。
3.流程图:
第4章程序设计
4.1主程序模块
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。
灵位,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。
然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当按下S1时,就启动计价,则根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。
若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计几个,并将结果存于价格寄存器中,然后将市级和当前累计价格送显示电路显示出来。
当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。
4.2定时中断服务程序
在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
4.3里程计数中断服务程序
每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。
在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中
4.4中途等待中断服务程序
当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每10分钟都自动加上中途等待的单价。
当中途等待介绍的时候,也就自动切换到正常的计价。
4.5显示子程序服务程序
由于时分屏显示数据,所以就要用到4个显示子程序,分别时:
时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。
4.6键盘服务程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。
4.7程序流程图
(1)计价流程图出租车计价流程图如图4-1所示。
图4-1计价流程图
(2)单价时间调整流程图
出租车单价时间调整流程图如图4-2所示。
图4-2单价时间调整流程图
第5章测试分析与计算
5.1.里程计价测试方法
由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转到1米,当电机转到1000圈时,就表示已经到达了一公里,单片机控制系统将金额自动的增加,其计算公式:
当前单价×公里数=金额。
5.2.里程测量数据
表1的测试条件时:
设定白天的单价时2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表1:
白天单价测试
公里
4
10
15
37
49
59
总金额
理论
7.5
22.5
35
90
120
145
实测
7.5
22.5
35
90
120
145
总里程
理论
4
10
15
37
49
59
实测
4.2
9.5
15
37.3
49
59
误差
0.2
0.5
0
0.3
0
0
表2的测试条件时:
晚上的单价设定为3.0元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表2:
晚上单价测试
公里
4
10
15
37
49
59
总金额
理论
8
26
41
107
143
173
实测
8
26
41
107
143
173
总里程
理论
4
10
15
37
49
59
实测
4
11
16
37
49
58
误差
0
1
1
0
0
1
里程测试数据的分析:
通过表1、表2的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。
5.3.掉电储存测试
掉电储存是为了防止在系统掉电的情况所储存的单价信息丢失,我们用人为的掉电方法实现这一测试。
表4:
掉电储存测试
白天单价
晚上单价
中途等待单价
掉电前数据
2.5
3.0
1.0
重新上电后数据
2.5
3.0
1.0
表4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的储存单元。
第6章 课程设计心得
本次实验使用的是单片机作为核心的控制元件,设计采用89S51单片机为主控器,以灵敏的FJ2E-D10NK霍尔传感器测距,实现对出租车的多功能的计价设计,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
本出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其右很高的智能化水平。
通常在不同的时间,不同的情况下都会有不同的收费标准;白天、晚上和中途等待,我们考虑后首选用开关来实现这些切换功能,简单方便,同时显示器会显示相应的指示。
最大的方便了司机的计费控制。
并且能根据市场经济的变化而发生相应的跳动计价。
但是在我们设计和调试的过程中,也发现了一些问题,譬如计价的金额数有限,实际的里程可能会很远,会超出我们的显示范围。
计价器的设计不够人性化,比如加上语音的提示功能。
可能会更有生命力。
我们小组在动手的过程中产生一个想法,如果计价器兼具有防作弊功能可能会更让乘客放心乘坐出租车,并得到广泛的应用。
实践是检验真理的唯一标准,也是锻炼我们动手能力和对知识的运用能力的一个很好的途径,通过这次实验不仅运用和巩固了所学的单片机知识,更学会了怎样去和同学们合作,最后感谢给予我帮助的老师和同学。
第7章 参考文献
[1]李朝青,《单片原理及接口技术》,北京航空航天大学出版社,2005.10.第3版
[2]李朝青,《单片机学习指导》,北京航空航天大学出版社,2005.10.第1版
[3]李群芳黄建,《单片微型计算机与接口技术》,电子工业出版社,2001.9.第1版
[4]孙莉蒋从根,《单片机原理及应用》,机械工业出版社,2003.1.第1版
[5]马忠梅主编.单片机的c语言应用程序设计.北京:
北京航空航天大学出版社,2003
[6]沈美明、温冬婵主编.IBM-PC汇编语言程序设计.北京:
清华大学出版社2003
[7]何立民主编.MCS-51系列单片机应用系统设计.北京:
北京航空航天大学出版社2001
[8]刘庆江张晓光.一种实用的集成芯片测试仪的设计.中国矿业大学信息与电气工程学院,2005