单片机流水灯c程序

 

/*单片机流水灯c程序*/
/*本程序中流水灯为共阳极*/
#include <reg51.h>
#include <intrins.h>//51c语言中的头文件:是将第一个参数循环左移n位
#define uchar unsigned char
#define uint unsigned int

//最初算的时候,是按照xms*111(如1*111=111us=0.111ms可是还要加上判断周期,减减周期,是最终的时间按达到1ms)
void delay(uint xms)
{
   uint i,j;                   //(仿真过的),此程序延时x‘ms’
   for (i=xms;i>0;i--)     //这个延时时间是按照12M的晶振来推算出来的,此时一个机器周期是1us
      for(j=111;j>0;j--)   
                 ;
}

 

void main()
{
    unsigned char LED;
    LED=0xfe;     //不能直接把0xfe付给P0口,因为如果直接付给的话,PO口就是一个固定的值,没法进行位的移动
    P0=LED;
    while(1)
    {

           delay(500);     //延时500ms
           LED=_crol_(LED,1);//循环左移1位,点亮一个LED 
           P0=LED;
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值