ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:465.20KB ,
资源ID:16181147      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16181147.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(出租车计价器模拟装置的设计报告电子课程设计Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

出租车计价器模拟装置的设计报告电子课程设计Word文档格式.docx

1、(1) 设计并制作一个出租车计价器的模拟装置,示意图如图1-1所示。 如图1-1 出租车计价器示意图(2) 8位数码管显示器的前4位数码管用于实时显示行车里程数(000.0),单位为公里;后4位数码管用于实时显示金额数(000.0),单位为元。(3) 规定出租车单程价格为2元/公里,往返则价格为1.5元/公里。单程与往返分别由“单程” 按键和“往返” 按键设定。行车里程可用一按键模拟,规定每按一次键,行车里程加0.1公里。(4) 起步公里数为3公里,价格为8元,若实际运行大于3公里,按“基本要求2”计算价格。(5) 到达目的地后,按“暂停” 键,计价器可暂停计价;反复按“查询”键,计价器能依次

2、显示总等待时间,里程数和金额数;按“清除”键,能将记录的数据(里程、等待时间与价格等)清0。(6) 再增加8位数码管显示器,前4位数码管用于实时显示车速(000.0),单位为公里/小时;后4位数码管用于实时显示累计等待时间(00:00),单位为分:秒。(7) 设计并制作一个能模拟出租车车速的装置。要求采用单片机控制电机使转盘转动,用光电传感器检测转盘转动,车速与转数成正比。规定转盘转速为5转/分对应车速5公里/小时,转盘转速为50转/分对应车速50公里/小时,依此类推。转速可以通过键盘预置。(8) 能按上述模拟装置的转数计算行车里程,并依此作为计价依据,计价误差的绝对值小于10%。(9) 增加

3、等待时间计价功能。规定总等待时间为车速5公里/小时的累积时间,总等待时间每增加5分钟,相当于里程数增加1公里进行计价。(10) 增加起步价、起步价里程和每公里价格的预置功能。价格预置功能要求密码确认,价格的默认值与基本要求一致。第二章 系统设计2.1方案论证与比较2.1.1 方案一方案一的系统框图如图2-1所示。该方案拟采用单片机AT89C51为控制器,附加以数据存储模块,速度检测模块,LED显示模块,键盘模块等。图2-1方案一系统框图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Mem

4、ory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机易学易懂,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。但是AT89C51单片机是一种比较低端的单片机,片上资源偏少。例如本设计中要求存储数据功能,AT89C51单片机没有内部EEPROM,只能外加数据存储芯片,导致硬件线路和软件编程显得复杂。另外,AT89C51单片机的

5、软件开发平台不够人性化,软件开发比较繁琐。2.1.1 方案二方案二的系统框图如图2-2所示。该方案拟采用单片机ATMEGA16为控制器,附加以内部数据存储,速度检测模块,LED显示模块,键盘模块等。图2-2方案二系统框图ATmega16有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选

6、差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。ATmega16单片机具有强大而丰富的片上资源和灵活方便的人性化软件开发平台,大大地简化了硬件线路的设计和软件的开发过程,减了软硬件的开发时间,并完全符合本设计的要求。综上,通过分析论证,本次设计采用方案二。2.2系统总体方案方案二的系统框图如图2-3所示。系统仿真图见附件。图2-3系统总体设计方案该方案由ATMEGA16单片机为核心控制器,用以检测速度脉冲并计算转化为实际速度输出显示;检测模拟装置的状态(包括空车状态、单程状态、等待状态、返程状

7、态)并作出相应的动作;检测模拟动作(包括里程加一模拟按键、速度模拟加减按键、数据清除按键);检测参数修改于数据储存(包括起步里程的修改、起步价的修改、单程单价的修改、返程单价的修改);检测参数修改时应通过的密码确认;速度控制输出;参数提取并送到LED数码管扫描显示;工作状态指示输出等等。2.3单元电路方案2.3.1 系统电源输入与转换模块稳定的电源供应是单片机嵌入式系统的稳定工作的必要前提,所以电源的转换设计必须有较高的可靠性和抗干扰能力。本设计所采用的电源输入与转换方案如图2-4所示。该方案采用LM7805线性电源稳压芯片,加以前后两级电容滤波以及5个平波小电容,所构成的电源转换方案具有输出

8、平稳,高压隔离,平波抗干扰等优点,具有较高的可靠性和抗干扰能力,保证了所设计系统的电源的稳定供应。图2-4电源输入与转换电原理图2.3.2 单片机控制核心模块本设计所采用的核心控制芯片为Atmel公司生产的8位高性能单片机ATmega16,单片机控制核心模块电原理图如图2-5所示。其中包括单片机工作必不可少的晶振电路、复位电路。由于ATmega16单片机四个IO端口均是标志双向IO,具有输入内部可设置上拉电阻,故系统的按键不必外界上拉电阻,大大简化了硬件线路的设计。速度检测原理是:直接将速度传感器反馈的脉冲信号输入到ATmega16单片机的外部中断(INT1)输入端。当速度传感器返回一个脉冲信

9、号时,单片机读出其内部定时器从上一个脉冲信号到该返回脉冲信号所经过的定时时间,两个速度反馈脉冲直接的路程除以该时间间隔即为瞬时速度。速度控制输出原理:是利用单片机内部8位的定时器2的脉宽调制功能产生占空比可变的PWM信号去控制速度。2.3.3 LED数码管动态扫描显示模块LED数码管的动态扫描显示是本出租车计价器模拟装置的核心功能之一,LED数码管扫描显示是否稳定直接关系系统的工作效果。LED数码管动态扫描显示电原理图如图2-5所示。图2-5LED数码管扫描显示电原理图LED数码管动态扫描显示的原理是:采用四位共阴极LED数码管,其位选信号引脚接到低电平输出有效的3-8线译码器74HC138的

10、输出端,单片机控制译码器的输出端来选通某一位数码管工作,达到动态扫描显示的效果。LED数码管的段选信号引脚接到8位以为寄存器74HC164的并行输出端,单片机将要显示的字型码信息串行输入到移位寄存器,再又移位寄存器并行输出到LED数码管的段选引脚,使得已选通的数码管某一位显示特定的数字。第三章 相关芯片介绍3.1 ATmega16单片机ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega16 AVR 内核具有丰

11、富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16 有如下特点:ATmega16单片机管脚图如图3-1所示。图3-1ATmega16管脚图工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余

12、功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Applicatio

13、nFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATmega16 具有一整套的编程与系统开发工具,包括:C 语言 编译器、宏汇编、 程序调试器/ 软件仿真器、仿真器及评估板。3.2 3-8线译码器74HC13874HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码

14、器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。74HC138的管脚图如图3-2所示。图

15、3-274HC138管脚图本设计中用于显示的LED数码管是四位共阴极数码管,即每四位LED数码管显示计价器模拟装置的一个参数。当动态扫描显示的时候,用74HC138来选通LED数码管的位选管脚,既达到增强LED数码管的驱动电流的效果,也能节省单片机的IO端口,使硬件设计变得简洁。3.3 移位寄存器74HC16474HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高

16、电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。74HC164的管脚图如图3-3所示。图3-374HC164管脚图当动态扫描显示的时候,用74HC164来将要显示的字型码数据通过串入并出的方式传送到LED数码管的段选管脚,大大的节省了单片机的IO端口,使硬件设计变得简洁。

17、第四章 软件设计主控制器芯片为Atmega16,由于处理器速度较快,所以采用C语言编程方便简单。软件编写使用AVR单片机软件开发平台CVAVR编译器,改编译器有丰富的AVR单片机常用函数模块、常用外设硬件驱动动态链接库,使用极其方便,具有高度的人性化。软件流程图如图4-1所示。图4-1软件流程图第五章 系统测试由于时间不允许,设计的出租车计价器模拟装置只在电子仿真平台PROTEUS7.0仿真测试通过。测试结果表明,设计的出租车计价器模拟装置具有设计要求提出的绝大部分功能,并且全部仿真测试通过。仿真电子线路图见附件。结论/展望在这段时间里,经过自己努力,基本上完成了设计要求的内容,在系统可行性分

18、析、原理图设计、PCB绘制等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。经过这段时间的学习和工作,我觉得自己不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实

19、际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。这次设计是我认真认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,使我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习中进一步提高。附录附录1 出租车计价器模拟装置仿真测试线路图附录2出租车计价器模拟装置电原理图附录3出租车计价器模拟装置印制PCB图附录4 出租车计价器模拟装置程序清单/*This

20、 program was produced by theCodeWizardAVR V2.05.0 ProfessionalAutomatic Program Generator?Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.Project : 出租车计价器Version : 1Date : 2011/12/5Author : 曾宪金 陈志强 黄宝生Company : 广西大学电气工程学院Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency: 8.0

21、00000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*/所需头文件#include delay.h/预定义移位寄存器所用端口#define HC164_data1 PORTC.0#define HC164_clk1 PORTC.1#define HC164_data2 PORTC.2#define HC164_clk2 PORTC.3#define key_oneway PINC.4#define key_pause PINC.5#define key_roundtrip PINC.6#define ke

22、y_clear PINC.7#define key_licheng PIND.0#define key_jiance PIND.1#define key_shezhi PIND.2#define key_shezhi_jia PIND.4#define key_shezhi_jian PIND.5/预定义出租车状态所用变量#define zhunbei 0#define dancheng 1#define zanting 2#define wangfan 3 #define jiance 4#define shezhi 5#define mimaqueren 6#define lunzi_ko

23、ngshu 8 /轮子边沿所开的孔数,即轮子每转一圈所产生的脉冲数/#define lunzi_banjing 20 /轮子的半径(单位:mm),用于计算累加里程 2*3.14*lunzi_banjing即为轮子转过一圈时里程的累加量(单位也是:mm) /定义数码管扫描字型码及位选码flash unsigned char led_7=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;flash unsigned char position=0x00,0x08,0x09,0x0a,0x0

24、b,0x0c,0x0d,0x0e,0x0f,0x80,0x90,0xa0,0xb0,0xc0,0xd0,0xe0,0xf0;/定义taxi结构体struct taxi unsigned int licheng; unsigned int feiyong; unsigned char state; /出租车当前状态,包括单程(1)、往返(2)、暂停三个状态(0) unsigned int sudu; unsigned int dengdaishijian2; unsigned char fujia_dengdai; unsigned char dancheng_danjia; unsigned

25、char wangfan_danjia; unsigned int qibujia; unsigned char qibulicheng; ;struct taxi mytaxi; /声明mytaxi结构体unsigned char dis_buff; /声明显示缓存区bit keyflag_oneway = 1;bit keyflag_pause = 1;bit keyflag_roundtrip = 1;bit keyflag_licheng = 1;bit keyflag_jiance = 1;bit keyflag_clear = 1;bit keyflag_shezhi = 1;bi

26、t keyflag_shezhi_jia = 1;bit keyflag_shezhi_jian = 1;bit flag_dancheng=0;bit flag_wangfan=0;bit flag_zanting=0;bit flag_jiance=0;bit time_lichengleijiajia_ok=0;unsigned char qibujia_from_epprom=0;unsigned int timecounter = 0;unsigned int interrupt_timecounter = 0; /每两个车速检测脉冲中断之间的时间间隔(ms)unsigned int

27、 speed_time = 0;/轮子转过一圈(轮子边沿所开的孔数个脉冲累计)所需要的时间unsigned char interrupt_cishu = 0; /判断是否转过一圈unsigned int leijia_licheng = 0; /通过速度来累加里程数(中间变量)/unsigned int licheng_timecounter = 0; /多长时间更新累加里程数(因为里程累加是用这个定时时间乘以当时的瞬时速度得到的,所以这个定时时间必须足够小才能保证里程累加的准确性)void eeprom_write(unsigned int uiAddress,unsigned char ucData) /写EEPROM函数 whi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1