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

下载本文档

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

文档简介

学校代码学号之相礼和热创作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,sensor目录绪论11.零碎计划方案11222.零碎硬件计划3基来源根基理图为:3各部分功能4按键模块4LED表现模块42.3.2表现功能(口1〜D16)42.4传感器零碎3.零碎软件计划6软件计划思绪6主程序流程图6软件完成功能的美满134.零碎的硬件调试及软件调试141414器件生效14可靠性差14电源毛病14硬件调试方法15脱机调试15联机调试15软件调试方法15致谢17参考文献17绪论单片机是随着大规模集成电路的出现极其进展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,构成了芯片级的计算机,因而单片机晚期的含义称为单片微型计算机.它拥有优秀的性价比、集成度高、体积小、可靠性高、操纵功能强、低电压、低功耗的分明优点.次要运用于智能仪器仪表、工业检测操纵、机电一体化等方面,而且获得了分明的成果.单片机运用零碎可以分为:(1)最小运用零碎是指能维持单片机运转的最简单设置的零碎.这种零碎成本低廉,结构简单,常构成一些简单的操纵零碎,如开关形态的输入/输入操纵等.片内有ROM/EPROM的单片机,其最小运用零碎即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小运用零碎除了外部设置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.(2)最小功耗运用零碎是指为了包管正常运转,零碎的功耗最小.(3)典型运用零碎是指单片机要完成工业测控功能所必须的硬件结构零碎.本文将运用单片机对摇动表现进行实例化,计划一个LED摇动表现器来表现文字、图像等信息.掌握利用8051型单片机对发光二极管阵列进行摇动操纵的方法.输入信号频率的操纵经过单片机来完成,用摇动传感器检测当前摇动形态,用16个发光二极管进行分歧频率的亮灭革新,经过手动摇动可表现输入文字及图案等信息.当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域发生一个视觉立体,在视觉立体内的二极管经过分歧频率的革新,会在摇动区域内发生图像,从而达到在该视觉立体上传达信息的作用.LED表现棒,又称摇摇棒,是一种利用视觉暂留效应制造的“高科技”玩具.可以用“静如处子,动如脱兔”来描述它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照肯定的频率往摇晃它,它就会随着地位的变更而变更(亮或灭),最终表现一幅图片或字符串.1.零碎计划方案本次计划制造的是一个表现棒,基本要求就是要玲珑、笨重,以是要将单片机的零碎板简化计划.经过本次计划,加强门生对MCS-51单片机的深入理解,进步门生的计划才能和动手才能.计划一个16只高亮度LED发光二极管构成的摇摇棒,经过单片机编程配合手的左右摇晃就可呈现一幅完好的画面,可以表现字符、图片.本零碎要求计划一个LED表现棒且必要有按键进行内容切换,它次要是由地方操纵部分,LED驱动部分,LED表现部分以及电源部分组成,如图1.1所示.单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码经过I/O口输入,使LED灯点亮,利用视觉暂留原理最终使图案完好的表现在摆动的表现屏中.LED灯的选择:传统LED发光二极管.颜色多样,在可以异样表现图案的前提下运用它更为经济.外部停止信号发生方式:经过外部停止可以操纵数据开始传输的时分.选择好外部停止来源是本次制造的难点及重点.运用惯性开关.经过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触发生的电平变更来触发停止,结合软件操纵表现,制造简单,运用方便.抗重影方案的选择:运用外部停止操纵数据传输时分.外部停止信号由惯性开关发生,触发方式为下降沿触发.惯性开关左右两边的触点分别与单片机两个外部停止接口相连,默以为高电平,摇动的摆杆接地.惯性开关处于分歧地位进入分歧的停止,从而决定何时送数据.该

