当需要清0操作的字节单元的个数增加时,程序中MOV指令的个数也会随之增加。为了降低程序中重复代码的数量,缩短程序的长度,可以采用循环程序结构进行程序设计。
分支结构程序的指令执行顺序与指令在ROM中的存放顺序不同,其中某些具有判断功能的指令会根据判断结果改变接下来的指令执行顺序,从而使程序产生一个或多个分支流向。可用于分支结构程序设计的判断指令主要包括JZ、CJNE和JB等有条件转移指令。根据程序分支的数量,可以将分支程序分为三类:单分支、一般多分支和散转多分支。
目前,结构化是程序设计的基本要求,可以使程序结构清晰、易于读写且方便调试,也能够提高程序设计的效率。在结构化程序设计中,程序的基本结构有三种,即顺序结构、分支结构及循环结构。而子程序(也被称为函数或过程)是一种提高程序模块化程度和重复利用率的程序设计技巧,有时也被当作一种基本的程序结构。
AT89C2051单片机内部有2KB的闪速存储器阵列,一片新的AT89C2051,其存储阵列处于擦除状态(FFH),此时可对其编程,存储阵列一次编程1字节,若编程任何非空字节时,需对整个存储阵列进行片擦除。
AT89C系列与MCS 51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整个硬件电路的体积更小。
前面列举的各项措施只解决了如何发现系统受到干扰和如何捕捉“跑飞”的程序,但仅此还不够,还要能够让单片机根据被破坏的残留信息自动恢复到正常的工作状态。硬件复位是使单片机重新恢复正常工作状态的一个简单有效的方法。硬件复位后CPU被重新初始化,所有被激活的中断标志都被清除,程序从0000H地址重新开始执行。
前面几项抗干扰措施都是针对I/O通道而言的。若干扰信号还未作用到CPU本身,则CPU还能正确地执行各种抗干扰程序;若干扰信号已经通过某种途径作用到CPU上,则CPU就不能按正常状态执行程序,从而引起混乱,这就是通常所说的程序“跑飞”。程序“跑飞”后使其恢复正常最简单的方法是让CPU复位,让程序从头开始重新运行。这种方法虽然简单,但需要人的参与,而且复位不及时。人工复位一般是在整个系统已经瘫痪,无计可施的情况下才不得已而为之的。因此在进行软件设计时就要考虑到万一程序“跑
由于数字量输入过程中干扰的作用时间较短,因此在采集数字信号时,可多次重复采集,直到若干次采样结果一致时,才认为其有效。例如通过A/D转换器测量各种模拟量时,如果有干扰作用于模拟信号上,就会使A/D转换结果偏离真实值。这时如果只采样一次A/D转换结果,就无法知道其是否真实可靠,而必须进行多次采样,得到一个A/D转换结果的数据系列,对这些数据系列进行各种数字滤波处理,最后才能得到一个可信度较高的结果值。
8XC51系列单片机是Intel公司生产的8位增强型单片机,它是以80C51为核心的一种8位微控制器,也是一种面向事件控制应用的优选芯片,它与现有MCS 51系列单片机的指令系统兼容,下面以8XC51GB为代表对8XC51系列单片机作一简要阐述。
开关量输入/输出通道和模拟量输入/输出通道,都是干扰窜入的渠道,要切断这些渠道,就要去掉外部与输入/输出通道之间的公共地线,实现彼此电气隔离以抑制干扰脉冲。最常用的隔离器是光电耦合器,其内部结构 图 9.5(a), 图 9.5(b) 为接入光电耦合器的数字电路。
从事单片机应用的开发人员都有过这样的经历:将调试好的样机投入现场进行实际运行时,总会出现这样或那样的问题。有的一开机就失灵,有的时好时坏,让人不知所措。为什么实验室能正常工作,到了现场就有问题呢? 主要原因是系统没有采取抗干扰措施,或措施不力。为此,本文专门介绍单片机应用系统的抗干扰技术,以增强产品在实际环境中的生存能力。
在完成应用系统的硬件组装和软件设计以后,便进入系统调试阶段。这个阶段的任务是排除样机中的硬件故 障和纠正软件中的设计错误,并解 决硬件和软件之间的不协调问题 。下面介绍几种调试方法。
单片机以其体积小、重量轻、价格低及功能强等特点得到了广泛的应用,但单片机上一般仅集成 CPU 、RAM 和 I/O 接口,而无用户接口 (键盘和显示器) 及监控程序,因而单片机自身无编程功能,必须依赖单片机开发工具(又称单片机仿真器)。单片机开发工具有输入程序、编辑程序和调试程序的功能,目前国内使用较多的有 WAVE 、KeilC、MedWin 等,在此就 WAVE 仿真器作一简介。
共模干扰指的是干扰电压在信号线及其回线(一般称为信号地线)上的幅度相同,这里的电压以附近任何一个物体(大地、金属机箱、参考地线板等)为参考电位,干扰电流回路则是在导线与参考物体构成的回路中流动。
单片机应用系统的设计与开发主要包括五部分内容:方案论证,硬件系统的设计,系统软件的设计,系统仿真调试和脱机运行。各部分详细内容如图 8.1 所示。
Wuying00
谭意义
baby321
后一个5年
龙牙
13935218969
st6666
学吧
jiayouxuexi
Fimer
isabella2019
zspzspzsp
yjm1995
tengfei1266
heisetiantang
YDavy
鱼跃此时海
1243907563
慕容垂
QQ23
curryLIHENGLEI
罗晶凡
Liuxds
无心h
与你无瓜
Senmin
夜是打火机
floodsource
tonifyingheart
10468005