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