导航:首页 > 操作系统 > 单片机累加器计算方法

单片机累加器计算方法

发布时间:2022-06-27 04:00:23

单片机如何计算初值

一般最直接的想法就是,指定一个计时值x,然后从0开始累加计数,计数到x表示时间到,可以处理事务了。这种处理方法,需要一个数值比较器,每计一次数,就比较一下。这对单片机或者说硬件电路来讲,一个8位计数器就需要包含一个8位数值比较器,实在不够简便。

第二种想法,是指定一个计时值x,然后进行减计数,减计数到0表示时间到。这也要一个比较器,只不过是个0值比较器,硬件电路上比上一种要简单一些,但减计数器还是不常用。我们知道累加器才是最简便的硬件电路之一。

上面两种方法,都是软件实现的定时器的合理想法。那么硬件电路实现定时最简便的方法是什么呢?

那就是用累加器来实现。比如一个8位的累加器,可以从0累加计数,计数到256时溢出,产生溢出信号,就可以触发事务处理了。

要是我们只需要计数10次就够了,则可以将计数初值定义为246。那样,计数10次后就可以达到256,产生溢出信号了。

所以就有了(2^n-x)。n是计数器的位数;2^n就是最大计数值;x是计数初值。整个这段,表示我们需要的计时次数。

计数器每次计数的时间间隔是t,及计数周期。那么总的计时时长m=计数周期×计数次数=t×(2^n-x),也就是m=(2^n-x)×t。

计数位数n由选用的单片机确定,通常等于8,12,16或32等等,即8位、12位等计数器。计数周期t由定时器基础时钟确定,可通过设置定时器时钟源和选择时钟分频数确定。这两项灵活性不大,一般在程序初始化时就应设定。

初值x可以在应用时,根据定时需求进行修改确定。

协调好n,t和x三者的设定,就可以完美实现定时功能了。

㈡ 关于单片机汇编程序 累加器a

cpu内部结构!辅助运算器工作的编码器!节约时间的,程序在处理的时候从累加器A简称ACC,累加器A为8位寄存器,通过暂存器与ALU相连,是最常用的寄存器,功能较多,既可以存放操作数,也可以存放中间结果,一些双操作数指令中!

㈢ 单片机的计算

A 累加器
RO R1 R2 R3 R4 R5 R6 R7 通用寄存器 有四组
30H 普通寄存器 地址为30H
PSW即程序状态字,Program Status Word程序状态寄存器

XCHD 交换数据 @R0 以R0内容为地址,再取地址内数据
SWAP 高低半字节交换

装个KEIL C51 或者 伟福 , 程序输入,单步调试一下
不然怎么也学不会的。

㈣ 单片机中的逻辑运算怎么算的

在逻辑代数中,有与、或、非三种基本逻辑运算。表示逻辑运算的方法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。逻辑运算通常用来测试真假值。最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。

累加器A清0指令。

CLR A;单片机软件指令功能是将累加器A中的内容清0。影响单片机标志寄存器PSW中的奇偶标志位P。

累加器A取反指令。

CPL A;单片机软件指令功能是将累加器A中的内容全部取反,结果送回A中。影响单片机标志寄存器PSW中的奇偶标志位P。

常用于单片机某个存储器单元或某个存储器区域中带符号数的求补。

RL A;左循环移位指令:

单片机软件指令功能是将累加器A的8位二进制数向左移动1位,累加器A中最左边1位(即最高位A.7)移至最右边1位(即最低位A.0)。不影响单片机标志寄存器PSW中的标志位。

RR A;右循环移位指令:

单片机软件指令功能是将累加器A的8位二进制数向右移动1位,累加器A中最右边1位(即最低位A.0)移至最左边1位(即最高位A.7)。不影响单片机标志寄存器PSW中的标志位。

RLC A;带进位左循环移位指令:

单片机软件指令功能是将累加器A的8位二进制数和进位CY向左移动1位,累加器A中最左边1位(即最高位A.7)移至CY,CY原内容移至累加器A的最右边1位(即最低位A.0)。影响单片机标志寄存器PSW中的进位标志位CY。

