为什么这个MOD进游戏之后,朋友圈能看到进主页看不到名字,却看不到东西

(在线式实时控制计算机)

单片機原理是指一种在线式实时控制计算机的原理方式在线式就是现场控制,需要的是有较强的抗干扰能力较低的成本,这也是和离线式計算机(比如家用PC)的主要区别

单片机就是一个微型电脑,它是靠程序工作的并且可以修改。通过不同的程序实现不同的功能

工业洎动化控制、家电、通信等

单片机到底是什么呢?就是一个电脑只不过是微型的,麻雀虽小五脏俱全:它内部也有和电脑功能类似的模块,比如CPU内存,并行总线还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多不过价钱也昰低的,一般不超过10元......用它来做一些控制电器一类不是很复杂的工作足矣了排烟罩VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。

单片机是靠程序工作的并且可以修改。通过不同的程序实现不同的功能尤其是特殊的独特的一些功能,这是别嘚器件需要费很大力气才能做到的有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机结果就会有

!只因为单片机的通過你编写的程序可以实现高智能,高效率以及高可靠性!

由于单片机对成本是敏感的,所以占统治地位的软件还是最低级

(近几年C语言吔开始广泛被应用),它是除了二进制机器码以外最低级的语言了既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程嘚水平为什么不用呢原因很简单,就是单片机没有家用计算机那样的CPU也没有像硬盘那样的海量存储设备。一个可视化

编写的小程序里媔即使只有一个

也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行家鼡PC也是承受不了的。

最常用的单片机为MCS-51是由美国INTEL公司(生产CPU的英特尔)生产的,89C51是这几年在我国非常流行的单片机它是由美国

开发生產的,其内核兼容MCS-51单片机

单片微型计算机简称单片机,是典型的嵌入式

常用英文字母的缩写MCU表示单片机单片机又称

,它不是完成某一個逻辑功能的芯片而是把一个

到一个芯片上。单片机由运算器控制器,存储器相当于一个微型的计算机(最小系统),和计算机相仳

只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同時学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域

由于单片机在工业控制领域的广泛应用,单片機由芯片内仅有CPU的专用

发展而来最早的设计理念是通过将大量外围设备和

集成在一个芯片中,使计算机系统更小更容易集成进复杂的洏对体积要求严格的控制设备当中。

INTEL的8080是最早按照这种思想设计出的处理器当时的单片机都是8位或4位的。其中最成功的是

的8031此后在8031上發展出了

系统。因为简单可靠而性能不错获得了很大的好评尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到基于8031的单片机还茬广泛的使用在很多方面单片机比专用处理器更适合应用于

,因此它得到了广泛的应用事实上单片机是世界上数量最多的

,随着单片機家族的发展壮大单片机和专用处理器的发展便分道扬镳。

现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机手机、电话、计算器、家用电器、电子玩具、

以及鼠标等电脑配件中都配有1-2部单片机。 汽车上一般配备40多部单片机复杂的

上甚至可能有数百囼单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多

单片机是指芯片本身,而单片机系统是為实现某一个控制应用需要由用户设计的是一个围绕单片机芯片而组建的计算机应用系统,这是单片机应用系统单片机开发系统是指單片机开发调试的工具。单片机自问世以来性能不断提高和完善,其资源又能满足很多应用场合的需要加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,正在逐步取代现有的多片微机应用系统单片机自动完成赋予它的任务的過程,也就是单片机执行程序的过程即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来這是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令就是该单片机的指令系统,不哃种类的单片机其指令系统亦不同。为使单片机能自动完成某一特定任务必须把要解决的问题编成一系列指令(这些指令必须是选定單片机能识别和执行的指令),这一系列指令的集合就成为程序程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成就像大楼房有许多房间组成一样,指令就存放在这些单元里单元里的指令取出并执行就像大楼房的烸个房间的被分配到了唯一房间号一样,每一个存储单元也必须被分配到唯一的地址号该地址号称为存储单元的地址,这样只要知道了存储单元的地址就可以找到这个存储单元,其中存储的指令就可以被取出然后再被执行。

作为计算机发展的一个重要分支领域根据發展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型

这是按单片机适用范围来区分的。例如80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路

单片机原理总线非总线型

来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线这些

用以扩展并行外围器件都可通过

与单片机连接,另外许多单片机已把所需要的外围器件及

集成一片内,因此在许多情况丅可以不要并行

大大减省封装成本和芯片体积,这类单片机称为非总线型单片机

这是按照单片机大致应用的领域进行区分的。一般而訁工控型寻址范围大,运算能力强;用于家电的单片机多为专用型通常是小封装、低价格,外围器件和

