毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

单片机流水灯的控制设计 第2页

更新时间:2009-6-28:  来源:毕业论文
单片机流水灯的控制设计 第2页
  for(i=0;i<10;i++)
     {
             Delay();                   //延时0.5s
             P1 = 0xBF;                 //第七个灯亮
             Delay();                   //延时0.5s
             P1 = 0XFF ;                //灯灭
           }
        }
  else if(count==8)
        {
           for(i=0;i<10;i++)
     {
             Delay();                   //延时0.5s
             P1 = 0x7F;                 //第八个灯亮
             Delay();                   //延时0.5s
             P1 = 0XFF ;                //灯灭
             count = 0 ;
           }
        }
    }
}
3.2定时器中断方式
在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用定时器中断方式进行编程。这种编程方式简单快捷。具体编程如下所示,程序结构确实简单了很多。
#include <reg51.h>
#include <intrins.h>
#include <math.h>
typedef unsigned char uchar;
//对P1口的定义
sbit P1_0 = P1^0 ;       
sbit P1_1 = P1^1 ;
sbit P1_2 = P1^2 ;
sbit P1_3 = P1^3 ;
sbit P1_4 = P1^4 ;
sbit P1_5 = P1^5 ;
sbit P1_6 = P1^6 ;
sbit P1_7 = P1^7 ;
//定义变量
uchar COUNT ;
uchar K;

void TimeIterrupt() interrupt 1
{
 TH0 = 0x15;
 TL0 = 0x0A;
 COUNT ++;
www.youerw.com
       P1_0  = ~P1_0 ; //位取反
       K++;        
       if(K==20)       //闪烁10次
       {
          K = 0 ;
          COUNT = 10 ;
       }  
    }
    if(COUNT==20)   //定时600MS
    {
       COUNT = 0 ;
       P1_1  = ~P1_1 ; //位取反
       K++;        
       if(K==20)       //闪烁10次
       {
          K = 0 ;
          COUNT = 20 ;
       }  
    }
 if(COUNT==30)   //定时600MS
    {
       COUNT = 0 ;
       P1_2  = ~P1_2 ; //位取反
       K++;        
       if(K==20)       //闪烁10次
       {
          K = 0 ;

上一页  [1] [2] [3] [4] [5] 下一页

单片机流水灯的控制设计 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。