微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 用定时器做的流水灯

用定时器做的流水灯

时间:10-02 整理:3721RD 点击:
在51单片机开发板上,用定时器做了一个流水灯程序,调整非常灵活,很实用拿出来和朋友们一起分享#include<reg52.h>
unsigned char sz[]={
  0xfe,0xfd,0xfb,0xf7,
  0xef,0xdf,0xbf,0x7f,
  0xbf,0xdf,0xef,0xf7,
  0xfb,0xfd,
  };
void main()
{
   unsigned char cnt = 0; //声明定时器并赋值
   unsigned char sec = 0; //声明计数器并赋值
   TMOD = 0x01;         //设置定时器模式为1
   TH0 = 0xb8;         //高位定时器并赋初值
   TL0 = 0x00;         //低位定时器并赋初值
   TR0 = 1;                //打开定时器
  while (1)
  {
    if (TF0 == 1)
      {
        TF0 = 0;   //定时器溢出后清零并赋初值
        TH0 = 0xb8;
        TL0 = 0x00;
        cnt++;
       if (cnt>=5)        //改变数值可改变流水灯流动速度
        {
         cnt = 0;
         P1 = sz[sec];
         sec++;
         if (sec>=14) //数组里有多少个元素就写多少数
          {
           sec = 0;
           }
         }
       }
   }
}
这是一个左右循环的程序,如果想要其他花样只需改变数组里元素排列顺序即可,很好玩的,也很简单。

谢谢分享
学单片机时 点完二极管就做流水灯了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top