标题: 单片机简单定时器应用,控制P0口实现双向流水灯工程,时间间隔为1S [打印本页]

作者: 郁彼丨北林    时间: 2019-1-2 12:57
标题: 单片机简单定时器应用,控制P0口实现双向流水灯工程,时间间隔为1S
初学者入门使用,单片机简单定时器的应用

利用单片机的定时器设计一个定时系统,控制P0口实现双向流水灯工程,时间间隔为1S


单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. unsigned char aa,t;
  6. uchar code text[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  7. void main()
  8. {
  9.   P1=0xfe;
  10.   TMOD=0x01;
  11.   TH0=(65536-50000)/256;
  12.   TL0=(65536-50000)%256;
  13.   EA=1;
  14.   ET0=1;
  15.   TR0=1;
  16.    while(1)
  17.         {       
  18.                 P1=text[t] ;
  19.                 if(aa==20)
  20.                 {               
  21.                          aa=0;
  22.                          t++;
  23.                          if(t==14)
  24.                          {
  25.                                  t=0;
  26.                          }
  27.                 }
  28.         }
  29. }
  30. void timer0() interrupt 1
  31. {
  32.   TH0=(65536-50000)/256;
  33.   TL0=(65536-50000)%256;
  34.   aa++;
  35. }
复制代码

全部资料51hei下载地址:
单片机简单定时器应用.rar (424 Bytes, 下载次数: 12)


作者: jxchen    时间: 2019-1-9 21:53
改一下程式,這樣比較清處
#include<reg51.h>
#typedef unsigned char uchar
bit Fg1sec;
uchar code led_table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void main(void)
{
  P1=0xfe;
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  Fg1sec=0;
  TF0=0;
  ET0=1;
  TR0=1;
  EA=1;
  while(1)
  {        
        P1=led_table[t] ;
        if(Fg1sec!=0)
        {               
           Fg1sec=0;
           t++;
           if(t==14)
           {
               t=0;
           }
        }
  }
}
void timer0() interrupt 1
{
  TF0=0;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  Fg1sec=1;
}





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