课程设计(论文)基于MCS51单片机出租车计价器的设计_第1页
课程设计(论文)基于MCS51单片机出租车计价器的设计_第2页
课程设计(论文)基于MCS51单片机出租车计价器的设计_第3页
课程设计(论文)基于MCS51单片机出租车计价器的设计_第4页
课程设计(论文)基于MCS51单片机出租车计价器的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微型计算机技术专业方向课程设计任务书题目名称:基于mcs-51单片机的 出租车计价器的设计专业 自动化 班级 122班姓名 学号 201228102 学校:青岛理工大学自动化学院 指导教师:史贺男 2014年12月9日课程设计任务书课程名称:微型计算机技术设计题目:基于mcs-51单片机的 出租车计价器的设计系统硬件要求:出租车计价按4公里起步费为7元,每公里2元计费,无等待计费功能。要求每1s采样一次,假设轮胎周长1米,使用中断完成,费用精度要求1元。显示部分为led动态显示设计;并有键盘设计;硬件设计:1)最小系统设计:at89c51单片机为本设计的控制器,包括外扩rom,ram各32 m

2、(其大小由设计者自己设计),系统时钟电路、复位电路等构成的最小系统;2)接口电路的设计:设计者扩展一个并行接口8155或8255,键盘设计由设计者根据需要设计键盘的数量,显示采用led显示,显示电路也根据显示的内容设计;3)有开机显示状态(如显示000000);4)在完成基本设计功能同时可以增加功能。软件设计: 1)主程序设计(包括初始化芯片,定时器,中断以及sp指针等); 2)各功能子程序设计,温度采集计算子程序、键盘子程序显示子程序设计,定时,中断程序等;)其他要求:1、每位同学独立完成本设计。2、依据题目要求,提出系统设计方案。3、设计系统电路原理图。调试系统硬件电路、功能程序。编制课程

3、设计报告书并装订成册,报告书内容(按顺序)(1)报告书封面(2)课程设计任务书(3)系统设计方案的提出、分析(4)系统中典型电路的分析(5)系统软件结构框图(6)系统电路原理图(7)源程序(8)课设字数不少于2000字成绩评语摘要 本文是以mcs-51单片机系统为基础的,通过霍尔传感器检测车轮转动,生成计数脉冲,由mcs-51单片机内部计数器进行计数,从而计算出行驶距离,以及随行驶距离变化而变化的收费金额,通过多位数码管显示出来。由于51单片机内部rom容量小,采用2764扩展外部rom来存储程序。本系统最大化地利用了单片机的内部资源,结构简单,性能稳定,操作方便。关键词: 计价器,mcs-5

4、1, 霍尔传感器,2764第一章 系统总体设计61.1系统概述61.2系统原理分析6第二章 软件部分62.1主程序的设计62.2定时器中断程序的设计82.3外部中断0的程序设计92.4外部中断1的程序设计102.5数码管显示的程序设计10第三章 硬件部分123.1 单片机最小系统及键盘模块123.2 数码管显示模块133.3 霍尔传感器模块133.4 外部存储器模块14第四章 辅助调试工具15总结16参考文献17附录一 程序代码18附录二 硬件电路图23附录三 pcb图24 第一章 系统总体设计1.1系统概述根据课程设计要求的性能指标,本系统要满足一定精度的价格计算的基本功能,同时系统还具有动

5、态显示当前的计费值的功能和键盘操作的功能。 1.2系统原理分析 本文以mcs-51单片机系统为基础,通过霍尔传感器对车轮转动进行检测。车轮轴上有一个小磁钢,车轮每转动一圈,磁钢靠近一次霍尔传感器,传感器输出一个脉冲。单片机通过t1计数器对该脉冲进行计数,并根据轮胎周长计算行程,再根据计价规则算出计费值,通过数码管显示,计费精度达到1元。本系统设计简单,性能稳定,能够通过单片机灵活编程进行各种功能的设定和修改。根据本课题的设计目标以及硬件的特点,本系统的总体设计框图如图所示。第二章 软件部分2.1主程序的设计设计思路: 主程序主要执行定时器、计数器、中断的初始化,以及对数码管进行扫描显示。首先开

