(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

按鍵改變流水燈速度

作者:佚名   來源:本站原創   點擊數:x  更新時間:2009年10月13日   【字體:

/*
程序效果:有三個按鍵,按下其中任意一個流水燈的速度改變
*/
#include<reg52.h> //52系列單片機的頭文件
#define uchar unsigned char//宏定義
#define uint  unsigned int
uchar count=40,flag=0; //定義剛開始的流水燈的速度,后一個為標志變量
void main()
{
   uchar i=0;//定義局部變量
   EA=1; //打開總中斷
   ET0=1; //打開定時器
   TR0=1; //啟動定時器
   TH0=(65536-50000)/256; //裝初值
   TL0=(65536-50000)%256;    
   P2=0xfe;   //點亮第一個數碼管,為下次循環做準備
   while(1)
   {
      if(flag)   //flag被置位
      {
         flag=0;//清零,為下次做準備
         P2=~P2; //取反
         P2<<=1; //左移一位
         P2=~P2;  //取反
         i++;
         if(i==8) //移到第八個數碼管,則從新裝初值
         {
            i=0;
            P2=0xfe;
         }
      }
      P0=0xf0;   //賦初值
      if((P0&0xf0)!=0xf0) //判斷是否有按鍵按下
      {
         if(P0==0x70) //按下第一個按鍵
            count=60; //給count從新賦值
         if(P0==0xb0)
            count=20;  
         if(P0==0xd0)  
            count=10;
      }
   }
}
void time0() interrupt 1 //定時器0
{
   static uchar cnt; //定義靜態變量
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   cnt++;     //計數
   if(cnt==count)
   {
    cnt=0;    //清零
    flag=1;   //置標志位
   }
}
 

發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

专注江西快三走势分析 炒股用的app 网上棋牌平台排行 龙王辅助下载 安徽11选5组3走势 516棋牌游戏打鱼平台 私募资产配置基金是什么 四川麻将血战到底版 个人心水十码中特 优乐精江西抚州麻将下载 免费玩的东北麻将