51单片机实现流水灯

#include "reg52.h"
typedef unsigned int u8;//对系统默认数据类型进行重命名
void delay_10us(u8 ten_us)//延迟函数
 {
   while(ten_us--)
 }
void main()
{
  unsigned char a=0x01;
  while(1)
  {
   if(a==0x00)
     {
       a=0x01;
       }
      P2=a;
      a=a<<1;
     delay_10us;
   }
}

第二种

#include "reg52.h"
#include "intrins.h"

void main()
{
  u8 i=0;
  LED_PORT=~0X01;
  delay_10us(50000);
  while(1)
   {
      for(i=0;i<7;i++)
        {
          LED_PORT=_crol_(LED_PORT,1);//将led左移一位
          delay_10us(50000);
        }
      for(i=0;i<7;i++)
        {
          LED_PORT=_cror_(LED_PORT,1);//将led右移一位
          delay_10us(50000);
        }
     }
}

说一下我在流水灯里遇到的困难:

1.端口P2.0在程序中应该表示为P2^0,千万不要打成p2^0

2.用stc-isp烧录时总是显示”正在检测单片机“,解决办法:开始前不接通电源(不按POWER),点击下载/编程后,再接通电源(按下POWER键),或者是你的单片机型号选择选错了,是STC89C52RC就不要选成STC89C52。

3.一个keil软件的问题,keil5中一般没有51芯片要自己加进去,要学习51单片机的最好下4版本(我也不知道这样说对不对,哈哈,你们自行辨认吧)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值