基于51单片机摇摇棒的设计_第1页
基于51单片机摇摇棒的设计_第2页
基于51单片机摇摇棒的设计_第3页
基于51单片机摇摇棒的设计_第4页
基于51单片机摇摇棒的设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

word文档可自由复制编辑学校代码10126学号本科学年论文题目基于51单片机摇摇棒的设计院系专业名称年级学生姓名指导教师2014年06月20日学年论文指导教师评阅意见学生姓名专业班级学号(论文)题目基于51单片机摇摇棒的设计指导教师教师职称学年论文评语评定成绩:指导教师签名:年月日摘要随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。“摇动显示装置”,俗称“摇摇棒”,是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。本文以传感器和单片机的实际应用为背景,介绍了以单片机和传感器为核心系统摇动传感器和显示设计的基本结构和基本原理。关键字:单片机,发光二极管,传感器AbstractAspeoplematerialstandardoflivingrise,peoplepursuittoculturallifealsobecomesstrong,thedesireofinformationhavebecomethepeopleoftheessentialneeds,moreforthrightandnoveltheinformationtransfermodewillundoubtedlybringpeopletofindeverythingnewandfreshfeeling.Andmoderntoolstothesimple,portable,therefore,shakingthedisplaydevice,thearrivalofwillgivepeoplebringsakindofnewconvenientculturaltransfermode."Shakedisplaydevice,"called"toshakethegreat",itistobebasedonvisualtemporarilyleavetheprinciple,throughthetimesharerefresh16ledstodisplaytextordesignoutputinformationdisplaydevice.Theoutputsignalfrequencycontrolthroughthesingle-chipmicrocomputertorealize,withshakingsensortestcurrentmovedstate.Whenshaken,asthemen'svisionforaprinciple,willbeinthelightemittingdiodeshakingareaproduceavisualplane,theplanewithinthevisionofdifferentfrequencyrefreshdiodethrough,willproduceanimageinshakingarea,soastoachievethevisionintheplaneofconveyinginformationfunction.BasedonthesensorandMCUapplicationforbackground,introducesthesingle-chipmicrocomputerandsensorasthecoresystemmovedsensoranddisplaydesignthebasicstructureandthebasicprinciple.Keywords:microcontroller,leds,sensorTOC\o"1-3"\h\u目录4444绪论 1237131.系统设计方案 2159411.1设计目的 272181.2设计要求 2210661.3设计思路 2304882.系统硬件设计 4203152.1基本原理图为: 4242522.2各部分功能 5254882.2.1按键模块 525242.2.2LED显示模块 5203652.3系统硬件 540762.3.2显示功能(D1~D16) 6104762.4传感器系统 6256683.系统软件设计 884843.1软件设计思路 8225213.2主程序流程图 8318823.3软件实现功能的完善 16944.系统的硬件调试及软件调试 17137704.1常见的硬件故障 17147344.1.1逻辑错误 17271604.1.2器件失效 17279494.1.3可靠性差 1733964.1.4电源故障 17150194.2硬件调试方法 18113634.2.1脱机调试 18165504.2.2联机调试 185224.3软件调试方法 1810618致谢 2223816参考文献 23绪论单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:(1)最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。本文将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。1.系统设计方案1.1设计目的本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和动手能力。1.2设计要求设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。1.3设计思路本系统要求设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成,如图1.1所示。图1.1单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。1.3.1LED灯的选择:传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济。1.3.2外部中断信号产生方式:通过外部中断可以控制数据开始传输的时刻。选择好外部中断来源是本次制作的难点及重点。使用惯性开关。通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。1.3.3抗重影方案的选择:使用外部中断控制数据传输时刻。外部中断信号由惯性开关产生,触发方式为下降沿触发。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。惯性开关处于不同位置进入不同的中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,避免了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。2.系统硬件设计2.1基本原理图为:图2.1基本原理与硬件电路设计:16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。与LED点阵的显示有几分相仿。其硬件电路如上图中所示:系统电源VCC为5V,下载程序和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P1口,P2口的上拉电阻不能少。串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经试验测试LED点亮时两端电压为3V左右,在LED的安全承受范围之内。2.2各部分功能2.2.1按键模块使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容。S1:水银开关功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。S2:画面切换开关功能为用于切换显示不同内容。S3:手动复位开关功能为可以控制系统的启停2.2.2LED显示模块首先,我们根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取……依次循环下去,一幅完整的图案就显示在了显示屏上。而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列。数据传输时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。2.3系统硬件2.3.1单片机控制(STC89C051)