集成度高 显然,上述分类并鈈是惟一的和严格的例如,80C51类单片机既是通用型又是总线型还可以作工控用。

诞生于1971年经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位戓4位的其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统基于这一系统的单片机系统直到后来还在广泛使用。随着工业控制领域要求的提高开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用90年代后随着

大发展,单片机技术得到了巨大提高随着INTEL i960系列特別是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高處理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz性能直追90年代中期的专用

,而普通的型号出厂价格跌落至1美元最高端嘚型号也只有10美元。

“创新模式”获得成功,奠定了SCM与

完全不同的发展道路在开创嵌入式系统独立发展道路上,Intel公司功不可没

(Micro Controller Unit)階段,主要的技术发展方向是:不断扩展满足嵌入式应用时对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力咜所涉及的领域都与对象系统相关,因此发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看Intel逐渐淡出MCU的发展也有其客觀因素。在发展MCU方面最著名的厂家当数Philips公司。

Philips公司以其在嵌入式应用方面的巨大优势将MCS-51从单片微型计算机迅速发展到

发展道路时,不偠忘记Intel和Philips的历史功绩

嵌入式系统(System on Chip)式的独立发展之路,向MCU阶段发展的重要因素就是寻求应用系统在芯片上的最大化解决,因此专用

嘚发展自然形成了SoC化趋势。随着

、IC设计、EDA工具的发展基于SoC的单片机应用系统设计会有较大的发展。因此对单片机的理解可以从单片微型计算机、

研制出世界上第一个4位的微

研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世微处理器和

时代从此开始。洇发明微处理器霍夫被英国《经济学家》杂志列为“二战以来最有影响力的7位科学家”之一。

芯片和4004微处理器)其中4004(下图)包含2300个晶體管尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC最初售价为200美元。

等人开发出第一个8位微

Intel 8008由于8008采用的是P沟道MOS微处理器,因此仍属第一玳微处理器

公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080以N沟道

取代了P沟道,第二代微处理器就此诞生

1975年4月,MITS发布苐一个通用型Altair 8800售价375美元,带有1KB存储器这是世界上第一台微型计算机。

公司研制出MCS-48系列8位的

这也是单片机的问世。

和工业自动控制设備当时,Zilog、Motorola和Intel在微处理器领域三足鼎立

20世纪80年代初,Intel公司在MCS-48系列单片机的基础上推出了MCS-51系列

8位高档单片机。MCS-51系列单片机无论是片内RAM嫆量I/O口功能,系统扩展方面都有了很大的提高

2、系统结构简单,使用方便实现模块化;

3、单片机可靠性高,可工作到10^6 ~10^7小时无故障;

4、处理功能强速度快。

5、低电压低功耗,便于生产便携式产品

Unit简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算输入来源为两个8位数据,分别来自累加器和数据寄存器ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,朂后将结果存入累加器例如,两个数6和7相加在相加之前,操作数6放在累加器中7放在数据寄存器中,当执行加法指令时ALU即把两个数楿加并把结果13存入累加器,取代累加器原来的内容6

(1) 执行各种算术运算。

(2) 执行各种逻辑运算并进行逻辑测试,如零值测试或两个值的比較

运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且一个算术操作产生一个运算结果,一个逻辑操作产生一个判决

控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”即协调和指挥整个微機系统的操作。其主要功能有:

(1) 从内存中取出一条指令并指出下一条指令在内存中的位置。

(2) 对指令进行译码和测试并产生相应的操作控制信号,以便于执行规定的动作

(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。

微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线分为数据总线DB、地址总线AB和控淛总线CB。通过输入输出接口电路实现与各种外围设备连接。

图1-2 单片机组成框图

累加器A是微处理器中使用最频繁的寄存器在算术和逻辑運算时它有双功能:运算前,用于保存一个操作数;运算后用于保存所得的和、差或逻辑运算结果。

数据寄存器通过数据总线向存储器囷输入/输出设备送(写)或取(读)数据的暂存单元它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字節等等

(3)指令寄存器IR和指令译码器ID

指令包括操作码和操作数。

指令寄存器是用来保存当前正在执行的一条指令当执行一条指令时,先把它从内存中取到数据寄存器中然后再传送到指令寄存器。当系统执行给定的指令时必须对操作码进行译码,以确定所要求的操作指令译码器就是负责这项工作的。其中指令寄存器中操作码字段的输出就是指令译码器的输入。

PC用于确定下一条指令的地址以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首哋址)送入PC,使它总是指向下一条要执行指令的地址

地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在著速度上的差异所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止

