專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

基于51單片機(jī)的方波發(fā)生程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年01月21日   【字體:
這是一個(gè)最簡(jiǎn)單的程序,在定時(shí)器的控制下由p1.0腳發(fā)出500赫茲的方波
要求:6MHz的晶振,P1.0引腳產(chǎn)生500Hz的方波
 
代碼如下:
#include<reg52.h>
sbit P1_0=P1^0;
 
void int_X_T()
{
     IE=0x82;
     TMOD=0x01;
     TH0=(65536-500)/256;
     TL0=(65536-500)%256;
     TR0=1;??     ??
}
 
void int_x() interrupt 1
{
      TH0=(65536-500)/256;
      TL0=(65536-500)??%256;
      P1_0=!P1_0;
}
 
 
void main()??
{
     int_X_T();
     while(1);
}

---------------------------------------------------------------------------------------------------------------------------

還有一個(gè)程序:

//用中斷方式控制定時(shí)器方式1(16位定時(shí)器),完成1s的脈沖,1S亮,1S滅,P0口控制LED  //
                     
                     
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit d0=P0^0;
uint num,a,b;
void main()
{
 EA=1;
 ET0=1;
 TR0=1;//或者是TCON=0X10// 定時(shí)器0工作//
 TMOD=0X01;///這是設(shè)置定時(shí)器的工作方式:定時(shí)器0的方式1//
 TH0=0X3C;
 TL0=0XB0;//給定時(shí)器放初值//
 PT0=1;
 while(1)
 { 
  if(num==4000)
   {
   d0=!d0;
    num=0;
  
   }
 
 }
   
}
 void timer0() interrupt 1
{  
 TH0=0X3C;
 TL0=0XB0;// 中斷 定時(shí)器方式1定時(shí),當(dāng)定時(shí)到時(shí),TF0溢出標(biāo)志 自動(dòng)清零,
          //同時(shí)定時(shí)器的計(jì)數(shù)器計(jì)滿自動(dòng)清零,如果不加,則計(jì)時(shí)時(shí)間變化 
   num++;
}
關(guān)閉窗口

相關(guān)文章