1.汇编源程序
ORG 0000H
AJMP MAIN
MAIN: MOVR0,#32 ;循环次数32次
MOV R1,#40H ;首址
MOV A,#0H ;要存入地址的值
SJMP LOOP
LOOP: MOV@R1,A ;A->(40H)
MOV P1,@R1 ;P1输出(40H)值
DELAY: MOVR3,#10 ;延时1秒
D1: MOVR4,#200
D2: MOVR5,#250
D3: DJNZR5,D3
DJNZ R4,D2
DJNZ R3,D1
INC R1 ;R1指向下一地址
ADD A,#05H ;A+5->A
DJNZ R0,LOOP ;是否达到循环次数,没有则继续循环
END
2.C51源程序
#include<REG51.h>
/*延时程序*/
void delay(int n)
{
inti,j;
for(;n>0;n--)
{
for(i=0;i<500;i--)
for(j=0;j<250;j--);
}
}
void main(){
int len;
unsigned char data *ptr;
unsigned int n;
n=0x00;
ptr=0x40;
for(len=0;len<32;len++)//将0,5,15……155依次填入以40H为首地址的32个单元格里。
{
*ptr=5*n;
n++;
ptr++;
}
ptr=0x40;
for(len=0;len<32;len++)//将以40H为首地址的32个单元格里的数据依次输出。
{
P1=*ptr;
ptr++;
delay(1);
}
}
|