




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南华大学船山学院课程设计(或论文)引言数字里程表是用于远距离连续测量行驶速度和距离的仪表。它分为传感器、单片机和显示器三部分。本文介绍的数字里程表是采用以AT89C51单片机为中央处理器,结合高精度的采样电路、 控制电路、显示电路,方便地实现了智能化、 高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。如今,随着现代电子电路的快速发展,以及电子行业对现有电子工程技术的不断需求,特别是对实际操作实践的电子人才的需求越来越多,所以加强个人动手能力重视实践应该是电子发展需求的必然趋向。实践动手能力的培养是一种综合能力,这种能力当然是在一定难度的前提下完成的,通过一定数量的实践才能逐步形成的。因此在培养实践能力的同时,要通过实践来不断的发现问题和解决问题的途径和方法,从而提高实践能力。近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。1设计思路假设车轮的半径为R,R的值根据车轮半径的不同由编程是内部设定或键盘输入给定,则L=2*3.14*R。在轮圈上安装一个永久磁铁,则轮子每转一圈,通过开关型霍尔传感器的电平就会发生一次跳变,跳变产生一个脉冲信号,从引脚P3.5计数器T1端输入,并通过计数器对其进行计数为N在规定的周期T时间内的路程S=N*L,而在该周期内的速度V=S/T,当前的总路程为lc=lc+S。 计时功能由时间芯片DS1302来选取,如果当时间不符合时,则由键盘对时间进行初始化设置来调整时间,然后通过定时器来完成时间计时功能,键盘还可以对不同规格的自行车半径来作选择。 在LCD上需显示的内容为time,sd,lc。由AT89C51控制显示数据,实时刷新。2系统功能原理及硬件组成2.1主要器件2.1.1主控制器本实例中的单片机采用AT89C51。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2.1所示。图2.1 AT89C51外形及引脚排列单片机AT89C51的引脚功能VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.1.2霍尔传感器里程测量传感器的选择方案有:使用编码器对自行车车轮的圈数进行测量、使用红外光敏电阻对里程进行测量、利用霍尔传感器对自行车里程进行测量。 编码器的安装相对来说比较复杂;红外光敏电阻不仅对光敏感,还对环境和天气的要求也高,这些因素都能严重影响测量的效果;而霍尔传感器完全能避免上述的不足之处,由霍尔元件加整形电路构成的霍尔开关系统,不仅安装方便,不受光线和环境的影响,而且具有输出响应快,数字脉冲性能好,既简单又经济适用,所以本设计采用霍尔传感器来对里程进行测量。霍尔传感器是利用霍尔效应制成的一种磁敏传感器。在置于磁场中的导体或半导体通入电流I,若电流垂直磁场B,则在与磁场和电流都垂直的方向上会出现一个电势差Uh,这种现象称为霍尔效应。利用霍尔效应制成的元件称为霍尔元件。因为它具有结构简单、频率响应宽、灵敏度高、测量线性范围大、抗干扰能力强以及体积小、使用寿命长等一系列特点,因此被广泛应用于测量、自动控制及信息处理等领域。霍尔效应原理图如图2.1所示。图2.2 霍尔效应原理图使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在齿轮盘上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E,该传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,工作电压范围宽,使用非常方便。A44E的外形如图2.3所示。1-Vcc 2-GND 3-OUT图2.3 A44E外形图 霍尔传感器检测转速示意图如下图示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲,通过单片机测量产生脉冲的频率就可以得出圆盘的转速。图2.4 测速原理图霍尔传感器的外形图和与磁场的作用关系如图2.5所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。图2.5 霍尔元件产品图和管脚图2.1.3显示电路显示设计采用LM016L液晶模块,该点阵的屏显成本较低,适用于各类仪器,小型设备的显示领域。在本设计中用来显示速度路程和时间。LCD模块引脚及功能如下图。图2.6 LM016L引脚 VSS:接地 VDD(VCC):电源电路,+5V VEE(VO):液晶驱动电压 RS:寄存器选择(为“1”时,选数据寄存器DR,为“0”时选指令寄存器IR) RW:读写信号 E:使能,片选,下降沿触发 DB0-DB7:数据线3.1.4 时间芯片 本设计时间芯片采用的了DS1302,DS1302是由美国DALLAS公司推出的一种具有涓细电流充电能力的低功耗实时时钟电路,具有可对年、月、日、周、日、时、分、秒进行计时等的功能,工作电压为2.5V5.5V。主要的特点是采用串行数据传输,即使掉电亦不丢失,在DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302与AT89C51的连接线有三条线:RST引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2作为备用电源,芯片外接晶振X2,为芯片提供计时脉冲。3.1.5键盘矩阵键盘是4*4的矩阵键盘,在设计中是用来调整时间的,从上述知道当时间芯片DS1302的时间不准确时,就可以通过键盘来对时间进行调整,当然键盘还能对不同规格自行车的半径进行选择。2.2系统硬件构成图外部信号霍尔传感器外部存储器AT89C51单片机里程显示速度显示图2.7 系统的原理框图3数字里程表软件设计3.1概述所谓的软件设计就是指把软件需求变换成软件具体设计方案(即模块化结构)的过程。模块化结构设计是指根据要求和硬件设计的结构,将整个系统的功能分成多个小的功能模块,再根据小的功能模块进行程序编写的过程。所以在本设计中的软件设计的思想主要是模块化设计,包括一个主模块和三个子模块(数据采集子模块、控制子模块、LCD显示子模块),对各个子模块进行逐一设计,主模块完成对各个子模块的初始化,调用控制子模块、显示子模块。数据采集子模块采用中断方式工作,同时在编程中采用C语言编写,使用了许多技巧,使运算做到高精度、快速。3.2主程序在主程序模块中,要完成对各个接口芯片的初始化、里程和速度的初始化等工作。源程序见附录1。4 Proteus仿真4.1概述Proteus中的电路仿真是在ISIS 原理图设计模块中延续下来的,利用Proteus的交互式仿真功能,用户可以清楚的观察电路的工作情况。Proteus原理图仿真分析的首要任务是从元件库中选取绘制电路所需元件,查找所需元件,将元件放置在绘图区,同时编辑元件的参数,然后连线。再利用电器规则对设计进行检查直到通过其检查为止。在源代码通过编译无误后就可以进行仿真。4.2仿真电路图图4.1 数字里程表仿真图结束语随着电子技术的发展,以及计算机技术和通信技术的广泛应用,车辆不断地向智能化发展,整个社会交通系统也提供越来越智能的服务,车辆的信息系统也日趋纷繁复杂,车辆仪表系统将能提供更丰富的信息和更人性化的功能,因此种类更多,功能更强大面调试更简便的车辆仪表需要开发研制。在本系统的设计过程中,相互的综合各个方面的要求和深入的比较。主要采用AT89C51单片机,A44E霍尔传感器等各种器件设计出了数字里程表电路,配以程序可以实现速度里程和时间的显示。当然本系统远远不能满足车辆公司将来新产品的生产要求,在数字仪表以及电子控制的领域里,也还有很多的新东西等待我们去探索和研究。我相信不久的将来,一定能研发出更先进更漂亮的多功能数字里程表等电子仪表。参考文献1 张洪润.单片机应用技术教程M.清华大学出版社.20062 康华光.电子技术基础M.高等教育出版社.20003 阎石.模拟电子技术基础M.华中科技大学出版社.20054 刘乐善.微型计算机接口技术及应用M.华中科技大学出版社.20055 李光飞.51系列单片机设计实例M.北京:北京航空航天大学出版社,2003.6 侯玉宝. 基于Proteus的51系列单片机设计与仿真M 北京:电子工业出版社,2002.谢辞在课程设计完成之际,我真心地感谢在设计之中给我帮助的汪老师和各位同学们。在这两个星期中,汪老师给予了耐心的指导。在学习和设计的过程,我了解并深入的掌握了Protel原理图的绘画,和单片机的编程方面的技巧和知识。在课程设计完成的过程中,很多同学在资料和知识方面给了我很大的帮助,在此深表谢意。附录1基于单片机的数字里程表源程序#include#define uchar unsigned char/*引脚定义:P20=SW1 时钟设置时更改“时”,直径设置时更改十位P21=SW2 时钟设置时更改“分”的十位,直径设置时更改个位P22=SW3 时钟设置时更改“分”的个位P23=Enter 确认更改设置P32=Disp 正常工作时更改显示模式*/sbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit P32=P32;sbit RS=P37;sbit RW=P36;sbit E=P35;sbit busy=P17;/*变量定义:i 延时变量qsls 圈数临时变量,用于判断里程显示选用m还是km作为单位qs 圈数sj 累计行驶时间,单位为秒totallc 累计里程pjsd 平均速度ssji 定时器T120ms中断次数,用于计算速度等sji 本次速度对应的20ms中断次数sjiold 上次速度对应的20ms中断次数aa 加速度sd2 当前速度mxsd 用于更新最大速度mxsd2 最大速度对应的20ms次数tc 轮胎周长*s 字符串显示子程序字符指针line 字符串显示子程序列数row 字符串显示子程序行数com 写控制字dat 显示码字gw 累计里程、当前速度、累计时间、最大速度、平均速度、加速度的个位sw 累计里程、当前速度、累计时间、最大速度、平均速度、加速度的十位bw 累计里程、当前速度、累计时间、最大速度、平均速度、加速度的百位qw 累计里程、当前速度、累计时间、最大速度、平均速度、加速度的千位ww 累计里程、累计时间的万位sww 累计里程、累计时间的十万位ssj 定时器T0 50ms中断次数,每20次sj加1cgw 当前时间(时钟)的个位csw 当前时间(时钟)的十位cbw 当前时间(时钟)的百位cqw 当前时间(时钟)的千位cww 当前时间(时钟)的万位csww 当前时间(时钟)的十万位cww2 当前时间(时钟)的辅助万位MODE 显示模式tr1 轮胎设置变量1(十位)tr2 轮胎设置变量2(个位)*/unsigned int i,qsls;unsigned long qs,sj,totallc,pjsd,ssji,sji,sjiold,aa,sd2,mxsd,mxsd2,tc;uchar *s,line,row,com,dat,gw,sw,bw,qw,ww,sww,ssj,cgw,csw,cbw,cqw,cww,csww,cww2,MODE,tr1,tr2;/*void wait()* 该函数的作用是对LCD进行检测,看LCD是否处于忙的状态.当bflag=1时表示忙,此时不可以向LCD进行读写操作.而当busy=0时,表示可以向它读写数据.*/void wait()P1=0xff;RW=1; RS=0; doE=0;E=1;while(busy=1);/*void dispone()* 该函数的作用是向LCD写入数据并显示出来.*/void dispone(dat)P1=dat;RW=0; RS=1; E=0; E=1; wait();/*void wrcom()* 该函数的作用是向LCD写入控制字.*/void wrcom(com)P1=com;RW=0; RS=0; E=0; E=1; wait();/*void init_LCD()* 该函数的作用是初始化LCD.*/void init_LCD()wrcom(0x01); wrcom(0x06); wrcom(0x38); wrcom(0x0c); /*void dispmore()* 该函数的作用是向LCD写入一串数据,并把数据串显示出来.*/void dispmore(line,row,uchar dat,i) /格式为dispmore(第几行,第几列,开始要显示的字符地址,显示几个字符);uchar com;s=dat;if(line=1) com=0x80+row-1; wrcom(com);while(i-)!=0&com=0x8f) dispone(*s); com+;s+;else com=0xc0+row-1; wrcom(com);while(i-)!=0&com=0xcf) dispone(*s);com+;s+;/*void ttimep()*累计行驶时间数据处理及显示子程序*/void ttimep()sww=sj/36000;ww=sj%36000/3600;qw=sj%3600/600;bw=sj%600/60;sw=sj%60/10;gw=sj%10;wrcom(0xc1); dispone(T); dispone(i); dispone(m); dispone(e);dispone( );dispone( ); dispone(sww+0x30);dispone(ww+0x30);dispone(:); dispone(qw+0x30);dispone(bw+0x30);dispone(:); dispone(sw+0x30);dispone(gw+0x30);/*void timer1()*T1中断服务子程序,每20ms中断一次,ssji加1,根据公式S=tc*qs和V=tc/ssj计算累计里程和*/void timer1() interrupt 3ssji+;TH1=0xb1;TL1=0xdf;/*void lcp()*累计里程数据处理和显示子程序,若999m则单位为km*/ void lcp() qsls=100000/tc;if(qsqsls)sww=qs*tc/10000000;ww=qs*tc%10000000/1000000;qw=qs*tc%1000000/100000;bw=qs*tc%10000000/10000;sw=qs*tc%10000/1000;wrcom(0x81);dispone(S);dispone( );dispone( );dispone( );dispone( );dispone(sww+0x30);dispone(ww+0x30);dispone(qw+0x30);dispone(.);dispone(bw+0x30);dispone(sw+0x30);dispone( );dispone(k);dispone(m);elseqw=qs*tc%100000/10000;bw=qs*tc%10000/1000;sw=qs*tc%1000/100;gw=qs*tc%100/10;wrcom(0x81); dispone(S); dispone( );dispone( );dispone( );dispone( );dispone( );dispone( );dispone(qw+0x30);dispone(bw+0x30);dispone(sw+0x30);dispone(.);dispone(gw+0x30);dispone( );dispone(m);/*void pjsdp()*外部中断0(干簧管)中断服务程序*/void int0() interrupt 0EX0=0;qs+;/圈数+1TR1=0;sjiold=sji;/停止T1计时sji=ssji;if (mxsd!=0)/更新最大速度 if (sjimxsd) mxsd=sji; else mxsd=sji;TH1=0xb1;/重置T1定时常数TL1=0xdf;ssji=0;TR1=1; /T1重新开始计时switch(MODE) case 0:wrcom(0x01);lcp();ttimep();break; case 1:wrcom(0x01);sdp();mxsdp();break; case 2:wrcom(0x01);pjsdp();ap();break; case 3:wrcom(0x01);dispmore(1,5,Time Now,8);clkp();break; default:break;for(i=0;i3) MODE=0;switch(MODE) case 0:wrcom(0x01);lcp();ttimep();break; case 1:wrcom(0x01);sdp();mxsdp();break; case 2:wrcom(0x01);pjsdp();ap();break; case 3:wrcom(0x01);dispmore(1,5,Time Now,8);clkp();break; default:break;for(i=0;i19)sj+;ssj=0;cgw+;if(cgw9)cgw=0;csw+; if(csw5)csw=0;+cbw; if(cbw9)cbw=0;+cqw; if(cqw5)cqw=0; cww2+;if(cww223)cww2=0;csww=cww2/10;cww=cww2%10;if (MODE=0) lcp();ttimep();if (MODE=3) clkp();/*void main()*主程序,初始化LCD,显示欢迎信息,更改时钟、直径设置,开中断、计时器等*/void main()init_LCD();dispmore(1,1,-Digital Meter-,16);for(i=0;i25000;i+);dispmore(2,1, Welcome ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东技术师范大学《工具书介绍与使用》2023-2024学年第一学期期末试卷
- 重庆科技职业学院《语用学》2023-2024学年第一学期期末试卷
- 首都经济贸易大学《文化史》2023-2024学年第一学期期末试卷
- 趣味数学社团工作总结
- 医院感染管理办法培训课件
- 山东职业学院《生物医学工程概论》2023-2024学年第一学期期末试卷
- 山西传媒学院《大学英语初级课程一》2023-2024学年第一学期期末试卷
- 教育家精神引领高质量教师专业发展研究
- 财务培训:客户对账
- 陕西学前师范学院《语言治疗学》2023-2024学年第一学期期末试卷
- EHS专项施工EHS管理组织机构
- 发电厂机组优化调度与运行控制策略
- wedo2完整版本.0第一课拉力小车
- 珠宝行业市场竞争与监管研究
- 会员经理培训课件
- 高中政治必修三政治与法治考点专练选择题100题含答案详解
- 中城廉江上阁垌180MW农光互补项目(升压站)环境影响报告表
- 试卷模拟丨北师大版数学三年级下册期末测试卷(二)(含答案)
- 文言文《活板》专项练习(含答案)
- 广东2023届珠海华润银行春季校园招聘考试参考题库含答案详解
- 汽车维修环保增效设备一览表格
评论
0/150
提交评论