标题: 基于51单片机的不同模式流水灯程序(3种方法) [打印本页]

作者: linminjy    时间: 2021-11-10 15:29
标题: 基于51单片机的不同模式流水灯程序(3种方法)
1.延时函数:i==500
2.从一个LED变到另一个LED间要添加延时函数(间隔要适度),否则变化太快仿佛在抖动。
3.key()函数中添加while(KEY==0);  检测按键是否弹起,否则按键计数可能不对

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. void delay()
  4. {
  5.         uchar a,b;
  6.         for(a=500;a;a--)
  7.         {
  8.         for(b=500;b;b--);
  9.         }
  10. }
  11. void main()
  12. {
  13.         unsigned char count=0;
  14.         unsigned char num=0;
  15.         while(1){
  16.                 while(((num%3)==0)&&(P2!=0xFE))
  17.                 {
  18.                         P0=~(0x01<<count);
  19.                         delay();
  20.                         count++;
  21.                         if(count>=8)
  22.                                 count=0;
  23.                 }
  24.                 while(((num%3)==1)&&(P2!=0xFE))
  25.                 {
  26.                         P0=~(0x80>>count);
  27.                         delay();
  28.                         count++;
  29.                         if(count>=8)
  30.                                 count=0;
  31.                 }
  32.                 while(((num%3)==2)&&(P2!=0xFE))
  33.                 {
  34.                         P0=~(0x01<<count);
  35.                         delay();
  36.                         count=count+2;
  37.                         if(count==8){
  38.                                 count=1;
  39.                         }
  40.                         if(count==9){
  41.                                 count=0;
  42.                         }
  43.                 }
  44.                 if(P2==0xFE){
  45.                         num=num+1;
  46.                 }
  47.                 while(P2==0xFE);
  48.         }
  49. }
复制代码

所有资料51hei附件下载:
实验三.zip (61.61 KB, 下载次数: 15)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1