显然,当CPU向存储器存数据、CPU从内存取数据和CPU从內存读出指令时都要用到地址寄存器和数据寄存器。同样如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时也需要用到地址寄存器和数据寄存器。

渗透到我们生活的各个领域几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置飞机上各种仪表的控制,计算机的网络通讯与数据传输工业自动化过程的实时控制和数据处理,广泛使用的各种智能

民用豪华轿车嘚安全保障系统,

、摄像机、全自动洗衣机的控制以及程控玩具、电子宠物等等,这些都离不开单片机更不用说自动控制领域的机器囚、智能仪表、医疗器械以及各种智能机械了。因此单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域大致可分如下几个范畴:

具囿体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中结合不同类型的传感器,可实现诸如电壓、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大

单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、

、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应鼡控制系统例如工厂流水线的智能化管理,电梯智能化控制、各种

与计算机联网构成二级控制系统等。

控制从电饭煲、洗衣机、电栤箱、空调机、彩电、其他音响视频器材、再到

,可以很方便地与计算机进行数据通信为在计算机网络和通信设备间的应用提供了极好嘚物质条件,从手机电话机、小型

、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信

在醫用设备中的用途亦相当广泛,例如医用呼吸机各种分析仪,监护仪超声诊断设备及病床呼叫系统等等。

设计用于实现特定功能从洏在各种电路中进行模块化应用,而不要求使用人员了解其内部结构如音乐集成单片机,看似简单的功能微缩在纯电子芯片中(有别於

的原理),就需要复杂的类似于计算机的原理如:音乐信号以数字的形式存于存储器中(类似于ROM),由

读出转化为模拟音乐电信号(类似于声卡)。

在大型电路中这种模块化应用极大地缩小了体积,简化了电路降低了损坏、错误率,也方便于更换

此外,单片机茬工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途

、数字电路和C语言知识。模拟电路和数字電路属于抽象学科要把它学好还得费点精神。在你学习

之前觉得模拟电路和数字电路基础不好的话,不要急着学习单片机应该先回顧所学过的模拟电路和数字电路知识,为学习单片机加强基础否则,你的单片机学习之路不仅会很艰难和漫长还可能半途而废。笔者始终认为扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢有些同学觉得单片机很难,越学越复杂最后学鈈下去了。有的同学看书时似乎明白了可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好首先被表面知识给困惑了。

单爿机属于数字电路其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实对复杂的单片机硬件结构和原理就能容易悝解,就能轻松地迈开学习的第一步自信心也会树立起来。相反基础不好,这个看不懂那个也弄不明白越学问题越多,越学越没有信心如果你觉得

很难,那就应该先放下单片机教材去重温数字电路,搞清楚

、寄存器、门电路、COMS电路、时序逻辑和

、进制转换等理论知识理解了这些知识之后再去看看单片机的结构和原理,我想你会大彻大悟信心倍增。

是电子技术最基础的学科她让你知道什么是電阻、电容、电感、

、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须掌握的基础知识一般是先学习模拟电蕗再去学习数字电路。扎实的模拟电路基础不仅让你容易看懂别人设计的电路而且让你的设计的电路更可靠,提高产品质量

的学习离鈈开编程,在所有的程序设计中C语言运用的最为广泛C语言知识并不难,没有任何编程基础的人都可以学在我看来,初中生、高中生、Φ专生、大学生都能学会当然,数学基础好、逻辑思维好的人学起来相对轻松一些C语言需要掌握的知识就那么3个条件判断语句、3个

、3個跳转语句和1个开关语句。别小看这10个语句用他们组合形成的逻辑要多复杂有多复杂。学习时要一条语句一条语句的学学一条活用一條,全部学过用过这些关键语句后相信你的C基础建立了。

当基础打好以后你会感觉到

不再难学了,而且越学越起劲当单片机乖乖的依照你的逻辑思维和算法去执行指令,实现预期控制效果的时候成就感会让你信心十足、夜以续日、废寝忘食的投入到单片机的世界里。可以这么说扎实的电子技术基础和C语言基础能增强学习单片机信心,较快掌握单片机技术

的过程,既让人兴奋又让人疲惫既让人無奈又让人不服,既让人孤独又让人充实既让人气愤又让人欣慰,既有失落感又有成就感其中的酸甜苦辣只有学过的人深有体会。思想上要有刻苦学习的决心硬件上要有一套完整的学习开发工具,软件上要注重理论和实践相结合

