这是一个最简单的程序,在定时器的控制下由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++;
}
