单片机指令冗余技术
- 格式:doc
- 大小:34.00 KB
- 文档页数:8
•单片机概述•单片机内部结构•指令系统与程序设计目录•中断系统与外部扩展技术•接口电路设计与应用实例•调试方法与技巧01单片机概述单片机定义与特点定义特点单片机发展历程及趋势发展历程发展趋势8051系列PIC系列AVR系列ARM系列常见单片机类型介绍应用领域与前景展望应用领域工业自动化、智能仪表、汽车电子、智能家居、医疗设备、通信设备等领域。
前景展望随着物联网、人工智能等技术的不断发展,单片机的应用领域将进一步拓展,市场需求将持续增长。
同时,单片机的性能将不断提高,功能将不断完善,开发工具和支持将更加丰富,使得单片机的设计和开发更加便捷和高效。
02单片机内部结构CPU结构与功能运算器控制器寄存器组控制单片机各部分协调工作暂存数据和地址执行算术和逻辑运算程序存储器存放程序和常数数据存储器存放变量和中间结果特殊功能寄存器控制单片机的特定功能存储器组织与访问方式I/O端口及扩展方法并行I/O端口串行I/O端口I/O端口扩展方法定时器/计数器原理及应用定时器原理计数器原理定时器/计数器应用03指令系统与程序设计指令格式及寻址方式指令格式寻址方式寻址方式是指如何找到操作数的地址或数据。
常见的寻址方式有直接寻址、间接寻址、寄存器寻址、立即寻址等。
数据传送指令用于在单片机内部或外部存储器之间,以及存储器和累加器之间传送数据。
算术运算指令包括加、减、乘、除等基本算术运算,以及求补、比较等扩展运算。
逻辑运算指令用于执行与、或、非等逻辑运算,以及位操作等。
控制转移指令用于改变程序的执行流程,如条件转移、无条件转移、子程序调用等。
常见指令类型介绍汇编语言程序设计基础伪指令与宏定义的可读性和可维护性。
程序结构与设计执行效率。
调试与仿真实用程序设计技巧中断处理中断是单片机处理外部事件的重要方式,合理设计中断处理程序可以提高系统的实时性和响应速度。
资源优化单片机资源有限,需要合理规划和使用资源,如内存、I/O端口、定时器等,以提高系统的性能和稳定性。
单片机名词解释一、名词解释1.微处理器:即中央处理器CPU,它是把运算器和控制器集成在一块芯片上的器件总称。
2.单片机(单片微型计算机):把CPU、存储器、I/O接口、振荡器电路、定时器/计数器等构成计算机的主要部件集成在一块芯片上构成一台具有一定功能的计算机,就称为单片微型计算机,简称单片机。
3.程序计数器:程序计数器PC是一个不可寻址的16位专用寄存器(不属于特殊功能寄存器),用来存放下一条指令的地址,具有自动加1的功能。
4.数据指针:数据指针DPTR是一个16位的寄存器,可分为两个8位的寄存器DPH、DPL,常用作访问外部数据存储器的地址寄存器,也可寻址64K字节程序存储器的固定数据、表格等单元。
5.累加器:运算时的暂存寄存器,用于提供操作数和存放运算结果。
它是应用最频繁的寄存器,由于在结构上与内部总线相连,所以一般信息的传送和交换均需通过累加器A。
6.程序状态字:程序状态字PSW是一个8位寄存器,寄存当前指令执行后的状态,为下条或以后的指令执行提供状态条件。
它的重要特点是可以编程。
7.堆栈:堆栈是一组编有地址的特殊存储单元,数据遵循先进后出的存取原则。
栈顶地址用栈指针SP指示。
8.软件堆栈:通过软件唉内部RAM中定义一个区域作为堆栈(即由软件对SP设置初值),称软件堆栈。
9.振荡周期(晶振周期):振荡电路产生的脉冲信号的周期,是最小的时序单位。
10.时钟周期:把2个振荡周期称为S状态,即时钟周期。
1个时钟周期=2个振荡周期。
11.机器周期:完成一个基本操作所需的时间称为机器周期。
1个机器周期=12个振荡周期。
12.指令周期:执行一条指令所需的全部时间称为指令周期。
MCS-51单片机的指令周期一般需要1、2、4个机器周期。
13.地址/数据分时复用总线:是指P0口用作扩展时,先输出低8位地址至地址锁存器,而后再由P0口输入指令代码,在时间上是分开的。
14.准双向并行I/O口:当用作通用I/O口,且先执行输出操作,而后要由输出变为输入操作时,必须在输入操作前再执行一次输出“1”操作(即先将口置成1),然后执行输入操作才会正确,这就是准双向的含义。
单片机指令编程的常见错误与解决方法在单片机指令编程过程中,往往会遇到各种问题和错误。
这些问题可能导致程序无法正常运行或者出现意料之外的结果。
本文将介绍一些常见的错误,以及相应的解决方法,帮助程序员更好地进行单片机指令编程。
一、编码错误编码错误是指在编写指令时出现的错误,包括语法错误和逻辑错误。
语法错误是最基本的错误,常见的有拼写错误、缺少分号等。
逻辑错误则是指程序的逻辑不正确,导致程序无法按照预期的方式执行。
解决方法:1. 仔细检查代码,查找并修复语法错误。
2. 使用调试工具,逐步执行代码,观察程序的执行过程,找出逻辑错误的根源。
3. 采用模块化编程方法,将程序划分为多个相对独立的模块,降低程序的复杂性,便于调试和维护。
二、寄存器配置错误单片机中的寄存器是非常重要的,它们用来存储程序的运行状态和数据。
配置寄存器时,如果设置不正确,可能导致程序无法正常运行。
解决方法:1. 仔细查阅单片机的手册或者数据手册,确保对寄存器的配置有充分的了解。
2. 逐个检查寄存器的配置,确保每个寄存器的值都正确设置。
3. 使用调试工具,观察寄存器的状态,排除配置错误的可能性。
三、时钟设置错误单片机的时钟是程序运行的基础,对于某些需要实时操作的程序尤为重要。
时钟设置错误可能导致程序时序不正确,无法正常执行。
解决方法:1. 确保时钟源的选择正确,并选择合适的分频系数。
2. 配置好时钟控制寄存器,确保时钟的频率满足程序运行的要求。
3. 使用专业的时钟分析工具,对时钟信号进行分析和调试,确保时钟信号的准确性和稳定性。
四、中断处理错误中断是单片机的重要功能,可以实现对外部事件的响应。
如果中断处理错误,可能导致程序的执行流程混乱,无法正常处理中断事件。
解决方法:1. 确保中断向量表的设置正确,每个中断向量都与对应的中断服务程序相对应。
2. 配置中断控制器,使能或禁止某些中断,确保中断的优先级设置正确。
3. 定期检查中断服务程序的正确性,确保程序在中断发生时能够正确响应。
单片机的指令表(最全)单片机的指令表(最全)在单片机编程中,指令表是编程过程中不可或缺的重要参考资料。
它包含了单片机的指令集,能够帮助程序员清晰地了解和使用不同的指令,以实现特定的功能。
本文将为您详细介绍单片机的指令表,包括指令的分类、常用指令的功能及应用示例。
1. 指令表的分类单片机的指令表根据指令的功能和执行方式进行分类。
常见的分类方式有:数据传送指令、算数运算指令、逻辑运算指令、条件跳转指令和无条件跳转指令等。
1.1 数据传送指令数据传送指令用于在寄存器之间传送数据,常见的指令有MOV、LDA、STA等。
例如,MOV指令可以将数据从一个寄存器传送到另一个寄存器。
1.2 算数运算指令算数运算指令用于进行加法、减法、乘法和除法等数值计算操作,常见的指令有ADD、SUB、MUL、DIV等。
例如,ADD指令可以将两个寄存器中的数据相加,并将结果保存在目标寄存器中。
1.3 逻辑运算指令逻辑运算指令用于进行逻辑运算,包括与、或、非、异或等操作,常见的指令有AND、OR、NOT、XOR等。
例如,AND指令可以对两个寄存器中的数据进行与运算,并将结果保存在目标寄存器中。
1.4 条件跳转指令条件跳转指令用于根据特定条件改变程序的执行流程,常见的指令有JZ、JNZ、JC、JNC等。
例如,JZ指令可以在累加器为零时跳转到指定的地址。
1.5 无条件跳转指令无条件跳转指令用于无条件地改变程序的执行流程,常见的指令有JMP、CALL、RET等。
例如,JMP指令可以跳转到指定的地址执行程序。
2. 常用指令的功能及应用示例2.1 MOV指令功能:将一个寄存器或内存的数据传送到另一个寄存器或内存。
示例:MOV A, B ; 将寄存器B的值传送给AMOV R1, #10 ; 将立即数10传送给寄存器R12.2 ADD指令功能:将两个寄存器或内存中的数据相加,并将结果保存在目标寄存器或内存中。
示例:ADD A, B ; 将A和B的值相加,并将结果保存在A中ADD R3, #5 ; 将寄存器R3的值加上立即数52.3 AND指令功能:对两个寄存器或内存中的数据进行逻辑与运算,并将结果保存在目标寄存器或内存中。
常见校验算法一、校验算法奇偶校验(单字节奇偶校验和多字节奇偶校验)MD5校验求校验和BCC(Block Check Character/信息组校验码),常说的异或校验方法CRC(Cyclic Redundancy Check/循环冗余校验)LRC(Longitudinal Redundancy Check/纵向冗余校验)二、奇偶校验内存中最小的单位是比特,也称为“位”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。
不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。
而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。
在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数,那么在校验位定义为1,反之为0。
当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。
从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误三、MD5校验MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc 发明,由MD2/MD3/MD4 发展而来的。
MD5的实际应用是对一段Message(字节串)产生fingerprint(指纹),可以防止被“篡改”。
举个例子,天天安全网提供下载的MD5校验值软件WinMD5.zip,其MD5值是1e07ab3591d25583eff5129293dc98d2,但你下载该软件后计算MD5 发现其值却是81395f50b94bb4891a4ce4ffb6ccf64b,那说明该ZIP已经被他人修改过,那还用不用该软件那你可自己琢磨着看啦。
1.答:系统连接简单:I2C 总线系统的基本结构如图12-7。
I2C 总线系统直接与具有I2C 总线接口的各种扩展器件(如存储器、I/O 芯片、A/D、D/A、键盘、显示器、日历/ 时钟)连接。
I2C 总线对各器件寻址采用纯软件的寻址方法,无需片选线的连接,这样就大大简化了总线数量,系统各部件之间的连接只需两条线。
数据传输速率较高:在标准I2C 普通模式下,数据的传输速率为100kbit/s ,高速模式下可达400kbit/s 。
2.答:I2C 总线的起始信号和终止信号都由主机发出,在起始信号产生后,总线就处于占用状态;在终止信号产生后,总线就处于空闲状态。
由图12-9 见起始信号和终止信号的规定。
(1)起始信号(S)。
在SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,只有在起始信号以后,其他命令才有效。
(2)终止信号(P)。
在SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
随着终止信号的出现,所有外部操作都结束。
3.答:无论I2C 总线上的数据传输方向由寻址字节中的数据传输方向位规定:寻址字节器件地址引脚地址方向位DA3 DA2 DA1 DA0 A2 A1 A0 R/ =1,表示主机接收(读)。
R/ =0,表示主机发送(写)。
4.答:单片机对I2C 总线中的器件寻址采用软件寻址,主机在发送完起始信号后,立即发送寻址字节来寻址被控的从机,寻址字节格式如题 3 所示。
7 位从机地址即为“DA3、DA2、DA1、DA0”和“A2、A1、A0”。
其中“DA3、DA2、DA1、DA0”为器件地址,是外围器件固有的地址编码,器件出厂时就已经给定。
“A2、A1、A0”为引脚地址,由器件引脚A2、A1、A0 在电路中接高电平或接地决定(见图12-12)。
5.答:I2C 总线数据传送时,传送的字节数(数据帧)没有限制,每一字节必须为8 位长。
数据传送时,先传送最高位,每一个被传字节后面都须跟 1 位应答位(一帧数据共9 位),如图12-10。
单片机指令冗余技术 单片机指令冗余技术 通过引用单片机技术,传感器在实际测量中,每当轴转动一周后,就对传感器的输出特性曲线进行定量修正,这样就能基本解决由于被测物体材质的不均匀性给测量结果带来的确定性干扰。
By referencing single-chip computer technology, sensor in actual measurement, whenever axis rotation after a week, it quantitatively correction of sensor output characteristic curve, so it can basically solved due to the inhomogeneity of material object to be tested to measure the results of deterministic disturbance.
在实际工作中,确定性的干扰传感器常常会产生一个确定性的干扰,这是由于传感器的自身结构特点或者外界环境的影响决定的,而这种干扰通常可由单片机来解决。例如电涡流位移传感器在实际的工作中,由于被测物体材料的均匀性和导磁性的不同,会给测量结果带来一定的影响。轴承中轴的位置,需要进行精确的测量,但是由于轴表面不均匀的材质。会使测量变得困难。轴在转动过程中,虽然其位置保持不变, 但传感器仍会有电压的输出,这样得到的测量结果会有很大的误差。由于轴在每次转动中产生的位移保持不变,所以这种干扰也可以说是确定性的。
In practice, a deterministic interference sensor often produces a deterministic disturbance, this is due to their structure characteristics of the sensor or the influence of the external environment, and this kind of interference usually is solved by the single chip microcomputer. Such as eddy current displacement sensor in the actual work, due to the uniformity of material object to be tested and magnetic conductivity, will bring certain influence measurement results. Bearing axial position, need to be measured accurately, but due to the shaft surface uneven material. Will make it difficult to measure. Shaft in the rotation process, although its position remains the same, but the output of the voltage sensor will be, the resulting measurement results will have a lot of errors. Due to the axial displacement of at every turn of remain the same, so the interference is also can be said to be deterministic.
2.2 随机干扰 传感器的工作环境往往是比较恶劣和复杂的,其应用的可靠性、安全性就成为一个非常突出的问题。所以,需要在工作中尽量减少干扰。提高输出信号信噪比的问题,是传感器研究中的最大难题之一。 但是实际上在传感器的使用中,单片机可利用软件来部分消除随机干扰,下面介绍一些在软件抗干扰用到的方法。 2.2.1 指令冗余法 单片机受到干扰后,往往会把操作数当作指令码来执行,引起整个程序的混乱和程序弹飞。如果程序弹飞到某一条单字节指令上时,就不会发生将操作数当成指令的错误,而能自动纳入正轨。当弹飞到双字节或三字节指令的操作时,程序将继续弹飞。因此,在程序中插人几个单字节的空操作指令nop,就可以保护其后面的指令不被拆散而被完整地执行。 2.2.2 软件陷阱法 系统中未使用的单元用跳转引导指令填满,作为软件“陷阱”,以捕获“飞掉”的程序,并强行将捕获的程序引向一个特定的地址,由一段专站处理错误的程序进行处理,以恢复系统的正 常运行。 2.2.3 软件“看门狗,(watch dog)法” watch dog即定时监视器,俗称“看门狗”,当侵人的电磁干扰使系统程序弹飞,或进入死循环,或死机时,watchdog能够帮助系统自动恢复正常运行。 3 在传感器 发展 方面的应用 目前。成熟的传感器品种规格繁多,长期以来。由于传感器的输入输出信号符不相同,其原理和电路也差别较大,使得传感器的标准化工作进度较慢。给传感器的用户带来了很多的麻烦。同时,也不利于传感器及测试仪器的发展和在更广阔领域的应用。但是,随着单片机成本逐渐的降低,运算能力的提高以及体积的减小,会给传感器机及测试仪器的发展带来积极的影响。传感器接收外界的压力信号x并产生一个输出信号y,再由接口电路和a/d模数转换器对其进行处理后,输出可由单片机接收的数字信号y,最后由单片机对其处理后,即可得到经过修正的标准输出yc。一般在标定传感器的过程中,输入校准温度和压力点,然后测出x~y的数据,最后用二元函数插值法来修正传感器的非线性误差。
2.2 random disturbance sensor work environment tend to be more severe and complicated, the application of the reliability, security has become a very prominent problem. So, we need to minimize interference in the work. To improve the SNR of output signal problem, is one of the biggest problems in the study of the sensor. But actually in use of sensor, microcontroller part can use software to eliminate the random disturbance, some used in the software anti-interference methods described below. 2.2.1 instruction redundancy method microcontroller interference, often as the operands of the instruction code to execute, cause the whole program of chaos and fly out. If the program play fly to a a single-byte instruction, the operands as instruction will happen error, and can automatically into the right track. When play to double byte or three bytes instruction operation, program will continue to fly. , therefore, in the program into several single-byte nops instruction nop, can protect the following instructions will not be apart and be fully implemented. 2.2.2 software trap method is not used in the system unit filled with jump boot command, as a software "trap", to capture the "fly away" program, and forced the capture program leading to a specific address, handled by a dedicated stand the wrong application for processing, to resume the normal operation of the system. 2.2.3 software "guard dog, watch dog) method" watch dog regularly monitor, commonly known as "guard dog", when shooting ricochet and electromagnetic interference of the system program, or into an infinite loop, or crash, watchdog can help the system automatically return to normal operation. 3 in application at present. With the development of the sensor Mature sensor specification is various, for a long time. Due to the input and output signals are not the same sensor, the principle and the circuit is also difference is bigger, the sensor of the standardization work progress is slow. For sensor users has brought