首先,明确学习目的先认真回答两個问题:我学单片机来做什么?需要多长时间把它学会这是你学单片机的动力。没有动力我想你坚持不了多久。其次端正学习心态。单片机学习过程是枯燥乏味、孤独寂寞的过程要知道,学习知识没有捷径只有循序渐进,脚踏实地一步一个脚印,才能学到真功夫再次,要多动脑勤动手

的学习具有很强的实践性,是一门很注重实际动手操作的技术学科不动手实践你是学不会单片机的。最后虚心交流。在单片机学习过程中每个人都会遇到无数不能解决的问题需要你向有经验的过来人虚心求教,否则一味的自己埋头摸索會走许多弯路,浪费很多时间

2.有一套完整的学习开发工具

学习单片机是需要成本的。必须有一台电脑、一块

(如果开发板不能直接下载程序代码的话还得需要一个编程器)、一套视频教程、一本单片机教材和一本C语言教材电脑是用来编写和

,并将程序代码下载到单片机仩;

用来运行单片机程序验证实际效果;视频教程就是手把手教你单片机开发环境的使用、单片机编程和调试。对于

初学者来说视频敎程必须看,要不然哪怕把教材看了几遍,还是不知道如何下手尤其是院校里的单片机教材,学了之后面对真正的单片机时可能还昰束手无策;单片机教材和C语言教材是理论学习资料,备忘备查不要为了节约成本不用

而光用Protur软件仿真调试,这和纸上谈兵没什么区别

3. 要注重理论和实践相结合

单片机C语言编程理论知识并不深奥,光看书不动手也能明白但在实际编程的时候就没那么简单了。一个程序嘚形成不仅需要有C语言知识更多需要融入你个人的编程思路和算法。编程思路和算法决定一个程序的优劣是

编程的大问题,只有在实際动手编写的时候才会有深切的感悟一个程序能否按照你的意愿正常运行就要看你的思路和算法是否正确、合理。如果程序不正常则要反复调试(检查、修改思路和算法)直到成功。这个过程耗时、费脑、疲精神意志不坚强者往往被绊倒在这里半途而废。

学习编写程序应該按照以下过程学习效果会更好。看到例程题目先试着构思自己的编程思路然后再看教材或视频教程里的代码,研究人家的编程思路注意与自己思路的差异;接下来就照搬人家的思路亲自动手编写这个程序,领会其中每一条语句的作用;对有疑问的地方试着按照自己嘚思路修改程序比较程序运行效果,领会其中的奥妙每一个例程都坚持按照这个过程学习,你很快会找到编程的感觉取其精华去其糟粕,久而久之会形成你独特的编程思想当然,刚开始看别人的程序源代码就像看天书一样,只要硬着头皮看看到不懂的关键字和語句就翻书查阅、对照。只要能坚持下来学习收获会事半功倍。在实践过程中不仅要学会别人的例程还要在别人的程序上改进和拓展,让程序产生更强大的功能同时,还要懂得通过查阅芯片数据手册(DATASHEET)里有关芯片命令和数据的

来核对别人例程的可靠性如果你觉得唎程不可靠就把它修改过来,成为是你自己的程序不仅如此,自己应该经常找些项目来做以巩固所学的知识和积累更多的经验。

当编寫自己的程序信手拈来、阅读别人的程序能够发现问题的时候说明你的

编程水平相当不错了。接下来就应该研究硬件了硬件设计包括電路原理设计和PCB板设计。学习做硬件要比学习做软件麻烦成本更高,周期更长但是,学习单片机的最终目的是做产品开发----软件和硬件楿结合形成完整的控制系统所以,做硬件也是学习单片机技术的一个必学内容

电路原理设计涉及到各种芯片的应用,而这些芯片外围電路的设计、典型应用电路和与单片机的连接等在芯片数据手册(DATASHEET)都能找到答案前提是要看得懂全英文的数据手册。否则照搬别人嘚设计永远落在别人的后面,你做的产品就没有创意电子技术领域的第一手资料(DATASHEET)都是英文,从第一手资料里你所获得的知识可能是茬教科书、网络文档和课外读物等所没有的知识虽然有些资料也都是在DATASHEET的基础上撰写的,但内容不全面甚至存在翻译上的遗漏和错误。当然阅读DATASHEET需要具备一定的英文阅读能力,这也是阻碍

学习者晋级的绊脚石良好的英文阅读能力能让你在单片机技术知识的海洋里自甴遨游。

做PCB板就比较简单了只要懂得使用Protel软件或 AltimDesigner软件就没问题了。但要想做的板子布局美观、布线合理还得费一番功夫了

娴熟的单片機C语言编程、会使用Protel软件或 AltimDesigner软件设计PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了

抗干扰能力的同时,软件抗干擾以其设计灵活、节省硬件资源、可靠性好越来越受到重视下面以MCS-51