方案简单易行,可以包管数据是单程传输的,防止了重影.不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果..零碎硬件计划基来源根基理图为:基来源根基理与硬件电路计划:16只LED发光管作为画面每一列的表现,左右摇晃起到了扫描的作用,人眼的视觉暂留征象看到的是一幅完好的画面.与LED点阵的表现有几分相仿.其硬件电路如上图中所示:零碎电源VCC为5V,下载程序和调试时肯定要包管5V电压,MCS-51单片机作为操纵器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输入低电平点亮.P1口,P2口的上拉电阻不克不及少.串在LED公共端的二极管D1会发生肯定的压降,用来呵护LED,经实验测试LED点亮时两端电压为3V左右,在LED的安全承受范围之内.各部分功能按键模块运用一个按键对表现的全部内容进行切换,经过按钮按下的次数确定表现的内容.S1:水银开关功能为棒在摇动时,只能在野某一方向摇动时表现,否则会出现镜像字或镜像画面,以是经过接一支水银开关来操纵,使摇摇棒从左向右摇动时将内容表现出来.S2:画面切换开关功能为用于切换表现分歧内容.S3:手动复位开关功能为可以操纵零碎的启停LED表现模块首先,我们根据LED点阵屏的表现原理:点阵屏的表现分为行扫描与列扫描两种,列扫描是将我们的字模数组经过点阵屏的行驱动进行输入,然后经过列对每一行进行扫描,当列为低(高)电平、举动高(低)电平常则暗示该点为图案的一部分,将其读出、表现.它的顺序可以总结为:行不竭的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取……顺次循环下往,一幅完好的图案就表现在了表现屏上.而本次计划的LED表现棒数据传输原理与LED点阵屏类似.可以把LED表现棒看成是LED点阵屏中的一列.为了使表现的图案明晰,我们运用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行x1列.数据传输时我们异样运用行送数据、列扫描.在摆动过程中,运用视觉暂留原理,我们点亮的列不会很快的消散,而是随着摆动的方向继续向前挪动,只需挪动的速率高于视觉暂留的最短工夫表现内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了.单片机操纵(STC89C051)本安装采取了STC12C2051单片机,它支持直接经过串口线下载程序,对于本计划而言,表现文字需经常改变,STC12C2051方便许多,因而选择STC12C2051作为本计划所用的单片机.表现功能.(D1~D16)信息传递次要由表现来完成,本计划表现功能由16个发光二极管来完成.16个发光二极管分

