中科因仑“3+1”工程特种兵精英论坛

标题: 实验12-从上到的下流水灯 [打印本页]

作者: 张衍波    时间: 2015-5-5 16:13
标题: 实验12-从上到的下流水灯
1
/********************************************************************
                            佳和科技
*********************************************************************/
//实例5:从上到的下流水灯:认识左移

#include <reg52.h>                         //包含单片机寄存器的头文件
#include <intrins.h>
#define uchar unsigned char         //宏定义无符号字符型
#define uint unsigned int         //宏定义无符号整型

/********************************************************************
                            延时函数
*********************************************************************/
void DelayMS(uint x)
{
        uchar i;
        while(x--)
        {
                 for(i=120;i>0;i--);
        }
}

/********************************************************************
                            主函数
*********************************************************************/
void main()
{
        P0 = 0xFE;                                 //11111110定义每次一个灯亮
        while(1)                                 //无限循环
        {
                 P0 = _crol_(P0,1);
                DelayMS(550);                 //延时
        }
}
/********************************************************************
                              结束
*********************************************************************/

2
/********************************************************************
                            佳和科技
*********************************************************************/
//实例5:从上到的下流水灯:认识左移

#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--);
}


/********************************************************************
                            主函数
*********************************************************************/
void main()
{
        temp=0xfe; //11111110定义每次一个灯亮
        while(1)   //无限循环
        {
                P0=temp;//直接对P0口赋值,使批输出低电平。
                delay();//延时
                for(i=1;i<8;i++)//实现广告灯的从右到左移动
                        {
                                a=temp<<i;                //左移i位
                                P0=a;//相与求值
                                delay();
                        }
        }
}       
       
/********************************************************************
                              结束
*********************************************************************/



[attach]2668[/attach]






欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4