上述为仿真元器件原理图
在我多次尝试中有几次未连接AT89C51芯片左边部分,直接烧录文件也可以正常运行。
(主要是protues与Keil两个软件首次接触,还比较难使用)
c语言代码如下
#include "reg52.h"
typedef unsigned int ui;
typedef unsigned char uc;
uc code led[8]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
void delay(ui t)
{
ui x,y;
for(x=0;x<t;x++)
{
for(y=0;y<250;y++);
}
}
void main()
{
while(1)
{
ui i;
for(i=0;i<8;i++)
{
P2=led[i];
delay(300);
}
}
}
汇编代码如下:
ORG 0000H
AJMP START ;注意这两行语句;单片机开机后先运行0000H号地址的
;代码,有此才能正常运行
ORG 0030H
START:
MOV R6,#0
CLR A
LOOP:
ACALL DELAY
MOV DPTR,#0300H
MOV A,R6
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
INC R6
CJNE R6,#8,LOOP
MOV R6,#0
AJMP LOOP
DELAY: ;此处为延时程序
MOV R3,#200
d2: MOV R2,#250
d1: DJNZ R2,d1
DJNZ R3,d2
RETORG 0300H
TAB:
DB 0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80END