6、中断,包括定时器0中断、外部中断0和1;然后配置外部中断触发模式,以及定时器初值;最后扫描显示数码管。其中,由于计数器每次返回计数值不确定,为了准确地工作,定时器与计数器均工作在方式一模式,外部中断触发方式为下降沿触发。晶振频率为12mhz,定时器0每次重装值为65536-5000,即每次定时器中断计时为5000*12/(12mhz)=5ms. 流程图:程序代码:ie=0x8f;/开中断tmod=0x51;th0=(65536-5000)/256;/定时器初值为60536,即5mstl0=(65536-5000)%256;it0=1;it1=1; / 中断定时器初始化while(1)while

7、(z=1) / 未检测到开始按键之前显示0jg(0); while(z=0) / 开始之后数码管显示当前计费值qjg(q);2.2定时器中断程序的设计t0作为定时器开中断,进入中断首先执行定时器初值的重装,然后判断计费器是否处于计费状态,从而决定是否向th1和tl1取回计数值,计算总行程以及当前计费值并存入单片机。总行程与当前计费值分别记为zong和q. 计算方法根据设计要求得到,起步价为4km 7元,以后2元/km,要求精度为1元,所以程序为每500m计费1元。流程图:t0中断程序否清空计数器并返回主函数计算总行程与计费金额是是否到采样时间是否是否暂停重装定时器初值程序代码:static n

8、um=0;th0=(65536-5000)/256;tl0=(65536-5000)%256;/定时器初值重装为60536num+;if(flag=0) /若flag为0,则按下了暂停键,此时每次定时器时间到计数器清零th1=0;tl1=0;if(num=2)&flag) /若flag为1,且定时器时间到采样时间,为了更灵敏地显/示计费,扫描周期设定为2个中断周期num=0;shu=th1*256+tl1;zong=zong+shu; / 定时器数值存入zongth1=0;tl1=0; / 计数器清零if(zong=4000)q=(zong-4000)/500+7; /若果zong大于起步公里

9、数(4km)进行此步计算价格2.3外部中断0的程序设计外部中断0用于检测按键“开始/暂停”。“开始”被按下表示计价器从非计费状态转为计费状态或暂停,此时计数器与定时器均为开通状态。程序代码:flag=!flag; /按下一次开始,再次按下取反z=0;tr0=1;/定时器开通tr1=1;/计数器开通2.4外部中断1的程序设计外部中断0用于检测按键“复位”。“复位”被按下表示计价器从计费状态转为非计费状态或保持非计费状态,总行程(zong)与计费值(q)回到初值,关闭定时器与计数器,清空计数值。程序代码:z=1;/非计费状态flag=0;q=7;zong=0;tr0=0;/关闭定时器tr1=0;/

10、关闭计数器tl1=0;th1=0;2.5数码管显示的程序设计此系统采用数码管显示,因此需要计算每一位的显示值。这里采用多位数码管,每次只能显示一位,为了让多位数码管看起来都亮,程序必须高速扫描显示,由于人的视觉暂留效应,会看起来多位数码管都亮了。值得注意的是,随着程序运行,同一位的显示值会变,这体现在数码管段的亮灭上,为了不使显示不清晰,下次点亮之前必须先关闭该位,即不显示。程序代码:sbit l1=p36;/千位 sbit l2=p34;/百位sbit l3=p31;/ 十位sbit l4=p30;/个位#define com1 l1=1;l2=0;l3=0;l4=0#define com2

11、 l1=0;l2=1;l3=0;l4=0#define com3 l1=0;l2=0;l3=1;l4=0#define com4 l1=0;l2=0;l3=0;l4=1#define com0 l1=0;l2=0;l3=0;l4=0/单个数码管点亮定义p1=taba%10;/最低位(个位)com4;/点亮个位delay(10);/延时com0;/关闭显示p1=tab(a/10)%10 ;/十位com3;delay(10);com0;p1=tab(a/100)%10;/百位com2;delay(10); com0;p1=taba/1000;/千位com1;delay(10);com0;void