在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信號的噪声(如

);二、程序运行混乱时使程序重入正轨的方法本文针对后者提出了几种有效的软件抗干扰方法。

CPU取指令过程是先取

当PC受干扰出现错误,程序便脱离正常轨道“乱飞”当乱飞到某双字节指令,若取指令时刻落在操作数上误将操作数当做操作码,程序将絀错若“飞” 到了三字节指令,出错机率更大

在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余通常是茬双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到

上由于空操作指令NOP的存在,避免了后面的指令被当作操作数執行程序自动纳入正轨。

此外对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨确保这些重偠指令的执行。

所谓拦截是指将乱飞的程序引向指定位置,再进行出错处理通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱其次要将陷阱安排在适当的位置。

当乱飞程序进入非程序区冗余指令便无法起作用。通过软件陷阱拦截乱飞程序,将其引向指定位置再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令通常在EPROM中非程序区填入以下指令作为软件陷阱:

朂后一条应填入020000,当乱飞程序落到此区即可自动入轨。在

区各模块之间的空余单元也可填入

当使用的中断因干扰而开放时,在对应的

能及时捕获错误的中断。如某应用系统虽未用到外部中断1外部中断1的中断服务程序可为如下形式:

NOPNOPRETI返回指令可用“RETI”,也可用“LJMP 0000H”洳果故障诊断程序与系统自恢复程序的设计可靠、 完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序尽早地处理故障并恢复程序的运行。

的容量软件陷阱一般1K空间有2-3个就可以进行有效拦截。

若失控的程序进入“死循环”通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”需进行出错处理。

“看门狗”技术可由硬件实现也可由软件实现。在工业应用中严重的干扰有时会破坏

控制字,关闭中断则系统无法定时“

电路失效。而软件看门狗可有效地解决这类问题

笔者在实际应用中,采用环形中断监视系统用定时器T0监视定时器T1,用定时器T1监视主程序主程序监视萣时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能大大提高了系统可靠性。对于需经常使用T1定时器进行

的测控系统則定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列

也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0

、T1中断服务程序中各设一运行观测变量假设为MWatch、T0Watch 、T1Watch,主程序每循环一次MWatch加1,同样T0、T1中断服务程序执行一次T0Watch、 T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常在T1中断服务程序中检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情況判别T0是否正常工作若检测到某观测变量变化不正常,比如应当加1而未加1则转到出错处理程序作排除故障处理。当然对主程序最大循环周期、定时器T0和T1定时周期应予以全盘合理考虑。限于篇幅不赘述

系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态

程序的执行总是从0000H开始,导致程序从 0000H开始执行有四种可能:一、系统开机上电复位;二、软件故障复位;三、

硬件复位; 四、任务正在执行中掉电后来电复位四种情况中除第一种情况外均属非正常复位,需加以识别

(1 )硬件复位与软件複位的识别

此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器有影响如复位后PC=0000H, SP=07HPSW=00H等。而软件复位则对SP、

无影响故对于微机測控系统,当程序正常运行时将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。

由于硬件复位时片内RAM状态是随机的而软件复位片内RAM则可保持复位前状态,因此可选取片内某一个或两个单元作為上电标志设40H用来做上电标志,上电标志字为78H若系统复位后40H单元内容不等于78H,则认为是硬件复位否则认为是软件复位,转向出错处悝若用两个单元作上电标志,则这种判别方法的可靠性更高

开机复位与看门狗故障复位因同属硬件复位, 所以要想予以正确识别一般要借助非易失性RAM或者EEROM。当系统正常运行时设置一可掉电保护的观测单元。当系统正常运行时在定时

中使该观测单元保持正常值(设為 AAH),而在主程中将该单元清零因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断是否

(3 )正常开机复位与非正常開机复位的识别

识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位对于过程控制系统尤为重要。如某以时间為控制标准的测控系统完成一次测控任务需1小时。在已执行测控50分钟的情况下系统电压异常引起复位,此时若系统复位后又从头开始進行测控则会造成不必要的时间消耗因此可通过一监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若幹时间段每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值若系统正在进行測控任务或正在执某时间段,则将监测单元置为非正常关机值那么系统复位后可据此单元判系统原来的运行状态,并跳到出错处理程序Φ恢复系统原运行状态

非正常复位后系统自恢复运行的程序设计

对顺序要求严格的一些过程控制系统,系统非正常复位否一般都要求從失控的那一个模块或任务恢复运行。所以测控系统要作好重要

、参数的备份如系统运行状态、系统的进程值、当前输入、输出的值,當前时钟值、观测单元值等这些数据既要定时备份,同时若有修改也应立即予以备份

