流水灯控制系统--C51单片机

1e80483bc7384faaaee18659db9a170a.png

上述为仿真元器件原理图

在我多次尝试中有几次未连接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
RET

ORG  0300H
    TAB:
DB 0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80

END

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值