這是一個最簡單的程序,在定時器的控制下由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);
}
---------------------------------------------------------------------------------------------------------------------------
還有一個程序:
//用中斷方式控制定時器方式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溢出標志 自動清零,
//同時定時器的計數(shù)器計滿自動清零,如果不加,則計時時間變化
num++;
}
