1、 单片机应用与仿真训练设计报告单片机应用与仿真训练设计报告 题目题目:出租车计价器设计出租车计价器设计 摘要 本设计用直流电机转动模拟出租车车轮转动,实现出租车多功能的计价器 功能。 设计采用 AT89S52 单片机为主控芯片, 用霍尔传感器检测电机转盘转速, 采用 AT24C02 芯片使系统在掉电时路程、单价等重要信息的存储保护, 采用两 个四位 8 段共阴数码显示管里程、总价格和等待时间等信息。本设计可以实现 单双程设置、系统暂停和清零、空车指示、信息显示、显示切换、掉电保护等 功能。 出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。出租 车行驶总路程可以通过车轮的周长乘车轮旋
2、转圈数得到。即可计算得到车轮旋 转几周出租车能行驶一公里的路程。使用霍尔传感器方便地计量车轮旋转的圈 数。输出的脉冲信号被接入到 AT89S52 单片机系统中,通过计算接收到的脉冲 个数,计算出当前所行驶的路程,并且可以计算实时的速度,在速度低于 5 公 里每小时是进入等待计费。与此同时,根据不同的收费标准,通过选择相应的 起步价、单价等收费标准进行计算。通过键盘能够实现往返设置,启动、暂停、 停止计价器以及切换显示当前的行驶里程和需支付的车费。 本设计硬件电路总体可以分为五个单元:单片机最小系统单元,指示灯电 路单元,按键电路单元,路程时间与金额显示单元,转速信号接收单元。软件 系统可以大致
3、分为五个大的模块为:总初始化模块,按键扫描模块,中断与定 时模块,数据计算模块,数码管显示模块。其中,键盘扫描和数码管显示采用 查询方式,转速信号接收与等待记时采用中断方式。这些软硬件系统构成了最 终的设计。 关键字:关键字:多功能计价器;AT89S52;AT24C02;霍尔传感器;显示切换 目录目录 1 概述概述 1 1.1 功能要求 1 1.2 设计参数 1 1.3 系统原理 1 2 系统总体方案及硬件设计系统总体方案及硬件设计 . 3 2.1 系统总体方案 3 2.2 单片机最小系统单元 . 3 2.3 转动信号采集单元 . 5 2.4 显示单元 6 2.5 指示灯单元 7 2.6 按键
4、输入电路单元 . 7 2.7 IO 分配表 . 8 3 软件设计软件设计 9 3.1 总体流程 9 3.2 计算模块 9 3.3 键盘扫描 9 3.4 显示程序 9 4 Proteus 软件仿真软件仿真 10 5 课程设计体会课程设计体会 11 参考文献:参考文献: 12 附附 1 源程序代码源程序代码. 13 附附 2 系统原理图系统原理图. 25 1 1 概述概述 1.1 功能要求 基本要求: (1)能显示里程,单位为公里,最后一位为小数位。 (2)能显示金额数,单位为元,最后一位为小数位。 (3)可设定单程价格和往返价格,单程价格为 2 元/公里,往返价格为 1.5 元/公里。 (4)车
5、速0;c-) for(b=110;b0;b-); void delay_dis(void) unsigned char b,c; for(c=7;c0;c-) for(b=110;b0;b-); /初始化函数 (刚上电时) void init_data(void) distance=0; cost=0; round=0; second=0; minute=0; key0_flag=0; /空车 key1_flag=0; /单程 key2_flag=1; /路程 key3_flag=0; /正常,非暂停 flag=1; void jisuan(void) wait=minute*60+secon
6、d; distance=round+wait/30; /车轮转 57 圈为 100m,等待时间 30s 为 100m 15 if(key1_flag) price=15; /往返价格 1.5 元/公里 else price=20; /单程价格 2 元/公里 if(distance9999) temp=9999; qian=temp/1000; bai=temp/100%10; shi=temp%100/10; ge=temp%10; void write(void) round_24c020=round round_24c021=(round 8) write_24c02(0x00,key0_flag); write_24c02(0x01,key1_flag); write_24c02(0x02,key2_flag); write_24c02(0x03,key3_flag); write_24c02(0x04,second); write_24c02(0x05,minute)