收藏资料基于Proteus的单片机出租车计价器的设计.docx
- 文档编号:3504846
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:165.63KB
收藏资料基于Proteus的单片机出租车计价器的设计.docx
《收藏资料基于Proteus的单片机出租车计价器的设计.docx》由会员分享,可在线阅读,更多相关《收藏资料基于Proteus的单片机出租车计价器的设计.docx(14页珍藏版)》请在冰豆网上搜索。
收藏资料基于Proteus的单片机出租车计价器的设计
基于Proteus的单片机
出租车计价器的设计
课程:
学院:
班级:
姓名:
学号:
小组其他成员:
指导老师:
一、设计背景
随着出租车行业的发展,对出租车计费器的要求也越来越高。
二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。
同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而单片机开发的系统以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。
现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。
二、设计方案
1.设计功能:
计价功能:
3.5公里以内(含3.5公里)价格为8元,超过3.5公里以后每0.5公里加0.8元,不足0.5公里按0.5公里计。
2.设计过程:
分为软件设计及硬件设计两个主要部分。
其中,软件设计包括基于C语言的单片机源程序设计。
硬件设计包括四个模块的设计即:
主控模块,通信模块,电源模块,按键及显示模块。
三、软件设计
1.设计流程单片机的软件设计流程
如右图所示
其中初始化模块由硬件初始化和软件初
始化两部分组成,硬件初始化主要是
对单片机及其它相关芯片进行初始
化;而软件初始化主要是对各种软件
标志进行初始化,同时将断电前保存
的各种状态数据读入单片机的RAM中。
2.单片机源程序
#include"at89x51.h"
#include"intrins.h"
#defineucharunsignedchar
uchara,b=0,temp=0x01;
unsigned
chartable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
unsignedchartable1[]={0xBF,0x3F,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F};
intm=0,n=10,ge=0,shi=0,h=0;
ucharn1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0;
voiddelay(uchart)
for(t1=0;t1<10;t1++)
for(t2=0;t2 } voidinit(){ P1_3=0; P2=0xff; P0=table[10]; delay(10); } voiddisplay() { P2_0=0; P0=table[n1+10]; delay (1); P2_0=1; P2_1=0; if(h<3000){ P0=table[n2]; delay (1); P2_1=1; } else { P0=table[n2+n]; delay (1); P2_1=1; } P2_2=0; P0=table[n3]; delay(10); P2_2=1; P2_3=0; P0=table[n4]; delay (1); P2_3=1; P2_4=0; P0=table[n5]; delay (1); P2_4=1; P2_5=0; P0=table[n6]; delay (1); P2_5=1; P2_6=0; P0=table[n7]; delay (1); P2_6=1; P2_7=0; P0=table[n8]; delay (1); P2_7=1; } voiddisplay1() { { n7=n7+8; } if(n7<10) { n7=n7; } else { n7=n7-10; n6++; } if(n6==20)// { n6=10; n5++; } if(n5==10) { n5=0; n4++; } } voidmain() { TMOD=0X01;TH0=0X00; TL0=0X00; ET0=1; TR0=1; init(); while (1) { if(P1_1==0){ EA=0; init(); break; } if(P1_0==0) { EA=1; } else { EA=0; } display(); } } voidint0()interrupt1 { TH0=0X00; TL0=0X00; b++; h++; if(b==3){ b=0; if(n3<10) { n3++; } if(n3==10) { n3=0; n2++; } if(n2==10) { n2=0; n1++; } if(n1<1) { n4=n5=n7=n8=0; n6=18; } //运行到9.99 if(n1==9&&n2==9&&n3==9) { n1=m-9; n2=0; n3=0; } if(h>3000&&h<5700)// { if(n3==0||n3==5) display1(); } if((n1==3&&n2==5&&n3==0)||(n1>3&&n2==0&&n3==0)||(n1>3&&n2==5&&n3==0)) display1(); } } 3.仿真电路图 四、硬件设计 系统主要由一个STC89C52单片机、74LS373、两个4位数码管等组成。 通用STC89C52单片机芯片作为整个电路的核心部分、74LS373作为LED段选控制、开关输入控制信号。 包含主控,通信,按键及显示, 电源四个模块。 如右图所示。 1.主控模块 (1)STC89C52处理芯片 ①主要性能: 与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作: 0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。 ②功能特性描述: STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。 使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。 片上Flash允许程序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。 另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。 空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。 掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 8位微控制器8K字节在系统可编程Flash P0口: P0口是一个8位漏极开路的双向I/O口。 作为输出口,每位能驱动8个TTL逻辑电平。 对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。 在这种模式下,P0具有内部上拉电阻。 P1口: P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。 对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。 P2口: P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。 对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。 在这种应用中,P2口使用很强的内部上拉发送1。 在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3口: P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。 对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3.5T1(定时/计数器1) P3.6WR(外部数据存储器写选通) P3.7RD(外部数据存储器读选通) RST——复位输入。 当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。 一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。 需注意的是: 如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 ③引脚图: 见下图 (2)74LS373 ①功能说明: 373为三态输出的八D透明锁存器。 373的输出端O0~O7可直接与总线相连。 当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。 当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端LE为高电平时,O随数据D而变。 当LE为低电平时,O被锁存在已建立的数据电平。 ②引脚图: 见上图 Dn LE OE On H H L H L H L L X L L Q0 X X H 高阻态 ③引出端符号: D0~D7数据输入端 OE三态允许控制端(低电平有效) LE锁存允许端 O0~O7输出端 ④真值表: 见右图 2.通信模块 右图为通信模块组成图,它 主要由单片机的两个I/O口、 和一些电阻电容等组成。 图中电阻均为10kΩ,电容均为 10μF;单片机的P30为串行数据 接收脚、P31为串行数据发送脚, 3.按键及显示模块 该模块由一片74LS373、20个数 码管及组成。 该模块有三个开关键, 分别设为A、B、C开关。 空车状态 按下C开关,计费器进入载客 状态;空车状态按下B开关, 计费器进入计费状态;若按下 A开关,再次进入空车状态。 4.电源模块 该模块为稳压电源,用于将输入电源变为稳定的5V电源。 五、调试 为检验设计的电路和程序,将调试的程序固化到制作的实物电路板单片机中,得到的实物运行实验结果与Proteus的仿真结果完全一致。 六、总结 1.作品设计总结 该设计结果完成了设计方案中所要求的功能。 通过出租车计费系统的设计中,利用Proteus软件极大地提高了工作效率,这对于单片机应用系统、电子电路的开发等都有很大的实用价值。 2.个人课程心得 经过这段时间电子技术综合设计的学习,我更多的懂得了查找资料对电子设计的重要性。 作为一个经验极其缺乏的学生来说,想通过老师在课堂上的讲解就能精通一门课程,尤其是想自己设计一个有点创新和复杂性的东西来,我个人认为那是不现实的。 毕竟在课时有限的教学中,老师也只能讲解一些比较基础的重点的内容,所以作为一个大学生,我们要充分利用手上的工具和图书馆庞大的书籍,我们要不断的在探索中学习。 本次的实习,我们小组做的是出租车计费系统的设计。 在课程开始之后,我们小组就去查找相关资料,经过几天的资料收集之后,我们开始动手尝试。 我们分工合作,每人承担不同的任务,但又互相配合,互相帮助。 我懂得了团队合作的重要性。 另外在本次实习中,我也复习了单片机原理及数字电子技术的一些相关知识,如时钟电路的工作原理,单片机基本程序设计原理,这些课堂知识为本次的学习做了辅导,正是有了这些知识,才使得我在实习过程中能够收获很大。 因此作为一个在校大学生,虽然实践的机会比较少,但我一定要充分利用这些有限的课堂时间学到更多的知识。 在学习的过程中有要不断的思考研究,利用每次机会充分锻炼自己! 七、参考文献 [1]袁小平.电子技术综合设计教程[M].北京: 机械工业出版社,2008 [2]胡汉才.单片机原理及其接口技术[M].北京: 清华大学出版社,2004 [3]曹国清.可编程逻辑器件及VHDL设计技术[M].徐州: 中国矿业大学出版社,2003 [4]李华.MCS-51系列单片机实用接口技术[M].北京: 北京航天大学出版社,1999. [5]周国运.单片机原理及应用: C语言版[M].北京: 中国水利水电出版社,2009 [6]谭浩强.C程序设计[M].北京: 清华大学出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 收藏 资料 基于 Proteus 单片机 出租车 计价器 设计