频率可调的方波信号发生器设计及电路

[09-11 23:01:44]   来源:http://www.88dzw.com  单片机学习   阅读:8391

文章摘要: } TR1=1; } } }}//-main(){pulse_out=0; //初始化各变量 hz_shu=5; T1_cnt=0; state_val=0; second=0; sec_over_num=0; T1_over_num=get_T1_over_num(hz_shu); //初始化51的寄存器 TMOD=0x20;//用T1计时 8位自动装载定时模式,T0计数p3.4的脉冲数 TH1=0x6; //250微秒溢出一次; 250(256-x)*12/1

频率可调的方波信号发生器设计及电路,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
           }
           TR1=1;
        }
     }
  }
}
//-------------------------
main()
{pulse_out=0; //初始化各变量
 hz_shu=5;
 T1_cnt=0;
 state_val=0;
 second=0;
 sec_over_num=0;
 T1_over_num=get_T1_over_num(hz_shu);
 //初始化51的寄存器
 TMOD=0x20;//用T1计时 8位自动装载定时模式,T0计数p3.4的脉冲数
 TH1=0x6;  //250微秒溢出一次;   250(256-x)*12/12 -> x=6
 TL1=0x6;  //200Hz的半周期为2.5毫秒,要溢出中断10次
 EA=1;     //开中断
 ET1=1;
 TR1=1;    //定时器T1
 while(1)
 { key_val=scan_key();  //扫描按键
   if (key_val!=key_val_old)
   { //说明有键按下或弹起
     key_val_old=key_val;            
     if (key_val!=255)
     { //说明键按下
         state_val=0;    //清除连续按键标志
         sec_over_num=0;
         switch (key_val)
         { case 0: //增1键
                hz_shu++;
                T1_over_num=get_T1_over_num(hz_shu);
                break;
           case 1: //减1键
                if(hz_shu>=2)
                {hz_shu--;}
                else
                {hz_shu=1;}
                T1_over_num=get_T1_over_num(hz_shu);
                break;
          }
      }
      else  //说明键弹起
      {  state_val=0; second=0;
      }
    }
   else //一直按下或弹起
   { if (key_val!=255)
     { state_val=1;  //连续按键
     }
     else
     {state_val=0;}  //没有按键按下,一直处于弹起状态
    }
  led_show();        //数码管显示,动态扫描
}
}//----方波发生器-----------------
 

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


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《频率可调的方波信号发生器设计及电路》相关文章

分类导航
最新更新
热门排行