本装置采用了STC12C2051单片机,它支持直接通过串口线下载程序,对于本设计而言,显示文字需经常改变,STC12C2051方便许多,因此选择STC12C2051作为本设计所用的单片机。2.3.2显示功能。(D1~D16)信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口。2.4传感器系统硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。可选摇动开关有水银摇动开关和滚珠开关两种。水银摇动开关稳定性较高,但容易发生破裂,水银外泄,安全性较差。滚珠开关稳定性稍差,但不容易损坏,安全度很高。考虑到实际应用环境,故选用滚珠开关作为系统的摇动传感器。由滚珠开关带来的不稳定性可以通过软件进行弥补。经过分析论证,我们决定了系统各模块的最终方案,流程图如下:图2.2整套系统以STC12C2051单片机为核心控制系统,使用16只LED灯作为显示屏,其中16只直接与单片机I/O口相连。当惯性开关触发中断T1时,单片机向16只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域。系统的元器件明细表2.1:1单片机STC12C20511片2发光二极管16只312M晶振1个4电阻、电容若干5USB接口1个6按钮及开关若干表2.13.系统软件设计3.1软件设计思路在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED。如果惯性开关位于右边,则进入外部中断1并将一变量置1,。在变量为1期间让单片机以一定的频率将数据传送给LED。如果惯性开关位于左边,则进入外部中断0并将变量置0,。在这期间单片机不会传送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断惯性开关的位置。3.2主程序流程图通过软件设计思路分析,得到该系统的主程序流程图3.1如下:图3.1系统开始运行,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。经过文字取模后,系统的源程序编制如下:#include<AT89X52.h>#defineucharunsignedchar#defineuintunsignedint//宏定义#defineKEYP3_0//定义画面切换按键ucharKY;//KY作用在后面说明uchardisp;//显示汉字指针ucharpic=0,num=0;//pic为按键次数;num为中断次数ucharcodelove[]={/*--文字:李--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0x80,0x48,0x28,0x98,0x88,0x7F,0x4C,0xD4,0x24,0x24,0x40,0x40,0x40,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x24,0x46,0x3B,0x02,0x02,0x02,0x02,0x02,0x00,0/*--文字:好--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x80,0x80,0x80,0x7E,0x40,0xE0,0x40,0x88,0x88,0xA4,0xD4,0x4C,0x44,0x40,0x40,0x00,0x00,0x10,0x08,0x05,0x02,0x05,0x08,0x00,0x00,0x10,0x3F,0x00,0x00,0x00,0x00,0x00,x00,}ucharcodeloveyou[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/};ucharcodehehe[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(∩_∩)o图案*/};unsignedcharcodehanzi[]={//--欢--0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01,0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30,0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10,0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,//--迎--0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F,0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41,0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42,0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,//--使--0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x04,0x80,0xF4,0x43,0x14,0x45,0x14,0x29,0x14,0x19,0xFF,0x17,0x14,0x21,0x14,0x21,0x14,0x41,0xF6,0xC3,0x04,0x40,0x00,0x00,//--用--0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F,0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82,0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00,//--神--0x08,0x01,0x88,0x00,0x49,0x00,0xEE,0xFF,0x58,0x00,0x88,0x00,0x00,0x00,0xF8,0x1F,0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08,0x88,0x08,0xFC,0x1F,0x08,0x00,0x00,0x00,//--奇--0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E,0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12,0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F,0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,//--魔--0x00,0x40,0x00,0x30,0xFE,0x8F,0x4A,0x80,0xAA,0x5F,0x9A,0x4A,0xFE,0x2A,0xAA,0x1A,0xCB,0x0F,0xAA,0x7A,0xFE,0x8A,0x9A,0xAA,0xAA,0x8F,0x6B,0x80,0x22,0xE0,0x00,0x00,//--幻--0x80,0x20,0xC0,0x30,0xA0,0x28,0x98,0x24,0x87,0x22,0x80,0x21,0xC4,0x30,0x04,0x60,0x04,0x00,0x04,0x20,0x04,0x40,0x04,0x80,0x04,0x40,0xFE,0x3F,0x04,0x00,0x00,0x00,//--摇--0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44,0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,//--摇--0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44,0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,//--棒--0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,0x90,0x00,0x54,0x05,0x44,0x12,0xD4,0x15,0x74,0x14,0x5F,0xFF,0xD4,0x14,0x54,0x15,0x56,0x12,0x44,0x06,0x40,0x02,0x00,0x00,//--!--0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B,0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*****函数声明*****/voiddisplay1(void);voiddisplay2(void);voiddisplay3(void);voiddisplay4(void);/*****n(us)延时子程序*****/voidDelayUs(uintN){uintx;for(x=0;x<=N;x++);}/*****中断服务程序*****/voidintersvr0(void)interrupt0using1{KY=~KY;//每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示)if(KY==0){num++;//计算中断次数switch(pic)//选择画面{case0:{display1();}break;case1:{display2();}break;case2:{display3();}break;case3:{display4();}break;default:{display1();}}}}/*****显示子程序1(汉字)*****/voiddisplay1(void){uchari;if(num>10){disp++;num=0;}//12个汉字分为3次显示完(每次显示4个),每中断10次切换if(disp>2)disp=0;DelayUs(5200);//此处延时时间依各硬件差别而各不相同,试着调整使得显示内容居中即可for(i=0;i<64;i++){P0=~hanzi[disp*128+i*2];P2=~hanzi[disp*128+i*2+1];DelayUs(100);}}/*****显示子程序2(LOVE)*****/voiddisplay2(void){uchari;DelayUs(4000);for(i=0;i<64;i++){P0=~love[i*2];P2=~love[i*2+1];DelayUs(120);}}/*****显示子程序3(心形图案)*****/voiddisplay3(void){uchari;DelayUs(4000);for(i=0;i<64;i++){P0=~loveyou[i*2];P2=~loveyou[i*2+1];DelayUs(120);}}/*****显示子程序4(呵呵o(∩_∩)o图案)*****/voiddisplay4(void){uchari;DelayUs(4000);for(i=0;i<64;i++){P0=~hehe[i*2];P2=~hehe[i*2+1];DelayUs(120);}}/*****主函数*****/voidmain(void){IT0=1;EX0=1;EA=1;//开中断,下降沿中断KY=0;while(1)//主程序中只检测按键{if(KEY==0)//画面切换键按下{DelayUs(10000);//按键去抖if(KEY==0);pic++;}if(pic>3)pic=0;}}/*****END*****/3.3软件实现功能的完善本次设计的一个难点是去除重影,我们的解决方法是使用外部中断让数据单程传输。第二个难点是当显示较长字符时不能完整的显示在一次摇摆的扇形区域内。通过反复试验,我们改变了送数据方式:由一个字符接一个字符传送改为一组字符一起传送,传送结束后再延时,通过不断调试实现了完整显示的功能,同时也解决了画面连续出现没有间断的问题。综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。

4.系统的硬件调试及软件调试单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。其一般的调试过程如下:4.1常见的硬件故障4.1.1逻辑错误样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线,开路,短路等几种,其中短路时最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。4.1.2器件失效元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。4.1.3可靠性差引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;内部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。4.1.4电源故障若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差。4.2硬件调试方法4.2.1脱机调试脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。4.2.2联机调试通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常,即可打开电源。通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。4.3软件调试方法软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各程序模块通过后,可以把各功能块联系起来一起进行整体程序综合调试。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合

温馨提示

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

评论

0/150

提交评论