打印
[应用相关]

分享2个简单的单片机跑马灯

[复制链接]
777|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
/********************************************************************
21电子论坛  
*********************************************************************/
#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()
{
while(1)
{
temp=0xfe; //11111110定义每次一个灯亮
P3=P2=P0=P1=temp;//直接对1/0口赋值,使批输出低电平。
delay();//延时
for(i=1;i<8;i++)//实现广告灯的从右到左移动
{
a=temp<<i;                //左移i位
b=temp>>(8-i);        //右移8-i位
P3=P2=P0=P1=a|b;//相与求值
delay();
}
for(i=1;i<8;i++)//实现广告灯的从左到右移动
{
a=temp>>i;            //右移i位
b=temp<<(8-i);  //左移8-i位
P3=P2=P0=P1=a|b;//相与求值
delay();
}
}
}        

/********************************************************************
                              结束
*********************************************************************/
单片机流水灯源程序:


/********************************************************************
21ic电子论坛
*********************************************************************/
#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)
        {
                P3=P2=P0=P1=temp;//直接对1/0口赋值,使批输出低电平。
                delay();//延时
                for(i=1;i<8;i++)//实现广告灯的从右到左移动
                        {
                                a=temp<<i;                //左移i位
                                P3=P2=P0=P1=a;//相与求值
                                delay();
                        }
        }
}        
        
/********************************************************************
                              结束
*********************************************************************/



沙发
laozhongyi| | 2016-10-23 15:56 | 只看该作者
看程序也不明白呀?楼主有电路图吗??

使用特权

评论回复
板凳
wanglaojii|  楼主 | 2016-10-23 16:05 | 只看该作者
附上对应的仿真图

165244f6gwjatwttaz6smj.png (34.64 KB )

165244f6gwjatwttaz6smj.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

220

主题

1411

帖子

1

粉丝