【单片机】请用C语言写一个超级简单的单片机程序。万分感谢!!
(1)在片内RAM的10H单元存放一个8位无符号二进制数,要求将其每一位转换成相应的ASCII码,并以高位在前,低位在后的顺序依次存放到片内RAM以11H单元为首的连续单...
(1)在片内RAM的10H单元存放一个8位无符号二进制数,要求将其每一位转换成相应的ASCII码,并以高位在前,低位在后的顺序依次存放到片内RAM以11H单元为首的连续单元中,编写该程序的C51程序(C语言)。
以下程序为该程序的汇编程序(请编写C51程序)
ORG 0000H
AJMP START
ORG 0100H
START:
MOV R2,#08H
MOV R0,#10H
MOV A,@R0
INC R0
XUNHUAN:
RLC A
JC LOOP1
MOV @R0,#30H
AJMP LOOP2
LOOP1:
MOV @R0,#31H
LOOP2:
INC R0
DJNZ R2, XUNHUAN
LOOP:SJMP LOOP
END
提示:要判断一个字节中第i位(i=7-0)的值是0或1,可用第i位值为1的字节数与之按位相与,若结果为0,表明该位为0,反之为1。例如:数0x82,即10000010,要判断第7位的值,可将0x82与0x80(即10000000,第7位为1)按位相与,结果不为0,所以0x82的第7位值为1。.
要在片内RAM 0x11地址连续存放转换后的ASCII码,可定义一个指向无符号单字节数的指针,将该指针的初值设为0x11,后在循环体内加1即可。 展开
以下程序为该程序的汇编程序(请编写C51程序)
ORG 0000H
AJMP START
ORG 0100H
START:
MOV R2,#08H
MOV R0,#10H
MOV A,@R0
INC R0
XUNHUAN:
RLC A
JC LOOP1
MOV @R0,#30H
AJMP LOOP2
LOOP1:
MOV @R0,#31H
LOOP2:
INC R0
DJNZ R2, XUNHUAN
LOOP:SJMP LOOP
END
提示:要判断一个字节中第i位(i=7-0)的值是0或1,可用第i位值为1的字节数与之按位相与,若结果为0,表明该位为0,反之为1。例如:数0x82,即10000010,要判断第7位的值,可将0x82与0x80(即10000000,第7位为1)按位相与,结果不为0,所以0x82的第7位值为1。.
要在片内RAM 0x11地址连续存放转换后的ASCII码,可定义一个指向无符号单字节数的指针,将该指针的初值设为0x11,后在循环体内加1即可。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询