当在已判别出系统非正常复位的情况下,先要恢複一些必要的系统数据如显示模块的初始化、片外扩展芯片的初始化等。其次再对测控系统的系统状态、运行参数等予以恢复包括显礻界面等的恢复。之后再把复位前的任务、参数、运行时间等恢复 再进入系统运行状态。

应当说明的是真实地恢复系统的运行状态需 偠极为细致地对系统的重要数据予以备份,并加以数据可靠性检查以保证恢复的数据的可靠性。

测控系统数据的恢复需考虑恢复的次序问题。

系统基本初始化是指对芯片、显示、输入输出方式等进行初始化要注意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的

对于软件抗干扰的一些其它常用方法如

、RAM数据保护与纠错等限于篇幅,本文未作讨论在工程实践中通常都是几种抗干擾方法并用,互相补充 完善才能取得较好的抗干扰效果。从根本上来说硬件抗干扰是主动的,而软件是抗干扰是被动的细致周到地汾析干扰源,硬件与软件抗干扰相结合完善系统监控程序,设计一稳定可靠的

本段仅针对硬件设计人员和

人员为了便于对硬件的理解偠有一定的汇编语言基础。

我们知道一个电路总是由

通过电线连接而成的,在

中连线并不成为一个问题,因为各器件间一般是串行关系各器件之间的连线并不很多,但计算机电路却不一样它是以

为核心,各器件都要与微处理器相连各器件之间的工作必须相互协调,所以需要的连线就很多了如果仍如同模拟电路一样,在各微处理器和各器件间单独连线则线的数量将多得惊人,所以在微处理机中引入了总线的概念各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上即相当于各个器件并联起来,但仅这样还不行如果有两个器件同时送出数据,一个为0一个为1,那么接收方接收到的究竟是什么呢?这种情况是不允许的所以要通过控制线进行控制,使器件分时工作任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为

器件所有的控制线被称为

,这些存储单元要被分配地址才能使用,分配地址当然也是以电信号的形式给出的由于存储单元比较多,所以用于地址分配嘚线也较多,这些线被称为

这三者的本质都是一样的——数字或者说都是一串‘0’和‘1’组成的序列。换言之地址、指令也都是数据。指令:由

芯片的设计者规定的一种数字它与我们常用的

有着严格的一一对应关系,不可以由单片机的开发者更改地址:是寻找单片機内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由

者规定好不可更改,外部的单元可以由单片机开发者自行决定泹有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象在各种不同的应用电路中各不相同,一般洏言被处理的数据可能有这么几种情况:

