标题: 按键控制渐快的流水灯,最慢为1s的间隔,最快为100ms的间隔,每按一次加快100ms [打印本页]

作者: alskdj55555    时间: 2018-5-8 22:55
标题: 按键控制渐快的流水灯,最慢为1s的间隔,最快为100ms的间隔,每按一次加快100ms
按键控制渐快的流水灯,最慢为1s的间隔,最快为100ms的间隔,每按一次加快100ms

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


单片机源程序如下:
  1. #include<reg51.h>                //定义特殊功能寄存器的头文件
  2. #include<intrins.h>
  3. #define NOP _nop_()
  4. #ifndef _Dly_nms_h__
  5. #define _Dly_nms_h__                                                                                                //K1位变量定义
  6. typedef unsigned char Uchar;                                        //数据类型重命名
  7. unsigned int a=0;
  8. void Dly_nms(unsigned int time)         //延时函数
  9. {unsigned char i;
  10. for(;time>0;time--)
  11.   {for(i=0;i<247;i++)
  12.                 {NOP;}
  13.   }
  14. }
  15. #endif   
  16. void INT0sev() interrupt 0                                //外中断0的函数                                       
  17. {                while(K1==0);                        //等待按键释放
  18.                 if(a<900)
  19.                         a=a+100;
  20.                 IE0=0;                                                //清中断标志
  21. }

  22. void main()                                                //主函数
  23. {
  24.         unsigned char C,b=0;
  25.         C=0xFE;
  26.         EA=1;EX0=1;IT0=1;                //外中断0初始化
  27.         for(;;)                                                        //循环函数
  28.         {
  29.                 P1=C;                                                //数据输出
  30.                 C=_crol_(C,1);                //循环左移
  31.                 Dly_nms(1000-a);        //调用延时函数
  32.         }
  33. }
复制代码

所有资料51hei提供下载:
按键控制渐快的流水灯,最慢为1s的间隔,最快为100ms的间隔,每按一次加快100ms.zip (62.38 KB, 下载次数: 36)



作者: zjj518    时间: 2019-12-17 11:00
这是用定时器的吗
作者: vhgvjh    时间: 2020-12-29 19:50
按键控制渐慢的流水灯,最快为100ms的间隔,每按一次减慢150ms,最慢1.05秒的间隔。用一数码管显示速度级别
作者: vhgvjh    时间: 2020-12-29 19:50
可以教我怎么改吗




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