不会,请各位做一下,写出程序来。
51单片机(C语言版)的 ヽ(゚∀゚)ノ!
///3
#inlude<reg51.h>
void main()
{
char a;
for(a = 0; a < 8; a++)
{
P1 = 1 << a;
}
while(1){}
}
///4
#inlude<reg51.h>
#include<absacc.h>
void main()
{
char a;
for(a = 0; a < 16; a++)
{
P0 = DBYTE[0x20 + a];
}
while(1){}
}
2题做一起,自行分开即可。
问题3
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int i;
for(i=1;i<=128;i*=2)
cout<<i<<” “;
getch();
}
问题4
MOV R0,#20H
MOV R1,#03H;用于控制循环次数
MOV DPTR,#20H
LOOP:
MOV A, @R0
MOVX @DPTR , A
INC R0;片内RAM地址加一
INC DPTR;外部RAM地址加一
DJNZ R1,LOOP;未循环完3次,跳回继续移数值
SJMP $;停止
END
编程将片外RAM的1000H单元开始的100个字节的数据相加,结果存放于R7R6中:
MOV R6, #0
MOV R7, #0
CLR C;必须先将CY(进位标志)清零
MOV DPTR, #1000H
MOV R2, #100
LOOP:
MOVX A, @DPTR
ADD A, R6
MOV R6, A;存储低8位
JC ADD2;CY为一的话,跳转到ADD2,使R7加一(即低8位有进位的话,高8位要加一)
INC DPTR
DJNZ R1, LOOP
SJMP $
ADD2:
INC R7;R7存储高8位
RET
END
【仅供参考】