




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-学校代码 10126 *本科学年论文 题 目 基于51单片机摇摇棒的设计 院 系 专业名称 年 级 学生 指导教师2014年06月20日 学年论文指导教师评阅意见学 生姓 名专 业班 级学号论文题目 基于51单片机摇摇棒的设计指导教师教师职称学年论文评语评定成绩: 指导教师签名: 年 月 日摘要随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。“摇动显示装置,俗称“摇摇棒,是基于人的视
2、觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态。当进展摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面的二极管通过不同频率的刷新,会在摇动区域产生图像,从而到达在该视觉平面上传达信息的作用。本文以传感器和单片机的实际应用为背景,介绍了以单片机和传感器为核心系统摇动传感器和显示设计的根本构造和根本原理。关键字:单片机,发光二极管,传感器AbstractAs peoplematerial standardof living rise, people pursuit to
3、 cultural life also beesstrong,the desire of information have bee the people of the essential needs, more forthright and novel the information transfer modewillundoubtedlybring people to find everything new and fresh feeling. And modern tools to the simple, portable, therefore, shaking the display d
4、evice, the arrival of will give people brings a kind of new convenient cultural transfer mode."Shake display device,"called"to shake the great", it is to be based on visual temporarily leave the principle, through the timeshare refresh 16ledsto display te*t or design output infor
5、mation display device. The output signal frequency control through the single-chip microputer to realize, withshaking sensor test current moved state. When shaken, as themen's vision for a principle, will be in the light emitting diode shaking area produce a visual plane, the plane within the vi
6、sion of different frequency refresh diode through,will producean image in shaking area, so as to achieve the vision in the plane ofconveying information function.Based on the sensor and MCU applicationfor background, introduces the single-chip microputer and sensor as the core system moved sensor an
7、d display design the basic structure and the basic principle.Key words:microcontroller,leds,sensor目录绪论11系统设计方案21.1设计目的21.2设计要求21.3设计思路22系统硬件设计42.1根本原理图为:42.2 各局部功能52.2.1 按键模块52.2.2 LED显示模块52.3系统硬件52.3.2 显示功能D1D1662.4 传感器系统63系统软件设计83.1 软件设计思路83.2 主程序流程图83.3 软件实现功能的完善164系统的硬件调试及软件调试174.1常见的硬件故障174.1.1
8、逻辑错误174.1.2 器件失效174.1.3 可靠性差174.1.4 电源故障174.2 硬件调试方法184.2.1 脱机调试184.2.2 联机调试184.3 软件调试方法18致 22参考文献23. z-绪论单片机是随着大规模集成电路的出现极其开展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:1最小应用系统是
9、指能维持单片机运行的最简单配置的系统。这种系统本钱低廉,构造简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。片有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.2最小功耗应用系统是指为了保证正常运行,系统的功耗最小.3典型应用系统是指单片机要完成工业测控功能所必须的硬件构造系统。本文将使用单片机对摇动显示进展实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用8051型单片机对发光二极管阵列进展摇动控制
10、的方法。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进展不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进展摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面的二极管通过不同频率的刷新,会在摇动区域产生图像,从而到达在该视觉平面上传达信息的作用。LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技玩具。可以用“静如处子,动如脱兔来形容它,即当静止时,它只是几个LED发光二极管后简称LED,而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化亮或灭,最终显示一幅图片或字符串。1系统设计方案1.1设计
11、目的本次设计制作的是一个显示棒,根本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。 通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和动手能力。1.2设计要求设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。1.3设计思路 本系统要求设计一个LED显示棒且需要有按键进展容切换,它主要是由中央控制局部,LED驱动局部,LED显示局部以及电源局部组成,如图1.1所示。图1.1 单片机将提取的字模进展存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉
12、暂留原理最终使图案完整的显示在摆动的显示屏中。 LED灯的选择:传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济。 外部中断信号产生方式:通过外部中断可以控制数据开场传输的时刻。选择好外部中断来源是本次制作的难点及重点。使用惯性开关。通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。抗重影方案的选择:使用外部中断控制数据传输时刻。外部中断信号由惯性开关产生,触发方式为下降沿触发。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。惯性开关处于不同位置进入不同的
13、中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,防止了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以到达省电的效果。2系统硬件设计2.1根本原理图为:图2.1根本原理与硬件电路设计: 16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。与LED点阵的显示有几分相仿。其硬件电路如上图中所示: 系统电源VCC为5V,下载程序和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P1口,P2口的上拉电阻不能少。串在LED公共端
14、的二极管D1会产生一定的压降,用来保护LED,经试验测试LED点亮时两端电压为3V左右,在LED的平安承受围之。2.2 各局部功能 按键模块 使用一个按键对显示的所有容进展切换,通过按钮按下的次数确定显示的容。 S1:水银开关功能为棒在摇动时,只能在朝*一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将容显示出来。 S2:画面切换开关功能为用于切换显示不同容。 S3:手动复位开关功能为可以控制系统的启停 LED显示模块首先,我们根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进展输入,然
15、后通过列对每一行进展扫描,当列为低高电平、行为高低电平时则表示该点为图案的一局部,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进展读取,然后行再次送数据,列再次读取依次循环下去,一幅完整的图案就显示在了显示屏上。而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列。数据传输时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高
16、于视觉暂留的最短时间显示容就不会熄灭,至此,一幅图案也就可以这样被“摆动出来了。2.3系统硬件单片机控制STC89C051本装置采用了STC12C2051单片机,它支持直接通过串口线下载程序,对于本设计而言,显示文字需经常改变,STC12C2051方便许多,因此选择STC12C2051作为本设计所用的单片机。显示功能。D1D16信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口。2.4 传感器系统硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。可选摇动开关有水银摇动开关和滚珠开关两种。水银摇动
17、开关稳定性较高,但容易发生破裂,水银外泄,平安性较差。滚珠开关稳定性稍差,但不容易损坏,平安度很高。考虑到实际应用环境,应选用滚珠开关作为系统的摇动传感器。由滚珠开关带来的不稳定性可以通过软件进展弥补。 经过分析论证,我们决定了系统各模块的最终方案,流程图如下:图2.2 整套系统以STC12C2051单片机为核心控制系统,使用16只LED灯作为显示屏,其中16只直接与单片机I/O口相连。当惯性开关触发中断T1时,单片机向16只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域。系统的元器件明细表2.1:1单片机STC1
18、2C2051 1片2发光二极管 16只312M晶振 1个4电阻、电容 假设干5USB接口 1个6按钮及开关 假设干表2.13系统软件设计3.1 软件设计思路 在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开场工作后通过惯性开关的位置来使单片机实现单程传送数据给LED。如果惯性开关位于右边,则进入外部中断1并将一变量置1,。在变量为1期间让单片机以一定的频率将数据传送给LED。如果惯性开关位于左边,则进入外部中断0并将变量置0,。在这期间单片机不会传送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭L
19、ED并开场重新判断惯性开关的位置。3.2 主程序流程图 通过软件设计思路分析,得到该系统的主程序流程图3.1如下: 图3.1系统开场运行,部进展初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开场显示。显示完成返回主程序,等待下一个摇动周期的到来。经过文字取模后,系统的源程序编制如下:*include <AT89*52.h>*define uchar unsigned char*define uint unsigned int /宏定义*define KEY P3_0 /定义画面切换按键uchar KY; /KY作用在后面说明 uchar
20、disp; /显示汉字指针uchar pic=0,num=0; /pic为按键次数;num为中断次数uchar code love = /*- 文字: -*/*- 楷体_GB231212; 此字体下对应的点阵为:宽*高=16*16 -*/0*00,0*00,0*80,0*48,0*28,0*98,0*88,0*7F,0*4C,0*D4,0*24,0*24,0*40,0*40,0*40,0*00,0*00,0*04,0*04,0*04,0*04,0*04,0*24,0*46,0*3B,0*02,0*02,0*02,0*02,0*02,0*00,0/*- 文字: 好 -*/*- 楷体_GB2312
21、12; 此字体下对应的点阵为:宽*高=16*16 -*/0*80,0*80,0*80,0*7E,0*40,0*E0,0*40,0*88,0*88,0*A4,0*D4,0*4C,0*44,0*40,0*40,0*00,0*00,0*10,0*08,0*05,0*02,0*05,0*08,0*00,0*00,0*10,0*3F,0*00,0*00,0*00,0*00,0*00,*00,uchar code loveyou = 0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*
22、00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*78,0*00,0*FC,0*00,0*FE,0*01,0*FE,0*03,0*FE,0*07,0*FE,0*0F,0*FE,0*1F,0*FC,0*3F,0*F8,0*7F,0*FC,0*3F,0*FE,0*1F,0*FE,0*0F,0*FE,0*07,0*FE,0*03,0*FE,0*
23、01,0*FC,0*00,0*78,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,/*心形图案*/;uchar code hehe = 0*00,0*00,0*00,0*00,
24、0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*C0,0*01,0*40,0*01,0*C0,0*01,0*00,0*00,0*00,0*00,0*F0,0*0F,0*08,0*10,0*04,0*20,0*00,0*00,0*00,0*00,0*F0,0*3F,0*08,0*00,0*04,0*00,0*04,0*00,0*04,0*00,0*08,0*00,0*F0,0*3F,0*00,0*00,0*00,0*00,0*00,0*20,0*00,0*20,
25、0*00,0*20,0*00,0*20,0*00,0*20,0*00,0*00,0*00,0*00,0*F0,0*3F,0*08,0*00,0*04,0*00,0*04,0*00,0*04,0*00,0*08,0*00,0*F0,0*3F,0*00,0*00,0*00,0*00,0*04,0*20,0*08,0*10,0*F0,0*0F,0*00,0*00,0*00,0*00,0*C0,0*01,0*40,0*01,0*C0,0*01,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,
26、0*00,0*00,0*00,0*00,/*呵呵o(_)o图案*/;unsigned char code hanzi = /- 欢 - 0*04,0*10,0*34,0*08,0*C4,0*06,0*04,0*01, 0*C4,0*82,0*3C,0*8C,0*20,0*40,0*10,0*30, 0*0F,0*0C,0*E8,0*03,0*08,0*0C,0*08,0*10, 0*28,0*60,0*18,0*C0,0*00,0*40,0*00,0*00,/- 迎 - 0*40,0*00,0*42,0*40,0*44,0*20,0*C8,0*1F, 0*00,0*20,0*FC,0*47,0
27、*04,0*42,0*02,0*41, 0*82,0*40,0*FC,0*7F,0*04,0*40,0*04,0*42, 0*04,0*44,0*FE,0*63,0*04,0*20,0*00,0*00,/- 使 - 0*40,0*00,0*20,0*00,0*F8,0*FF,0*07,0*00, 0*04,0*80,0*F4,0*43,0*14,0*45,0*14,0*29, 0*14,0*19,0*FF,0*17,0*14,0*21,0*14,0*21, 0*14,0*41,0*F6,0*C3,0*04,0*40,0*00,0*00,/- 用 - 0*00,0*80,0*00,0*60,0*
28、FE,0*1F,0*22,0*02, 0*22,0*02,0*22,0*02,0*22,0*02,0*FE,0*7F, 0*22,0*02,0*22,0*02,0*22,0*42,0*22,0*82, 0*FF,0*7F,0*02,0*00,0*00,0*00,0*00,0*00,/- 神 - 0*08,0*01,0*88,0*00,0*49,0*00,0*EE,0*FF, 0*58,0*00,0*88,0*00,0*00,0*00,0*F8,0*1F, 0*88,0*08,0*88,0*08,0*FF,0*FF,0*88,0*08, 0*88,0*08,0*FC,0*1F,0*08,0*00
29、,0*00,0*00,/- 奇 - 0*40,0*00,0*40,0*00,0*44,0*00,0*44,0*3E,0*64,0*12,0*54,0*12,0*4C,0*12,0*47,0*12, 0*4C,0*3F,0*54,0*42,0*74,0*80,0*C6,0*7F, 0*44,0*00,0*60,0*00,0*40,0*00,0*00,0*00,/- 魔 - 0*00,0*40,0*00,0*30,0*FE,0*8F,0*4A,0*80, 0*AA,0*5F,0*9A,0*4A,0*FE,0*2A,0*AA,0*1A, 0*CB,0*0F,0*AA,0*7A,0*FE,0*8A,0
30、*9A,0*AA, 0*AA,0*8F,0*6B,0*80,0*22,0*E0,0*00,0*00,/- 幻 - 0*80,0*20,0*C0,0*30,0*A0,0*28,0*98,0*24, 0*87,0*22,0*80,0*21,0*C4,0*30,0*04,0*60, 0*04,0*00,0*04,0*20,0*04,0*40,0*04,0*80,0*04,0*40,0*FE,0*3F,0*04,0*00,0*00,0*00,/- 摇 - 0*10,0*02,0*10,0*42,0*10,0*81,0*FF,0*7F, 0*90,0*04,0*54,0*05,0*CC,0*F4,0*B
31、4,0*44, 0*84,0*44,0*BC,0*7F,0*82,0*44,0*A2,0*44, 0*9B,0*F4,0*82,0*06,0*00,0*04,0*00,0*00,/- 摇 - 0*10,0*02,0*10,0*42,0*10,0*81,0*FF,0*7F, 0*90,0*04,0*54,0*05,0*CC,0*F4,0*B4,0*44, 0*84,0*44,0*BC,0*7F,0*82,0*44,0*A2,0*44, 0*9B,0*F4,0*82,0*06,0*00,0*04,0*00,0*00,/- 棒 - 0*10,0*04,0*10,0*03,0*D0,0*00,0*FF
32、,0*FF, 0*90,0*00,0*54,0*05,0*44,0*12,0*D4,0*15, 0*74,0*14,0*5F,0*FF,0*D4,0*14,0*54,0*15, 0*56,0*12,0*44,0*06,0*40,0*02,0*00,0*00,/- ! - 0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00, 0*00,0*00,0*00,0*00,0*7C,0*10,0*FE,0*3B, 0*FE,0*3B,0*7C,0*10,0*00,0*00,0*00,0*00, 0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00;/
33、*函数声明*/void display1(void);void display2(void);void display3(void);void display4(void);/*nus延时子程序*/void DelayUs(uint N) uint *; for(*=0; *<=N;*+);/*中断效劳程序*/void intersvr0(void) interrupt 0 using 1 KY=KY; /每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次从左向右摇才显示 if(KY=0) num+; /计算中断次数 switch(pic) /选择画面 case 0:di
34、splay1();break; case 1:display2();break; case 2:display3();break; case 3:display4();break; default:display1(); /*显示子程序1汉字*/void display1(void) uchar i; if(num>10)disp+;num=0; /12个汉字分为3次显示完每次显示4个,每中断10次切换 if(disp>2)disp=0; DelayUs(5200); /此处延时时间依各硬件差异而各不一样,试着调整使得显示容居中即可 for(i=0;i<64;i+) P0=h
35、anzidisp*128+i*2; P2=hanzidisp*128+i*2+1; DelayUs(100); /*显示子程序2LOVE*/void display2(void) uchar i; DelayUs(4000); for(i=0;i<64;i+) P0=lovei*2; P2=lovei*2+1; DelayUs(120); /*显示子程序3心形图案*/void display3(void) uchar i; DelayUs(4000); for(i=0;i<64;i+) P0=loveyoui*2; P2=loveyoui*2+1; DelayUs(120); /*
36、显示子程序4呵呵o(_)o图案*/void display4(void) uchar i; DelayUs(4000); for(i=0;i<64;i+) P0=hehei*2; P2=hehei*2+1; DelayUs(120); /*主函数*/void main(void) IT0=1; E*0=1; EA=1; /开中断,下降沿中断 KY=0; while(1) /主程序中只检测按键 if(KEY=0) /画面切换键按下 DelayUs(10000); /按键去抖 if(KEY=0); pic+; if(pic>3)pic=0; /*END*/3.3 软件实现功能的完善本次
37、设计的一个难点是去除重影,我们的解决方法是使用外部中断让数据单程传输。第二个难点是当显示较长字符时不能完整的显示在一次摇摆的扇形区域。通过反复试验,我们改变了送数据方式:由一个字符接一个字符传送改为一组字符一起传送,传送完毕后再延时,通过不断调试实现了完整显示的功能,同时也解决了画面连续出现没有连续的问题。 综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。4系统的硬件调试及软件调试 单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。其一般的调试过程如下:4.1常见的硬件
38、故障逻辑错误 样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线,开路,短路等几种,其中短路时最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。 器件失效 元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。 可靠性差 引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。 电源故障 假设样机中存在电源故障,则
39、加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率缺乏,负载能力差。4.2 硬件调试方法 脱机调试 脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。 对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意
40、单片机插座上的各点电位是否正常,假设有高压,联机时将会损坏开发机。 联机调试 通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。 联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常,即可翻开电源。通电后执行开发机读写指令,对用户机的存储器、I/O端口进展读写操作、逻辑检查,假设有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。4.3 软件调试方法 软件调试与所选用的软件构造和程序设计技术有关。如果采
41、用模块程序设计技术,则逐个模块调试好以后,再进展系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。 对于模块构造程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各程序模块通过后,可以把各功能块联系起来一起
42、进展整体程序综合调试。在这阶段假设发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和去除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。假设用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进展连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行屡次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要做适当修正。对于实时多任务操作系统的应用程序是由假设干个任务程序组成,一般是逐个任务进展调试,在调试*一个任务时,同时也调试相关的子程序、中断效劳程序和一些操作系统的程序。逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。在全部调试修改完成后,将用户软件固化于EPROM中,插入用户样机后,用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资源重组对经济发展的推动作用试题及答案
- 北京市石景山区2025届高三一模考试数学试题 含解析
- 2025届江苏省南京市、盐城市高三下学期3月一模政治试题 含解析
- 公司火灾扑救应急预案(3篇)
- 计算机考试备考工具试题及答案
- 森林火灾应急扑救预案(3篇)
- 2025年国际市场中的战略风险分析试题及答案
- 开源社区参与与贡献试题及答案
- 消防火灾应急预案是什么(3篇)
- 行政法学考试难点试题及答案揭秘
- 11.2 一元一次不等式(第1课时) 初中数学人教版七年级下册教案
- 2024人工智能与职场研究报告-中国人民大学x明略科技x秒针营销科学院-202404
- 污水处理管理规章制度
- 手术记录书写规范
- 急性胃肠炎的健康宣教
- 室外消防钢丝网骨架塑料复合PE管施工方案
- 2025年工会知识竞赛题库200题及答案(完整版)
- 完整版高中古诗文必背72篇【原文+注音+翻译】
- 药房考试试题及答案
- 2025年广东省广州南沙经济技术开发区商务局招聘编外1人历年自考难、易点模拟试卷(共500题附带答案详解)
- 饮水安全保障体系-深度研究
评论
0/150
提交评论