理工大学《单片机应用与仿真训练》设计报告出租车计价器设计学号:专业班级:指导老师:所在学院:2012年6月25日摘要本设计用直流电机转动模拟出租车车轮转动,实现出租车多功能的计价功能。
设计采用AT89S52单片机为主控芯片,用光电对管检测电机转盘转速,采用24C02芯片为系统在掉电时路程、钱数等重要信息提供存储保护,采用两个四位8段共阴数码管显示里程、总价格和等待时间等信息。
本设计可以实现单双程设置、系统暂停、空车指示、信息显示、掉电保护等功能。
出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。
出租车行驶总路程可以通过车轮的周长乘车轮旋转圈数得到。
即可计算得到车轮旋转几周出租车能行驶一公里的路程。
使用光电对管能方便地计量车轮旋转的圈数,输出的脉冲信号被接入到AT89S52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程,并且可以计算实时的速度。
与此同时,根据不同的收费标准计算收费。
通过键盘能够实现往返设置,启动、暂停、停止计价器、设置单返程等。
关键字:出租车计价器,AT89S52,24C02,光电对管AbstractThis design with DC motor to rotate the analog taxi wheels turning, multi-purpose taxi pricing function. Design using AT89S52 MCU for master chip with a photoelectric tube test motor turntable speed, AT24C02 chip to make the system power-down distance, money and other important information on the storageprotection, the use of two four-segment common cathode digital display tube mileage, the total price and waiting time information. This design enables single and double-way set, system halted, empty instructions, information display, power-down protection and other functions.The taxi meter according to the distance traveled by the vehicle and passengers ride the decision. Taxi driving the total distance by the circumference of the wheel drive wheel rotation laps. Can be calculated by the wheel rotation a few weeks a taxi to travel one kilometer away. The use of opto-the number of turns of the tube can be easily measured wheel rotation, the output pulse signal is connected to the microcontroller AT89S52 system, calculated by computing the number of pulses received, the current driving distance, and can calculate the real-time speed . At the same time, the charge will be calculated according to the different charges. Able to achieve a round trip via the keyboard settings, start, pause, stop the meter, set the single return.Key words: Meter, AT89S52,AT24C02,Photoelectric tube 目录1 概述 12 系统总体方案及硬件设计 22.1系统总体方案 22.2 硬件电路设计单元 2 2.2.1 电源电路单元 2 2.2.2 系统控制单元 3 2.2.3 驱动电路单元 6 2.2.4 信号检测单元7 2.2.5 显示单元82.2.6 数据存储单元93 软件设计 103.1 软件设计流程图10 3.2 计算模块113.3 键盘扫描113.4 显示程序113.5 PWM波的生成113.6 速度检测123.7 程序源代码124 Proteus软件仿真135 课程设计体会146 主要参考文献16致17附1 程序源代码18附2 系统原理图331 概述出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志。
它关系着交易双方的利益,具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有应用价值和现实意义的。
出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。
出租车行驶总路程可以通过车轮的周长乘车轮旋转圈数得到。
即可计算得到车轮旋转几周出租车能行驶一公里的路程。
使用霍尔传感器方便地计量车轮旋转的圈数。
输出的脉冲信号被接入到AT89S52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程,并且可以计算实时的速度,在速度低于5公里每小时是进入等待计费。
于此同时,根据不同的收费标准,通过选择相应的起步价、单价等收费标准进行计算。
通过键盘能够实现往返设置,启动、暂停、停止计价器以及切换显示当前的行驶里程和需支付的车费。
本设计硬件电路分为六个单元:电源电路单元,系统控制单元,驱动电路单元,信号检测单元,显示单元和数据存储单元。
软件系统分为五个大的模块为:总初始化模块,按键扫描模块,中断与定时模块,数据计算模块,数码管显示模块。
其中,键盘扫描和数码管显示采用查询方式,转速信号接收与等待记时采用中断方式。
这些软硬件系统构成了最终的设计。
2 系统总体方案及硬件设计2.1系统总体方案本设计以AT89S52单片机为中央控制芯片,通过按键控制实现计价器的启动、停止、暂停、等待时间显示、单返程等功能;因为单片机的I/O无法直接驱动直流电机转动,所以通过L298N为驱动芯片驱动电路来驱动直流电机转动;通过光电对管检测直流电机的转速,并利用电压比较器将整理后的信号送给给单片机;通过数码管来显示里程、总价格、等待时间等信息;通过AT24C02来存储信息,防止系统掉电信息丢失。
系统设计总框图,如图2.1所示。
图2.1系统设计总框图2.2 硬件电路设计单元本设计硬件电路分为六个单元:电源电路单元,系统控制单元,驱动电路单元,信号检测单元,显示单元和数据存储单元。
2.2.1 电源电路单元电源是由7805芯片,变压器和整流桥组成的一个5V稳压电源。
变压器将220V交流电转变为12V交流电,经过整流桥和滤波电容后变为直流,经过7805芯片后输出5V稳压电源。
电源电路原理图,如图2.2所示。
图2.2电源电路原理图2.2.2 系统控制单元系统控制单元主要有单片机最小系统和独立按键组成。
2.2.2.1 单片机最小系统单片机采用了Atmel 公司生产的 AT89S52单片机,它含有256 字节数据存储器,置8K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计。
AT89S52芯片的主要引脚功能分别为:VCC 电源电压。
GND 接地。
RST 复位输入。
当RST变为高电平并保持2个机器周期时,将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISKRTO位缺省为RESET 输出高电平打开状态。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
XTAL1 反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2 来自反向振荡放大器的输出。
P0口:一组8位漏极开路型双向I/O口。
也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
P2口:一个带部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2口线上的容在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收低8位地址。
P3口:一个带部上拉电阻的8位双向I/O口。
P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写“1”时,它们被部的上拉电阻把拉到高电并可作输入端口。
作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,还作特殊功能口。
P3口的第二功能引脚分配如下:P3.0:RXD,串行通信输入。