51单片机流水灯用c语言,51单片机之流水灯(C语言和汇编两个版本)

c语言

#include

typedef unsigned char uint8;

sbit ADDR0=P1^0;

sbit ADDR1=P1^1;

sbit ADDR2=P1^2;

sbit ENLED0=P1^4;

sbit ENLED1=P1^3;

uint8 i;

uint8 j;

void delay()

{

for(i=0;i<255;i++)

{

for(j=0;j<255;j++)

{

}

}

}

uint8 x;

void Main()

{

ENLED0=0;ENLED1=1;

ADDR0=0;ADDR1=1;ADDR2=1;

x=1;

while(1)

{

P0=~x;

delay();

if(0x80==x)

{

x=1;

}

else

x=x<<1;

}

}

汇编:

org 00H

ajmp start

org 30H

start:

/*为流水灯发亮做好准备工作*/

//1.使ENLEDS=0----

clr P1.4

setb P1.3

setb P1.2

setb P1.1

clr  P1.0

//汇编位定义的使用,上面的几句话就等效于下面的六行代码

//sbit ADDR0=P1.0

//sbit ADDR1=P1.1

//sbit ADDR2=P1.2

//setb ADDR2

//setb ADDR1

//clr  ADDR0

mov A,#1H

mov P0,A

main:

cpl A

mov P0,A

lcall delay

cpl A

rl A

ajmp main

delay:

mov R1,#1H

loop1:

mov R2,#0FFH

loop2:

mov R3,#0FFH

loop3:

djnz R3,loop3

djnz R2,loop2

djnz R1,loop1

ret end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值