查看: 1353|回复: 0
打印 上一主题 下一主题

实验13-上下来回的流水灯

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-5 16:17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

void DelayMS(uint x)
{
        uchar t;
        while(x--)
        {
                 for(t=120;t>0;t--);
        }
}

void main()
{
        uchar i;
        P0=0xFE;
        while(1)
        {
                 for(i=7;i>0;i--)
                {
                        P0=_crol_(P0,1);
                        DelayMS(550);
                }
                for(i=7;i>0;i--)
                {
                         P0=_cror_(P0,1);
                        DelayMS(550);
                }
        }
}

2
/********************************************************************
                            佳和科技
                                          
*********************************************************************/
//实例6:上下来回的流水灯:

#include<reg52.h>                 //包含单片机寄存器的头文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/
uchar temp;           //定义字符型变量
uchar a,b,i;
/********************************************************************
                            延时函数
*********************************************************************/
void delay()//延时程序
{
uchar m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
                            主函数
*********************************************************************/
main()
{
while(1)          //无限循环
{
temp=0xfe; //11111110定义每次一个灯亮
P0=temp;//直接对1/0口赋值,使批输出低电平。
delay();//延时

/**********************************
       LED从移动上到下移动
***********************************/

for(i=1;i<8;i++)//实现LED的从右到左移动
{
a=temp<<i;                //左移i位
b=temp>>(8-i);        //右移8-i位
P0=a|b;//按位或
delay();
}

/**********************************
       LED从移动下到上移动
***********************************/

for(i=1;i<8;i++)//实现广告灯的从左到右移动
{
a=temp>>i;            //右移i位
b=temp<<(8-i);  //左移8-i位
P0=a|b;//按位或
delay();
}
}
}       
       
/********************************************************************
                              结束
*********************************************************************/




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表