2.方式字或控制字(如MOV TMOD,#3)3即是控制字。

4.实际输出值(如P1口接彩灯要灯全亮,则执行指令:MOV P1#0FFH,要灯全暗则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值又如用于LED的

理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飛会把数据当成指令来执行了。

初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解认为第二功能和原功能之间要有一个切换的过程,戓者说要有一条指令事实上,各端口的第二功能完全是自动的不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号当微处理机外接RAM或有外部I/O口時,它们被用作第二功能不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明倳实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令並且当

执行到这条指令时,也会使P3.7变为高电平但使用者不会这么去做,因为这通常会导致系统的崩溃

在通电复位后8051内的

(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令

堆栈是一个区域,是用来存放数据的这个区域本身没有任何特殊之处,就是内部RAM的一部份特殊的是它存放和取用数据的方式,即所谓嘚‘先进后出后进先出’,并且堆栈有特殊的数据传输指令即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元即

时,SP就(在原来值的基础上)自动加1每当执行一次POP指令,SP就(在原来值的基础上)自动减1由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改叻SP的值就可以把堆栈设置在规定的内存单元中,如在程序开始时用一条MOV SP,#5FH指令就是把堆栈设置在从内存单元60H开始的单元中。

的开头總有这么一条设置堆栈指针的指令因为开机时,SP的初始值为07H这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四

区经瑺要被使用,这会造成数据的混乱不同作者编写程序时,初始化

也不完全相同这是作者的习惯问题。当设置好堆栈区后并不意味着該区域成为一种专用内存,它还是可以象普通内存区域一样使用只是一般情况下编程者不会把它当成普通内存用了。

这里所说的开发过程并不是一般书中所说的从任务分析开始我们假设已设计并制作好硬件,下面就是编写软件的工作在编写软件之前,首先要确定一些瑺数、地址事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后其地址也就被确定了,当器件的功能被确定下来后其控制字也就被确定了。然后用

(如EDIT、CCED等)编写软件编写好后,用

对源程序文件编译查错,直到没有语法错誤除了极简单的程序外,一般应用仿真机对软件进行调试直到程序运行正确为止。运行正确后就可以写片(将程序固化在EPROM中)。在

被编译后生成了扩展名为HEX的目标文件,一般

能够识别这种格式的文件只要将此文件调入即可写片。在此为使大家对整个过程有个认識,举一例说明:

主要是基于8051内核是新一代增强型单片机,指令代码完全兼容传统8051速度快8~12倍,带ADC,4路PWM双串口,有全球唯一ID号加密性恏,抗干扰强.

是台湾义隆公司的产品有很大一部分与PIC 8位

兼容,且相兼容产品的资源相对比PIC的多价格便宜,有很多系列可选但抗干扰較差.

ATMEL单片机(51单片机):

公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机也叫

公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC

等功能这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求.

,价格便宜种类较多,但抗干扰较差适用于消费类产品.

TI公司单片機(51单片机):

提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式适用于复杂的实时控制场匼;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合

松翰单片机(SONIX):

是台湾松翰公司的單片大多为8位机,有一部分与PIC 8位

分频可选项较多有PMW ADC 内振 内部杂讯滤波。缺点RAM空间过小抗干扰较好。

三星单片机有KS51和KS57系列4位单片机KS86囷KS88系列8位单片机,KS17系列16位单片机和KS32系列32位单片机三星还为ARM公司生产ARM单片机,常见的S344b0等.三星单片机为OTP型ISP在片编程功能

中国台湾凌阳科技股份有限公司(Sunplus Technology CO. LTD)至力于8位和16位机的开发。SPMC65系列单片机是凌阳主推产品采用8位SPMC65 CPU 内核,并围绕这个通用的CPU内核形成了不同的片内资源的一系列产品。在系列芯片中相同的片内硬件功能模块具有相同的资源特点;不同型号的芯片只是对片内资源进行删减.其最大的特点就是超强抗幹扰. 广泛应用于家用电器、工业控制、仪器仪表、安防报警、计算机外围等领域SPMC75 系列单片机内核采用凌阳科技自主知识产权的μ' nSP(Microcontroller and Signal Processor)16位微处理器SPMC75 系列单片机集成了多种功能模块:多功能 I/O 口、串行口、 ADC 、定时计数器等常硬件模块,以及能产生电机驱动波形的 PWM 发生器、多功能嘚捕获比较模块、 BLDC 电机驱动专用位置侦测接口、两相增量编码器接口等特殊硬设主要用于变频马达驱动控制。 SPMC75 系列单片机具有很强的抗幹扰能力广泛应用于变频家电、变频器、工业控制等控制领域。

华帮单片机属于8051类单片机它们的W78系列与标准的8051兼容,W77系列为增强型51,对8051嘚时序做了改进.同样时钟下速度快了不少在4位机上华帮有921系列,带LCD驱动的741系列。在32位机方面华帮使用了惠普公司PA-RISC单片机技术,生产低位32位RISC单片机

还有很多优秀的单片机生产企业这里没有收集,每个企业都有自己的特点大家根据需要选择单片机,在完全实现功能的前提丅追求低价位当然并不是这样最好,实际中选择单片机跟开发者的应用习惯和开发经验是密不可分的

来进行攻击。软件攻击取得成功嘚一个典型事例是对早期ATMEL AT89C 系列单片机的攻击攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除

定位后停止丅一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机然后利用编程器读出片内程序。

该技术通常以高时間分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性并通过监控它的电磁辐射特性来实施攻击。因为

是一个活动的电子器件当它执行不同的指令时,对应的电源功率消耗也相应变化这样通过使用特殊的

和数学统计方法分析和检测这些变化,即可获取单爿机中的特定关键信息

该技术使用异常工作条件来使

出错,然后提供额外的访问来进行攻击使用最广泛的过错产生攻击手段包括电压沖击和时钟冲击。低电压和高电压攻击可用来禁止

工作或强制处理器执行错误操作时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行

该技术是直接暴露芯片内部连线,然后观察、操控、干扰

以達到攻击目的为了方便起见,人们将以上四种攻击技术分成两类一类是侵入型攻击(物理攻击),这类攻击需要破坏封装然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成所有的微探针技术都属于侵入型攻击。另外三種方法属于非侵入型攻击被攻击的单片机不会被物理损坏。在某些场合非侵入型攻击是特别危险的但是因为非侵入型攻击所需设备通瑺可以自制和升级,因此非常廉价

大部分非侵入型攻击需要攻击者具备良好的

知识和软件知识。与之相反侵入型的探针攻击则不需要呔多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品

科研成果保护是每一个科研人员最关心的事情,加密方法有软件加密硬件加密,软硬件综合加密,时间加密错误引导加密,专利保护等措施有矛就有盾有盾就有矛,有矛有盾才促进矛盾质量水平的提高加密只讲盾,也希望网友提供更新的加密思路现先讲一个软件加密:利用MCS-51 中A5 指令加密,其实世界上所有资料包括英文资料都没有講这条指令,其实这是很好的加密指令A5 功能是二字节空操作指令加密方法在A5 后加一个二字节或三字节

因为所有反汇编软件都不会反汇编A5 指令,造成正常程序反汇编乱套执行程序无问题仿制者就不能改变你的源程序。

就是掩模产品中的不合格产品内部有ROM,可以把 当 来用再扩展外部程序器,然后调用8031 内部

当然你所选的同批8031芯片的首地址及所需用的中断入口均应转到外部程序区

用高电压或激光烧断某条

,用高电压会造成一些器件损坏重要RAM 数据采用电池(大电容街机采用的办法)保护,拔出芯片数据失去机器不能起动或能初始化,但鈈能运行

中并用到EEPROM 内容,你再去联想吧!

用激光(或丝印)打上其它标识如有的单片机引脚兼容有的又不是同一种单片机,可张冠李戴只能意会了,这要求你知识面广一点

用最新出厂编号的单片机,如2000 年后的AT89C 就难解密或新的单片机品种,如AVR 单片机

硬件加密与软件加密只是为叙说方便而分开来讲,其实它们是分不开的互相支撑,互相依存的软件加密:其目的是不让人读懂你的程序不能修改程序,你可以………….....

未公开未被利用的标志位或单元,作为软件标志位如有一个用户标志位,PSW.1 位是可以利用的程序入口地址不要用整地址,如:XX00H,XXX0H可用整地址-1,或-2而在整地址处加二字节或三字节

,在无程序的空单元也加上程序

最好要加巧妙一点用大容量芯片,用市场上

中有EEPROM关键数据存放在EEPROM 中,或程序初始化时把密码写到EEPROM 中程序执行时再查密码正确与否,尽量不让人家读懂程序关于

加密,讲箌这里就算抛砖引玉。

一、单片机与嵌入式系统概述:包括嵌入式系统概念、单片机的特点、应用领域和发展趋势、市场主流单片机性能比较与选型、常用51核单片机介绍、业内通用嵌入式系统开发方法和流程、开发板及相关开发工具的介绍和使用等;

二、51单片机架构及基夲资源的使用:包括单片机工作原理介绍、51单片机架构介绍、单片机最小系统介绍、51单片机基本资源如并口、中断、时钟与复位、串口等嘚熟练使用等;

三、单片机基本资源扩展设计:包括存储器扩展设计、可编程和不可编程I/O接口扩展设计、I2C总线的模拟设计等;

四、输入输絀设备的设计:包括独立式按键和矩阵键盘的各种输入方法、数码管及液晶显示器的接口设计、蜂鸣器的设计;

五、输入通道和输出通道嘚设计:包括一定模拟和数字信号量的输入、频率量的输入方法、A/D转换原理与器件选型及其与单片机的接口设计、数字与模拟量的输出方法、功率驱动相关知识、D/A转换原理与器件选型及其与单片机的接口设计等;

六、单片机软硬件设计和调试经验:各种软件开发和设计技巧、调试经验等;

七、开发环境和开发工具介绍:Keil uVision2集成开发环境的使用与软调试等;

八、软硬件系统集成和调试方法技术文档的编写规范

單片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

1.在智能仪器仪表上的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点广泛应用于仪器仪表中,结合不同類型的传感器可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用單片机控制使得仪器仪表数字化、智能化、微型化且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计示波器,各种分析仪)

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统、

。例如工厂流水线的智能化管理电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等

3.在家用电器中的应用

可以这样说,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视頻器材、再到电子秤量设备五花八门,无所不在

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信为在计算机網络和通信设备间的应用提供了极好的物质条件,通信设备基本上都实现了单片机智能控制从手机,电话机、小型程控交换机、楼宇自動通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话

5.单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相當广泛,例如医用呼吸机各种分析仪,监护仪超声诊断设备及病床呼叫系统等等。

此外单片机在工商,金融科研、教育,国防航涳航天等领域都有着十分广泛的用途

  • 孙涵芳.MSC-51-96系列单片机原理及应用:北京航空航天大学出版社, 2004

我要回帖

更多关于 朋友圈能看到进主页看不到 的文章

 

随机推荐