在哪仪表课程设计教材_第1页
在哪仪表课程设计教材_第2页
在哪仪表课程设计教材_第3页
在哪仪表课程设计教材_第4页
在哪仪表课程设计教材_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

智能仪表课程设计内蒙古科技大学智能仪表综合训练设计报告题目:计价器设计(键盘扫描模块)学生姓名:学号:专业:测控技术与仪器班级:2011-1指导教师:摘要智能仪器仪表技术是一门集电子技术、单片机技术,自动化仪表、自动控制技术、计算机应用等一体的跨学科的专业技术。自20世纪90年代初以来,这项技术已逐步引入到国内工科专业中的电子信息、通讯、自动化、计算机应用等信息类专业中。随着微电子技术和计算机技术的飞速发展,测控仪器仪表的智能化、总线化、网络化发展已在各个相关行业呈现出广阔的发展前景,同时也日益成为工程界和科技界人士所关注的重要问题之一。因此,了解和熟悉智能仪器仪表的特点功能,发展趋向及其应用前景是十分重要和必要的。本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。本课题主要研究出租车计价器的硬件设计。论文详细阐述了该计价器的总体设计:算法计算模块、里程检测模块、LED显示模块、键盘模块等。关键词;单片机STC89C52;键盘;出租车计价器目录摘要 2第一章概述 31.1出租车计价器概述 31.2单片机的概述 4第二章总体方案设计 52.1功能要求 52.2工作原理 6第三章硬件设计与仿真 63.1STC89C52的结构及其引脚功能 63.1.1STC89C52的结构 63.1.2功能特性描述 73.2键盘扫描模块设计 93.2.1单片机检测按键的原理 93.2.2按键开关的去除抖动功能 93.2.3键盘的接口电路 103.2.4按键的功能 11第四章软件设计 124.1主程序模块设计 124.2子程序模块设计 134.2.1键盘扫描模块设计 134.2.2算法模块设计 144.2.3显示模块设计 15第五章总结 16参考文献 17附录A:硬件原理图 18附录B:源程序 19第一章概述1.1出租车计价器概述出租汽车已经成为我国城市公共交通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少的交通工具。出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器计价准确与否,直接关系到经营者和消费者的经济利益。依据国家有关法律、法规,出租汽车计价器是列入国家首批强制检定的工作计量器具之一,也是近年来国家质量技术监督部门强化管理的六类重点计量器具之一。本次设计的目的在于现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。1.2单片机的概述算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的所以单片机又称微控制器MCU(MicroControllerUnit)。用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(EmbeddedMCU)。单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用于家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过30多年的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。据统计,我国的单片机年容量已达1~3亿片,且每年以大约16%的速度增长,但相对于国际市场我国的占有率还不到1%。这说明单片机应用在我国有着广阔的前景。对于从事自动控制的技术人员来讲,掌握单片机原理及其应用已经成为必不可少的学习任务。单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有重要的用途。第二章总体方案设计2.1功能要求利用单片机的软件编写功能,实现够累计显示总里程数,设定和修改每公里单价起价(如6元),并设定某公里数(如4公里)以后,开始计价。可以显示总价钱和总公里数的切换可以暂停计价或清零,可以调节起步价和更改单价。再突然掉电后从新开机可以保存掉电以前的数据以保证数据完整。2.2工作原理相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出里程,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在LED数码管上。独立键盘可以调节单价,起步价等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,下次得电后直接从EEPROM读到单片机,系统结构图如图2.1。2.1总设计图第三章硬件设计与仿真3.1STC89C52的结构及其引脚功能3.1.1STC89C52的结构STC89C52——低电压高性能CMOS8位单片机,片内8kbytes的可反复擦写的FLASH只读程序存储器及256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器及FLASH存储单元,功能强大之AT89C52单片机可为您提供许多较复杂系统控制之应用场合。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可按照常规方法进行编程,亦可在线编程。其将通用之微处理器及Flash存储器结合,特别是可反复擦写的FLASH存储器可有效降低开发成本。如图3.1所示。3.1STC89C52引脚图3.1.2功能特性描述Vcc:电源电压。GND:地。P0口:P0口是一组8位漏极开路型双向I/O接口,也即地址/数据总线复用口。当访问外部数据存储器或程序存储器时,这组口线分时转换地址和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接受指令字节,而在程序校验时,输出指令字节。P1口:P1口是一个带内部上拉电阻的8位双向I/O接口,P1的输出缓冲级可驱动4个TTL逻辑门电路。FLASH编程和程序校验时,P1接收低8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。在访问外部程序存储器或16位地址的外部数据存储器时P2口送高8位地址数据。FLASH编程或校验时,P2亦接收高位地址和其他控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,如表2.1所示。表3.1STC89C52的一些特殊功能口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。ALE/:当访问外部数据时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。对FLASH存储器编程时,该引脚还用于输入编程脉冲()。EA/VPP:外部访问允许。:程序储存允许。输出是外部程序存储器的度选通信号。XTAL1:振荡器反相放大及内部是钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2键盘扫描模块设计键盘分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值得称为编码键盘,如计算机键盘。而靠软件编程识别的键盘称为非编码键盘,在单片机组成的各种系统中,用较多的是非编码键盘。非编码键盘又分为独立键盘和行列式键盘。3.2.1单片机检测按键的原理单片机的I/O口既可以作为输出也可以作为输入使用,当检测按键时用它的输入功能,我们把按键的一端接地,另一端与单片机的I/O口相连,开始时先给该I/O赋一高电平,然后单片机不断的检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变为低电平,程序一旦检测到I/O口变为低电平说明按键被按下,然后执行相应的指令。如图3.2.1所示。图3.2.1按键连接图3.2.2按键开关的去除抖动功能目前,STC89C52单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.2.2所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。通常消除抖动影响的方法有硬件、软件两种。当按键较少时,可采用硬件方法消除抖动。如图3.1所示。图3.2.2按键过程3.2.3键盘的接口电路独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。如图3.2.3所示。每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。图3.1.3键盘电路3.2.4按键的功能(1)S1按键的功能S1按键是清零按键。在出租车不走或上位乘客下车另一位乘客上车的时候,按下S1,可以进行里程和总金额清零。(2)S4按键的功能S4按键是功能选择按键。在按下S4按键之后,可以进行里程,起步价,总金额和单价之间进行选择,进行单价,起步价的更改液需要用到S4按键。(3)S2按键的功能S2按键是单价和起步价的加价。需要进行单价的更改,先按下S4按键进行单价的选择,在按下S2按键进行单价的加价;夜间价格与白天的价格不同,需要进行起步价的更改,所以要先按下S4按键,在按S2按键进行起步价的加价。(4)S3按键的功能S3按键是单价和起步价的减价。S3按键和S2按键同理,也需要先按下S4按键进行功能的选择,在按下S3按键进行单价与起步价的减价。第四章软件设计本系统的软件设计主要可分为主程序模块、金额计算子程序,显示子程序、键盘扫描子程序五大模块。在主程序中对各子程序模块按照相应的条件进行调用即可实现基本的功能要求。下面对各部分模块作介绍。4.1主程序模块设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。如图4.1。4.1主程序流程图4.2子程序模块设计4.2.1键盘扫描模块设计键盘扫描子程序不断对S1,S2,S3,S4四个键扫描。当S0按下时,进行清零动作;S4按一下显示起步价,此时按下S2起步价加,按下S3起步价减;S4按两下显示里程;S4按三下显示单价,此时按下S2单价加,按下S3单价减;程序流程图如图4.2.1所示。4.2.1键盘扫描程序流程图4.2.2算法模块设计里程计算部分:开始,外部中断零关闭,脉冲计数累加,里程计算(licheng=3.14*2*0.3*qs*0.001),开启外部中断零,返回。总金额计算部分:开始,先判断里程是否大于零,如果大于零则licheng=3.14*2*0.3*qs*0.001,如果小于零则总金额等于起步价,返回。程序流程图如图4.2.2所示4.2.2算法程序流程图4.2.3显示模块设计由于是显示数据,所以就要用到4个显示子程序,分别是:起步价显示程序、金额单价显示子程序、路程单价显示子程序、单价调节子程序。如图4.3.2。4.2.3显示子程序流程图第五章总结经过这次出租车计价器的课程设计,我收益非浅,从中我学到了很多东西.课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,另外,还学会了在网络上查找有关本设计的各硬件的资源,其中包括:STC89C51单片机及其引脚说明,为本次课程设计提供了一定的资料。通过这次课程设计,我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握,凡事都要自己去动下手,去实践一下,遇到困难,永远不要沮丧气馁。在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识。参考文献李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,2005朱承高.电工及电子技术手册[M].北京:高等教育出版社,1990高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,2004胡辉,单片机原理及应用设计—21世纪高等院校规划教材[M],水利水电出版社,2005.7黑杰克.ProtelSchematic99SE电路设计[M].北京:科学出版社,2001年3月黄宏安.AllegroPCBLayout.高速电路版设计[M].台科大图书股份有限公司.2003年3月李广弟.单片机基础[M].第3版.北京航空航天大学出版社,2007年1月李华.MCS-51系列单片机实用接口技术[M].北京航空航天大学出版社,1996王广雄著.自动控制系统设计[M].北京:宇航出版社,1986附录A:硬件原理图附录B:源程序#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitDAT=P1^0;sbitCLK=P1^1;sbitK1=P1^4;//清零sbitK2=P1^5;//+sbitK3=P1^6;//-sbitK4=P1^7;//功能键uintqs,licheng_,zongjine_,danjia_,aa;//用来显floatlicheng,danjia,zongjine,qibu;ucharcodetab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x00};//0-9,-,全灭(共阳字段表)ucharcodetab_[]={0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7,0xef,0x01};voiddelay(uintt){uinti,j;for(i=0;i<t;i++) for(j=0;j<110;j++);}voidsendbyte(ucharbyte){ucharnum,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=~num&0x01;//(0x80即十进制的128,二进制的10000000按位发送)CLK=1;num>>=1;}}voidsendbyte_(ucharbyte){ucharnum,c;num=tab_[byte];for(c=0;c<8;c++){CLK=0;DAT=~num&0x01;//(0x80即十进制的128,二进制的10000000按位发送)CLK=1;num>>=1;}}voiddisplay_licheng(void){unsignedchari,t[4];licheng_=licheng*10; t[0]=licheng_/1000%10; t[1]=licheng_/100%10; t[2]=licheng_/10%10; t[3]=licheng_%10;for(i=0;i<4;i++) { if(i==2) sendbyte_(t[i]); elsesendbyte(t[i]);} delay(100);}voiddisplay_zongjine(void){unsignedchari,t[4];zongjine_=zongjine*10; t[0]=zongjine_/1000%10; t[1]=zongjine_/100%10; t[2]=zongjine_/10%10; t[3]=zongjine_%10;for(i=0;i<4;i++) { if(i==2) { sendbyte_(t[i]); } elsesendbyte(t[i]);} delay(100);}voiddisplay_danjia(void){unsignedchari,t[4];danjia_=danjia*10; t[0]=danjia_/1000%10; t[1]=danjia_/100%10; t[2]=danjia_/10%10; t[3]=danjia_%10;for(i=0;i<4;i++) { if(i==2) { sendbyte_(t[i]); } elsesendbyte(t[i]);} delay(100);}voidkeyscan()//键盘扫描{if(K1==0){delay(10);if(K1==0)//内部清零键{zongjine=0;licheng=0;qs=0;}}if(K4==0)//功能键调节{delay(10);if(K4==0){aa++;//状态基if(aa==3){aa=0;}}}if(K2==0){delay(10);if(K2==0){if(aa==2) {danjia=danjia+0.1;if(danjia==100)danjia=0;while(!K2);delay(3);while(!K2);}if(aa==0) {qibu=qibu+1;if(qibu==100)qibu=0;while(!K2);delay(3);while(!K2);} }}if(K3==0){delay(10);

温馨提示

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

评论

0/150

提交评论