您的位置:慕斯娱乐 > 编程语言 >
编程语言

单片机学习:单片机编程入门十一

2019-01-09作者:admin来源:未知次阅读

  用处很简单,便是将后方方针中的值加1。例:(A)=12H,(R0)=33H,(21H)=32H,(34H)=22H,DPTR=1234H。实行下面的指令:

  判辨:从结局上看INC A和ADD A,#1差不多,但INC A是单字节,单周期指令,而ADD #1则是双字节,双周期指令,况且INC A不会陶染PSW位,如(A)=0FFH,INC A后(A)=00H,而CY还是保持不变。假如是ADD A ,#1,则(A)=00H,而CY一定是1。是以加1指令并不适宜做加法,结果上它枝节是用来做计数、所在弥补等用讲。另表,加法类指令都因而A为主旨的个中一个数必须放正在A中,而运算收场也无须放正在A中,而加1类指令的目标则宏大得多,可于是寄放器、内存地点、间址寻址的住址等等。

  理会:由于51单片机是一种8位机,所以只能做8位的数学运算,但8位运算的规模惟有0-255,这正在实际事迹中是不敷的,是以就要举办扩张,片面是将2个8位的数学运算关起来,成为一个16位的运算,云云,或许表达的数的界限就也许抵达0-65535。怎么归并呢?本来很浅易,让咱们看一个10进造数的例子:

  这两个数相加,咱们根蒂不介怀这的进程,但终于上咱们是云云做的:先做6+8(低位),尔后再做6+7,这是高位。做了两次加法,但是大家们做的时候并没有决定分幼两次加法来做中断,惧怕说所有人们并没有心识到咱们做了两次加法。之所以要分幼两次来做,是原因这两个数越过了一位数所能表示的范置(0-9)。

  在做低位时隐藏了进位,咱们做的时候是在闭适的名望点一下,然后在做高位加法是将这一点加进去。那么预计机中做16位加法时同样这样,先做低8位的,倘若两数相加闪现了进位,也要“点一下”做个标记,阿全部人象征即是进位位C,在PSW中。正在实行高位加法是将那个C加进去。例:1067H+10A0H,先做67H+A0H=107H,而107H较着超越了0FFH,以是最初毁灭在A中的是7,而1则到了PSW中的CY位了,换言之,CY就很是因此100H。然后再做10H+10H+CY,到底是21H,于是结果的收场是2107H。

  领会:很众不带借位的减法指令,倘若必要做不带位的减法指令(在做第一次相减时),只须将CY清零即可。

  此指令的功效是将A和B中的两个8位无符号数相乘,两数相乘究竟一般比力大,以是结尾终局用1个16位数来剖明,其中高8位放正在B中,低8位放在A中。在乘积大于FFFFFH(65535)时,0V置1(溢出),不然OV为0,而CY一贯0。

  MUL AB后,乘积是1C56H,是以正在B中放的是1CH,而A中放的则是56H。

  此指令的出力是将A中的8位无象征数除了B中的8位无符号数(A/B)。除法局部会呈现大量,但估量机中可没法直接表白大量,它用的是他们们小传授还没干戈到寡数时用的商和余数的概念,如13/5,其商是2,余数是3。除了往日,商放正在A中,余数放在B中。CY和OV都是0。借使正在做除法前B中的值是00H,也即是除数为0,那么0V=1。

  先写出每步运转到底,编程语言尔后将以上标题筑入,并在软件仿真中运行,张望存放器及有合单元的内容的变化,是否与自已的预见到底同等。

单片机学习:单片机编程入门十一 相关的内容:

关于 单片机学习:单片机编程入门十一 的评论