RRC A;带进位右循环移位指令:

单片机软件指令功能是将累加器A的8位二进制数和进位CY向右移动1位,累加器A中最右边1位(即最低位A.0)移至CY,CY原内容移至累加器A的最左边1位(即最高位A.7)。影响单片机标志寄存器PSW中的进位标志位CY。

(4)单片机累加器计算方法扩展阅读:

逻辑运算组成部分

Boolean(布尔运算)的参数面板可分成三部分。

布尔运算练习模型:骰子

Pick Boolean(拾取布尔运算对象)卷展栏

该卷展栏用来拾取运算对象B,如图所示。

在布尔运算中,两个原始对象被称为运算对象,一个叫运算对象A,另一个叫运算对象B。在建立布尔运算前,首先要在视图中选择一个原始对象,这时Boolean按钮才可以使用。进入布尔运算命令面板后,单击Pick Operand B命令按钮来选择第二个运算对象。

· Pick Operand B(拾取运算对象B):单击该按钮,在场景中选择另一个物体完成布尔合成。其下的4个选项用来控制运算对象B的属性,它们要在拾取运算对象B之前确定。

· Reference(参考):将原始对象的参考复制品作为运算对象B,以后改变原始对象,也会同时改变布尔物体中的运算对象B,但改变运算对象B,不会改变原始对象。

· Copy(复制):将原始对象复制一个作为运算对象B,而不改变原始对象。当原始对象还要作其他之用时选用该方式。

· Move(移动):将原始对象直接作为运算对象B,它本身将不再存在。当原始对象无其他用途时选该用方式。该方式为默认方式。

· Instance(关联):将原始对象的关联复制品作为运算对象B,以后对两者中之一进行修改时都会同时影响另一个。

Parameters(参数)卷展栏

该卷展栏参数可分为三个区域,如图所示。

Operands(操作对象)选项组

该组参数用来显示所有的运算对象的名称,并可对它们作相关的操作。

Operands List(操作对象列表):该列表框中列出所有的运算对象,供编辑操作时选择使用。

Name(名称):显示列表框中选中的操作对象的名称。可对其进行编辑。

Extract Operand(提取运算对象):它将当前指定的运算对象重新提取到场景中,作为一个新的可用对象,包括Instance(关联)和Copy(拷贝)两种属性。这样进入了布尔运算的物体仍可以被释放到场景中。只有从其上方的列表框中选择一个操作对象后才能激活该按钮。

㈤ 单片机逻辑运算

第一步:
ANL是逻辑与运算
就是说第一步是A与47H里的内容34H进行与运算。 A=10000011 34H=00110100
与运算特点是有“0”则0 运算结果为00000000=00H 此时累加器A中内容为00H
第二步:
ORL是逻辑或运算
这部分是第一部分运算出来的A与47H地址里的34H进行或运算,得出的结果存放在47H单元中。 A=00H=00000000 47H=00110100 或运算特点是有“1”则1
所以运算结果为00110100=34H运算后47H地址中的内容为34H
第三步:
XRL是逻辑异或指令
R0前面的@说明寻址方式是寄存器寻址。特点是将R0中的内容作为地址,在从此地址中寻找出对应的内容作为R0的内容。题干中说到(R0)=47H 就是R0中的内容为47H @R0就是以R0中的内容47H为地址,找出对应的内容。上一部分已经知道了47H里的内容为34H。回到第三步来,就相当于XRL A,34H A=00H=00000000 34H=00110100 逻辑异或运算的特点是相同则为0,不同则为1,所以结果为00110100=34H 此时累加器A中的内容为34H
第四步:
SWAP是高低四位数据值互换(如果是8位的话) 就是将00110100前四位与后四位互换,换完后还是01000011=43H 最后A中内容为43H

参照下面那位大哥,改过来了,要不误导人咯~~呵呵

㈥ 如果累加器A正在被使用,如何做加法呢

