打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机8位流水灯程序设计的3种方法

  一、采用定义数组的方式进行LED灯流水灯调试:
#include<reg52.h>
unsigned char table[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};
void delayms(unsigned int a)
{
  unsigned int i,j;
  for(j=a;j>0;j--)
   for(i=125;i>0;i--);
}

void main()
{
 while(1)
  {
   unsigned char b;
   for(b=0;b<8;b++)
    {
      P1=table[b];
      delayms(1000);
    }
  }
}
程序编译通过,PRoteus仿真实现功能。
 
 

二、采用移位函数的方式进行LED灯流水灯调试:
#include <reg52.h>  
#include <intrins.h>  
  
char temp;  
void delay(unsigned int m)  
{
unsigned int i,j;
for(j=m;j>0;j--)
for(i=125;i>0;i--);
}

void main()  
unsigned char i;
temp=0xfe;  
    P1=temp;   
    while(1)  
{
        temp=_crol_(temp,1);   
        delay(300);  
        P1=temp;
    }  
}

程序编译通过,实现跑马灯循环效果,所使用的crol函数为移位专用函数,还可使用cror实现右移。
此外,还可使用>>  <<移位符进行流水等程序设计。
3、实现8位流水灯来回跑动效果
程序如下:
    #include <reg52.h>  
#include <intrins.h>  
  
char temp;  
void delay(unsigned int m)  
{
unsigned int i,j;
for(j=m;j>0;j--)
for(i=125;i>0;i--);
}
void main()  
unsigned char i;
temp=0xfe;  
    P1=temp;   
    while(1)  
    {  
for(i=7;i>0;i--)
{
        temp=_crol_(temp,1);   
        delay(300);  
        P1=temp;
    }  
for(i=7;i>0;i--)
{
temp=_cror_(temp,1);
delay(300);
P1=temp;
}
}
}


程序编译通过,仿真实现预期效果。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
多种方法用51实现LED流水灯,举一反三程序举例,一篇文章就够了!
单片机C语言“_crol_” 与“_cror_”的用法
单片机流水灯(自带)
单片机开发(6)keil c与proteus联调
Keil C 中的一些ERROR和WARNING
C51复习二函数(语句功能识别)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服