您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 以智能速度里程表为主的多功能系统设计
1《单片机原理及应用课程设计任务》课题:以智能速度里程表为主的多功能系统设计一.设计目的1.总体要求(1)独立完成设计任务(2)绘制系统硬件总框图(3)绘制系统原理电路图(4)制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5)制定编写调试方案,编写用户操作使用说明书(6)写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。2.具体要求本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。软件编程是本次工程实践的重要环节。在为期两周的工程实践中,将占据主2要时间,学生要完成的软件编程任务主要包括以下几点:1)熟悉KeilC51编程平台及Proteus软件仿真;2)编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调;3)编写、调试LED流水灯(循环显示)程序并进行软硬件联调;4)编写、调试键盘扫描子程序并进行软硬件联调;5)编写、调试数码管动态扫描程序并进行软硬件联调;6)以智能速度里程表为主的多功能任务设计。其中前五个内容是后两个内容的基础,主要是编制一些子程序,为后继的整个系统设计打下基础。最后的速度里程表能实时地将所测的速度显示出来,同时也能够累计显示总里程数。电路提供四个按键,要求同学们能编写、调试对应的键盘扫描子程序,从而实现,当按下A按键,实现蜂鸣器或继电器动作,当按下B按键,实现LED流水灯(循环显示),当按下C按键,实现数码管动态扫描显示(显示内容可以自己确定),按下D按键,能实时显示所测的速度和总里程数。二.总体设计2.1系统硬件总述此次课程设计的里程表主要是由AT89C2051为核心,利用单片机的运算和控制功能,并采用串口液晶显示模块实时显示所测速度和里程的速度里程表设计方案。该方案由于使用了串口液晶显示模块和E2PROM,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保证测量精度和系统实时性。运用汇编语言来控制单片机AT89C52来实现LED流水灯动态数码显示、速度里程表功能。其中速度里程表设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度里程表能将传感器输入到单片机的脉冲信号的宽度实时地测量出来,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。2.2设计原理图3图1速度里程表电路原理图4三.硬件单元设计3.1LED灯显示本次课程设计中,程序语言翻译成单片机所需的二进制代码,单片机即可工作。因为单片机不能直接高电平驱动LED灯,所以要用Vcc和R1到R8来控制低电平驱动点亮。如图D1到D8和R1、R2以及R6到R11连接到单片机IO口,当P1口某脚为低电平时相应LED发光。实现LED灯的闪烁,只需依次从低位到高位逐个变为低电平,等待一会儿再变高即可。图2LED灯显示电路3.2蜂鸣器蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来使振动膜发声的。因此产生一定大的电流是让蜂鸣器发声的必要条件。但是因为单片机IO口输出的电流较小,其TTL电平基本上驱动不了蜂鸣器,所以需要增加一个放大电路。蜂鸣器有两种驱动方式:①通过改变单片机对应IO口输出波形的频率,就可以调整控制蜂鸣器声音大小。②改变其占空比,也可以控制蜂鸣器的声音大小。5本实验采用第一种方法,即PNP或NPN三极管电流放大电路驱动,通过一个PNP三极管来放大电流,当输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声。当输出低电平时,三极管导通,发出声音。因此,我们可以通过程序控制IO口输出的电平来使蜂鸣器发出声音和关闭,从而实现各种可能音响的产生。图3蜂鸣器原理图3.3时钟控制石英晶体振荡器,石英谐振器简称为晶振,它是利用具有压电效应的石英晶体片制成的。这种石英晶体薄片受到外加交变电场的作用时会产生机械振动,当交变电场的频率与田英晶体的固有频率相同时,振动便变得很强烈,这就是晶体谐振特性的反应。利用这种特性,就可以用石英谐振器取代LC(线圈和电容)谐振回路、滤波器等。其发出的时钟脉冲直接送入片内定时控制部件,其中C电容对频率有微调作用。6图4时钟电路3.4数码管显示为了能使简化电路且达到设计效果,我们采用4位数码管动态显示方式。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,4位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长7的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。数码管是由7个条形的LED和右下方一个圆形的LED组成。数码管有共阴极和共阳极两种,共阴极数码管的公共阴极接地,当各段阳极上的电平为“1”时,该段点亮。图5数码管显示图3.5键盘键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。按键8的消抖,通常有软件,硬件两种消除方法。这种方法只适用于键的数目较少的情况。图6键盘电路3.6AT89C52AT89C52是一个低电压,高性能CMOS8位单片机。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程。AT89C52P主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR9输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。图7AT89C52管脚图四.软件单元设计4.1程序流程图图8程序流程图放大器波形变换波形整形单片机数据存储电路液晶显示电路信号10五.调试5.1硬件调试本设计是以智能速度里程表为主的多功能任务课程设计。当按下第一个按钮,蜂鸣器发出声音;当按下第二个按钮,实现流水灯功能;当按下第三个按钮,实现4位数码管的动态显示;当按下第四个按钮,实现里程和速度的显示,前三位显示里程,后三位显示速度。至此,硬件调试基本无误。5.2软件调试仿真时发现点击原理图上的开关没有反应,于是我们开始检查配置,发现程序没有加载进去,于是重新加载了一下。程序加载完成后继续仿真,还是没有明显的效果,思考之后开始检查输入的频率,果然,发现输入频率太高,达到了100Hz,数码管显示的数字跳的太快了,于是把频率改为1Hz,至此,本次课程设计的现象终于出现了。六.设计总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次课程设计,本人在多方面都有所提高,巩固与扩充了课程所学的内容,掌握设计的方法和步骤,掌握设计的基本的技能,懂得了怎样分析,怎样确,11了解了单片机的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。七.参考文献(1)何立民,《单片机高级教程》北京航空航天大学出版社(2)赵晓安,《MCS-51单片机原理及应用》天津大学出版社(3)李广第,《单片机基础》北京航空航天大学出版社(4)徐惠民、安德宁,《单片微型计算机原理接口与应用》北京邮电大学出版社12参考程序:ORG0000H;程序执行开始地址LJMPMAIN;跳转到标号start执行ORG0003H;外部中断0入口地址LJMPEXINT0ORG001BH;定时器T1中断程序入口LJMPINTT1;跳至INTT1执行ORG0100HMAIN:MOVSP,#10HSETBIT0SETBEASETBET1MOVTMOD,#10HMOVTL1,#0B0H;设置定时时间0.008sMOVTH1,#3CHMOVR0,#14HAJMPSTARTSTART:LCALLKEY;调用按键子程序AJMPSTART;---------------------------------------------------------------------------------------------------KEY:MOVP1,#0F0H;单片机按键口置位13MOVA,P1MOVB,AACALLDELAY2MOVA,P1CJNEA,B,K4;判断是否有键按下,没有则转移CJNEA,#0E0H,K1;判断KEYA键是否按下,没有则转移AJMPKEYA;KEYA键按下,执行扬声器子程序K1:CJNEA,#0D0H,K2;判断KE
本文标题:以智能速度里程表为主的多功能系统设计
链接地址:https://www.777doc.com/doc-5845119 .html