单片机程序案例:

要求把06H~09H,20个数据按顺序放入内部数据存储器RAM:10H~23H单元中。

跟电师傅学单片机(13):单片机算术运算类指令图文讲解 跟电师傅学单片机(1)

案例要求示意图

一:程序编程

▶MOV R0,#10H;将单片机内部RAM单元的首地址10H送到工作寄存器 R0中。

▶MOV R1,#14H;将十进制数20(20个数放入20个单元中)转成16进制数14H送到工作寄存器R1中。

▶MOV A,#06H;;将第1个数06H送到单片机累加器A中。

▶LOOP:MOV @R0,A;把单片机累加器A中的内容送到工作寄存器R0里面的内容所确定的地址单元中。

是间接寻址方式。LOOP:是标号,表示程序要循环的意思,指令需要重复执行时,可以使用标号LOOP循环来实现。

▶INC A;加1指令,数据加1,累加器A中的内容加1。例如:刚才是06H,现在加1就是07H。

▶INC R0;加1指令,地址加1,工作寄存器R0里面的内容加1。例如:地址单元10H,现在加1就是11H。

指令判断转移示意图

▶SJMP $;让单片机程序停在此处,也就是程序原地踏步。

二:十进制数转十六进制数

将十进制数20数转成16进制数,采用除16取余法,余数要除到小于16。

就是将十进制数20直接除以16,余数除到小于16。从最后1个余数倒着读到第1个就是16进制数了。

跟电师傅学单片机(13):单片机算术运算类指令图文讲解 跟电师傅学单片机(2)

十进制数转十六进制数示意图

,