❶ 单片机中的add.
A是8位寄存器,最大只能是0FFH。计算后A中是34h,同时进位标志C会被硬件置1,标识刚才的加法产生了进位。
❷ STC单片机的A/D转换值应该如何计算
不会的,满值的时候就是0xff,而不会是256,你可以用一个比满值电压稍大一点点的电压测试便可以看得出效果了侍和橘,然后计算公式是:(寄存老团器值/255)*参考棚腔电压=实际电压
❸ 请教51单片机加法指令!
84H+8DH=111H,因为累加器A是八位的,所以进位标志位Cy置一,A为11H
❹ ADDC是什么意思单片机问题,是不是加一
这是51单片机的一条加法指令,可以完成带进位Cy的加法运算。
指令的形式是:ADDC A ,源操作数,加法是在A 中完成的,加法计算时的两个数一个数是A 中原有的数,另一个数即是源操作数,同时连同进位Cy一起加进来。
还是举例说明吧:如计算56A8H+2368H,这么写程序:
MOV A , #0A8H ;先把第一个数的低8位A8H送A
ADD A , #68H ;与另一个数的低8位相加,即A(A8H)+68H,加法结果是A=10H,因结果超过了255(FFH)则进位Cy=1,即结果是110H
MOV 30H, A ;把低8位结果送到30H单元保存起来
MOV A , #56H ;再把第一个数的高8位送A,准备计算高8位数
ADDC A,#23H ;与另一个数的高8位相加,这时要同时把低8位的进位Cy=1加进来,即A(56H)+23H+1(因Cy1),则A=7AH,
MOV 31H, A ;最后将高8位的计算结果送到31H单元保存。最终结果是7A10H,这必须要计算两次,也要用两个单元来保存。
如上可见,先计算低8位时,用ADD,是不带进位,因低8位加时还没有进位,而计算高8位时,就必须带进位的加法了,必须用ADDC了,因低8位加时有进位,假如没有进位,也要用ADDC,但这时的Cy=0,加上0就是低8位没有进位。
还有一种情况是多个8位数相加,因相加的结果超过了8位数(255),所以,每一次加法也必须用带进位加法计算,即必须用ADDC了。
❺ 单片机定时器初值计算方法有哪些
呵呵 正确为你解答:
1 可以按定时时间的计算公式, 计算出定时器的时间常数X:
定时时间T=(2的N次方-X)12/单片机晶振频率
2 N为定时器的工作方式:
方式0时,N=13
方式1时,N=16
方式2时,N=8
3 根据定时时间和工作方式,计算出时间常数X
把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时了。
例如: 工作在方式1,定时时间为1000微秒 晶振频率=12MHZ
则 定时时间T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H
呵呵 如满意 请选择满意回答
❻ 单片机的加法指令中ADD与ADDS的区别
ADD不带进位加法指令;
指令名称:寄存器加法指令
指令代码:28H~2FH
指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn), n=0~7 字节数: 1
机器周期:1
影响标志位:C,AC,OV
ADDS是32位数的加法运算,影响进位标志位C而不影响运算结果的值,ADCS是大于32位数的加法,低32位数相加的结果影响标志位C的值(作为进位值)就得加到高32位数的相加运算里去,以此类推,可做高32数的加法。
例: 加两个 128 位的数
128 位结果:寄存器 0,1,2, 3
第一个 128 位数: 寄存器 4,5,6,7
第二个 128 位数: 寄存器 8,9,10,11
ADDS R0, R4, R8 ; 加低端的字,影响C
ADCS R1, R5, R9 ; 加下一个字, +C
ADCS R2, R6, R10 ; 加第三个字, +C
ADCS R3, R7, R11 ; 加高端的字, +C
❼ 单片机加法add和addc到底是怎样运算的
ADD m,n m=m+n
ADDC m,n m=m+n+C
❽ 单片机加法指令
假定(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位,果断溢出)
❾ 单片机定时器定时的时间怎么算
单片机的定时时间的计算公式=计数值(定时值)* 机器周期= 计数值(定时值)* 12 / 晶振频率。
上面的两个等号是等价的,因为,单片机的机弊顷器周期=12秒/晶振频率,因此两个公式通用。
完成一个基本租桐陆操作所需要的时间称为机器周期。一般,轮渗一个机器周期由 若干个S周期(状态周期)组成。80C51系列单片机一个机器周期由6个S周期组成。一个S周期(状态周期),由2个时钟周期组成。
若干个机器周期,组成了指令周期。根据指令不同,所需的机器周期数也不同。
(9)单片机add计算公式扩展阅读
几种典型指令;
1、单字节周期指令(比如 INC A)
2、双字节单周期指令(比如 ADD A,#data)
3、单字节双周期指令 (比如 INC DPTR)
4、单字节双周期指令 (比如MOVX A @DPTR)
❿ 单片机定时器计算
计算定时器,最原始的公式是(65536-初值)*12/晶振值=定时的时间,由此式子推出:初值=65536-(晶振值*定时时间/12)。则TH0=初值/256,TL0=初值%256,最终结果就是
TH0
=
255-CLOCK/TIME_PER_SEC/12/256;
TL0
=
255-CLOCK/TIME_PER_SEC/12%256;
其中除以TIME_PER_SEC,是因为TIME_PER_SEC表示要定时的时间的倒数。