为4组,以共阳的方式连接,共用P1口和P2口作为输入口.传感器零碎硬件传感器次要为摇动传感器,本计划的摇动传感器由滚珠开关构成.可选摇动开关有水银摇动开关和滚珠开关两种.水银摇动开关波动性较高,但容易发生决裂,水银外泄,安全性较差.滚珠开关波动性稍差,但不容易损坏,安全度很高.考虑到实践运用环境,故选用滚珠开关作为零碎的摇动传感器.由滚珠开关带来的不波动性可以经过软件进行补偿.经过分析论证,我们决定了零碎各模块的最终方案,流程图如下:按穗 一*AT89S52按穗 一*AT89S52惯性开关整套零碎以STC12C2051单片机为核心操纵零碎,运用16只LED灯作为表现屏,其中16只直接与单片机I/O口相连.当惯性开关触发停止T1时,单片机向16只LED传送数据,根据人体的视觉暂留原理,随着表现棒的摆动行进,输入数据的列也不会立刻消散而是随着摆动逐步表现在了构成的扇形区域.零碎的元器件明细表2.1:1单片机STC12C20511片2发光二极管16只312M晶振1个4电阻、电容多少5USB接口1个6按钮及开关多少.零碎软件计划软件计划思绪在摇动LED棒的时分单片机必须单程传送数据否则表现的图形会发生重影,影响视觉效果.因而当零碎开始工作后经过惯性开关的地位来使单片机完成单程传送数据给LED.假如惯性开关位于左边,则进入外部停止1并将一变量置1,•在变量为1时期让单片机以肯定的频率将数据传送给LED.假如惯性开关位于左边,则进入外部停止0并将变量置(),•在这时期单片机不会传送数据给LED.在送数据时,数据送完后应延时一段工夫来使摇动时表现的每个字不会太拥堵.之后再立刻熄灭LED并开始重新判别惯性开关的地位.主程序流程图经过软件计划思绪分析,得到该零碎的主程序流程图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(n_n)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,0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,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,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++;{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(n_n)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*****/软件完成功能的美满本次计划的一个难点是往除重影,我们的处理方法是运用外部停止让数据单程传输.第二个难点是当表现较长字符时不克不及完好的表现在一次摇晃的扇形区域内.经过反复实验,我们改变了送数据方式:由一个字符接一个字符传送改为一组字符一同传送,传送结束后再延时,经过不竭调试完成了完好表现的功能,同时也处理了画面连续出现没有间断的成绩.综上,只需操纵好数据传输方式以及每次传输数据间的延时就可以完成多种数据的表现方法.4.零碎的硬件调试及软件调试单片机运用零碎的硬件调试和软件调试是分不成的,许多硬件毛病是在调试软件时才发现的.但通常是先肃清零碎中分明的硬件毛病后才和软件结合起来调试的.其一样平常的调试过程如下:逻辑错误样机硬件的逻辑错误是由于计划错误和加工过程中的工艺性错误所形成的.这类错误包含:错线,开路,短路等几种,其中短路时最稀有的毛病.在印刷电路板布线密度高的状况下,极易因工艺缘故原由形成短路.器件生效元器件生效的缘故原由有两个方面:一是器件本人已损坏或功能不符合要求;二是由于组装错误而形成的元器件生效,如电解电容,二极管的极性错误,集成块安装方向错误等.可靠性差惹起零碎不成靠的要素很多,如金属化孔,接插件接触不良会形成零碎时好时坏;外部和外部的干扰,电源纹波系数过大,器件负载过大等形成逻辑电平不波动;另外,走线和规划的分歧理等也会惹起零碎可靠性差.电源毛病若样机中存在电源毛病,则加电后将形成器件损坏.电源的毛病包含:电压值不符合计划要求,电源引出线和插座分歧错误应,电源功率缺乏,负载才能差.硬件调试方法脱机调试脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和拆卸图细致检查样机线路的正确性,并核对元器件的型号,规格和安装能否符合要求.应特别留意电源的走线,防止电源之间的短路和极性错误,侧重点检查拓展零碎总线能否存在互相间的短路或其他信号线的短路.对于样机所用的电源事前必须单独调试,调试好后,检查其电压值,负载才能,极性等均符合要求,才能加到零碎的各个部件上.在不插片子的状况下,加电检查各插件上引脚的电位,细致检查各地点电位能否正常,尤其应留意单片机插座上的各点电位能否正常,若有高压,联机时将会损坏开发机.联机调试经过脱机调试可肃清一些分明的硬件毛病.有些硬件毛病还是要经过联机调试才能发现和肃清.联机前先断电,把开发零碎的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地能否良好.统统正常,即可打开电源.通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操纵、逻辑检查,若有毛病,可用示波器观察波形.经过对波形的观察分析,探求毛病缘故原由,并进一步肃清毛病.可能的毛病有:线路连接上的逻辑错误、有断线或短路征象、集成电路生效等.软件调试方法软件调试与所选用的软件结构和程序计划技术有关.假如采取模块程序计划技术,则逐一模块调试好当前,再进行零碎程序总调试.假如采取实时多义务操纵零碎,一样平常是逐一义务,上面进一步予以阐明.对于模块结构程序,要一个个子程序分别调试.调试子程序时,肯定要符合现场环境,即入口条件和出口条件.调试的本领可采取单步运转方式和断点运转方式,经过检查用户零碎CPU的现场、RAM的内容和I/O口的形态,检测程序执行结果能否符合计划要求.经过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户零碎中的硬件毛病、软件算法及硬件计划错误.在调试过程中不竭调整用户零碎的软件和硬件,渐渐经过一个个程序模块.各程序模块经过后,可以把各功能块联系起来一同进行团体程序综合调试.在这阶段若发生毛病,可以考虑各子程序在运转时能否毁坏现场,缓冲单元能否发生冲突,零位的建立和肃清在计划上有否失误,堆栈区域有否溢出,输入设备的形态能否正常,等等.若用户零碎是在开发零碎的监控程序下运转时,还要考虑用户缓冲单元能否和监控程序的工作单元发生冲突.单步和断点调试后,还应进行连续调试,这是由于单步运转只能验证程序的正确与否,而不克不及确定定时精度、CPU的实时相应等成绩待全部完成后,应反复运转多次,除了观察波动性之外,还要观察用户零碎的操纵能否符合原始计划要求、安插的用户操纵能否合理等,必要时还要做得当修正.对于实时多义务操纵零碎的运用程序是由多少个义务程序组成,一样平常是逐一义务进行调试,在调试某一个义务时,同时也调试相关的子程序、停止服务程序和一些操纵零碎的程序.逐一义务调试好当前,再使各个义务同时运转,假如操纵零碎中没有错误,一样平常状况下零碎就能正常运转.在全部调试修正完成后,将用户软件固化于EPROM中,拔出用户样机后,用户零碎即能离开发机独立工作,至此零碎研制完成.在开始实验计划前,根据实验要求,分

温馨提示

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

评论

0/150

提交评论