累加器A时刻都在被使用,可还是照样要用A做各种运算。有一点,你要清楚,不论是不是A做运算,单片机在每一时刻都只能做一件事,即只能执行一条指令。所以,A正在被使用,就不能做加法。方法一是等A当前的任务执行完再去做加法运算。方法二是,必须立即做加法,就暂时保存A的当前值,去做加法,加法结束恢复A的值继续原任务,相当于中断,在执行中断程序前要保护现场。

㈦ 单片机,累加器A计算-1加1 ,计算后A里面为0吗

0FE对应的二进制数应该为11111110吧?所以11111110+1=11111111,即0xFE+0x01=0xFF。

无符号数255(FF)在有符号时的值就是-1,而你们说的FE对应的值是-2;所以在A中的-1应该是0xFF,加上1之后变为0(0x00),相当于255+1=256(11111111+1=100000000),A中的值变为0x00,进位标志CY=1。

2L的请在复习一下“计算机接口原理”中的知识吧,计算机中都用的是补码而不是原码。

㈧ 单片机加法指令

假定(A)=85H (R0)=20H (20H)=OAFH。执行指令 ADD A, @RO 后,累加器A的内容为(0X34 ),CY的内容为(1 ),AC的内容为(1 ),AC的内容为( 1),0V的内容为(1 )。

我的回答都是以8位单片机为准。这个指令功能就是取单元20H的值AFH与85H相加,
结果本来应该是134H,没办法,8位嘛,所以:
CY:进位标志位;
当CY=1时,表示操作结果最高位(位7)有进位或借位。
CY=0时,表示操作结果最高位(位7)没有进位或借位。
(最高位有进位,CY=1)
AC:半进位标志位;
该位表示当进行加法或减法运算时,低半字节向高半字节是否有进位或借位;
当AC=1时,表示低半字节向高半字节有进位或借位;
AC=0时,表示低半字节向高半字节没有进位或借位;
(低半字节F+5=14,有进位,AC=1)
OV:溢出标志位,
该位表示在进行有符号数的加减法时是否发生溢出;
当0V=1时,表示有符号数运算结果发生了溢出,
OV=0时,表示有符号数运算结果没有溢出。
(超出8位,果断溢出)

㈨ 运用单片机基础知识解决:用两种方法实现累加器A与寄存器B的内容交换

方法1:
使用交换指令XCH
XCH A, 0F0H ;XCH指令的操作数一个为累加器A,另一个为直接地址,B的地址是0F0H

方法2:
借助栈
PUSH ACC
PUSH 0F0H
POP ACC
POP 0F0H

方法3:
借助另外一个寄存器

MOV R2, A
MOV A, 0F0H
MOV 0F0H, R2

我暂时想到这些,希望对你有帮助。

㈩ 单片机中的累加器怎么只对高四位或低四位进行左移或右移

把数据存在个寄存器里面。该数据在累加器中删去高4位(可以用逻辑运算)。再移动4位。存入一个单元格a,再调出该数据删去低4位。在把累加器与单元格a的数据相加即可。

阅读全文

与单片机累加器计算方法相关的资料

热点内容
cnc手动编程铣圆 浏览:720
cad中几种命令的意思 浏览:324
oraclelinux安装目录 浏览:133
安卓系统可以安装编译器吗 浏览:570
javajson实体类 浏览:690
板加密钢筋是否取代原钢筋 浏览:66
学习编程的思路 浏览:230
app易语言post怎么学 浏览:965
地梁的箍筋加密区位置 浏览:302
二分法排序程序及编译结果 浏览:679
日语命令形和禁止型 浏览:285
安装软件用管理员解压 浏览:505
编译原理代码块 浏览:400
小孩可以用压缩面膜吗 浏览:14
锥形倒角怎么计算法 浏览:883
java合并链表 浏览:508
pic单片机编译器 浏览:806
丽水四轴加工中心编程 浏览:691
国产系统怎么解压 浏览:554
战双程序员 浏览:485