专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

基于51单片机的方波发生程序

作者:佚名   来源:本站原创   点击数:  更新时间:2012年01月21日   【字体:
这是一个最简单的程序,在定时器的控制下由p1.0脚发出500赫兹的方波
要求:6MHz的晶振,P1.0引脚产生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);
}

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

还有一个程序:

//用中断方式控制定时器方式1(16位定时器),完成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// 定时器0工作//
 TMOD=0X01;///这是设置定时器的工作方式:定时器0的方式1//
 TH0=0X3C;
 TL0=0XB0;//给定时器放初值//
 PT0=1;
 while(1)
 { 
  if(num==4000)
   {
   d0=!d0;
    num=0;
  
   }
 
 }
   
}
 void timer0() interrupt 1
{  
 TH0=0X3C;
 TL0=0XB0;// 中断 定时器方式1定时,当定时到时,TF0溢出标志 自动清零,
          //同时定时器的计数器计满自动清零,如果不加,则计时时间变化 
   num++;
}
关闭窗口

相关文章