12、delay(uint b) / 延时函数uint x=110;for(x;x0;x-)for(b;b0;b-);第三章 硬件部分3.1 单片机最小系统及键盘模块 80c51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80c51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12mhz的晶振频率。由于80c51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。80c51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 本系统包括晶振电路,复位电路,扩展外部ro

13、m电路,键盘电路等,为了不使电路看起来过于混乱,这里采用网络标号的方法代替连线。电路图如下: 图13.2 数码管显示模块用数码管显示价格低廉且亮度高,很适合用于计价器显示。图中p1口(网络编号b)用于显示数码管,接数码管段选端。p3.0、p3.1、p3.4、p3.6(网络编号c)接数码管位选端。图23.3 霍尔传感器模块霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有cs3020、cs3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(oc)门输出,工作电压范围宽,使用非常方便。如图1所示是cs3020的外形图,将有字面对准自己,三根

14、引脚从左向右分别是vcc,地,输出。图3使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在车轮转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。所以霍尔传感器测速实际上是测转轴转动频率。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。霍尔传感器测速电路原理图如下:图4在仿真电路中,为了更清晰明了地展示计价器的工作,霍尔传感器采样的部分用一个模拟脉冲发生器代替了(见图1),接p3.5/t1计数器计数通道。3.4 外部存储器

15、模块本系统扩展8k rom, 用了一片2764以及一片地址锁存器74ls373,其中使用地址线p0.0p0.7及p2.0p2.4,p0.0p0.7复用为数据线。单片机ea脚接地,程序存储地址均为外部rom.地址范围为:0000h1fffh扩展原理图如下:图5第四章 辅助调试工具使用proteus辅助调试,可以直观地看到程序及硬件电路的实现效果,设计者可以很方便地根据效果分析系统存在的问题,并找出解决方法,而且可以通过模拟测量仪器对电路进行实时监控。如图所示:图6图7总结出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是

16、很必要的。所以,我们小组进行了出租车计价器的设计。经过一段时间的学习设计,出租车计费器系统的设计已经全部完成,能按预期的效果进行模拟汽车启动,停止,暂停等功能并能够通过数码管显示车费数目。即使这样,在设计调试仍然存在一些问题,可能无法做到真正的实践使用,还需要一些调整改正。这一段时间,经过小组成员的努力,我们基本完成了初始设计目的,但在这个过程中我发现自己存在一些问题,那就是我平时学习积累远远不够,在参与设计的过程中,有许多力不能及的地方,都是在上网学习后者组员帮助下才能完成。这说明了一点,书本上的东西真要实践起来是完全不一样的,在这方面我有很大的不足,实践方面的能力远远不够。 虽然在这次设计

17、中我有很多的不足,但正是在这次设计中我学到了很多东西,通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。并且这次设计还使我认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。参考文献:单

18、片机原理及其接口技术(第三版) 胡汉才 主编 数字电子技术基础(第五版) 清华大学电子学教研室组 编 阎石 主编自动检测技术及仪表控制系统(第三版) 张毅 张宝芬 曹丽 彭黎辉 编附录一 程序代码#includetypedef unsigned int uint;typedef unsigned char uchar;void delay(uint b);/ 延时函数声明void jg(uint a); /价格数值拆分及显示函数 sbit l1=p36;sbit l2=p34;sbit l3=p31;sbit l4=p30;#define com1 l1=1;l2=0;l3=0;l4=0#de

19、fine com2 l1=0;l2=1;l3=0;l4=0#define com3 l1=0;l2=0;l3=1;l4=0#define com4 l1=0;l2=0;l3=0;l4=1#define com0 l1=0;l2=0;l3=0;l4=0/单个数码管点亮定义uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x0f8,0x80,0x90 ;uchar z=1,flag=0;uint q=7,zong=0,shu=0;void main()ie=0x8f;tmod=0x51;tl0=(65536-5000)%256;th0=(65536-5000)/256;it0=1;it1=1; / 中断定时器初始化while(z=1) / 未检测到开始按键之前显示0jg(0); while(z=0) / 开始之后数码管显示jg(q);void tt0(void) interrupt 1 /定时器中断static num=0;th0=(65536-5000)/256;tl0=(65536-5000)%256;num+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论