//咱做硬件的也動手做點測試程序,為了測試新做的電機驅動板,找了個51的板子當10K信號發生器測試IGBT開關延時時間。
#include <STC_NEW_8051.H>
#include<intrins.h>
#define uchar unsigned char
//這個T0定時器中斷程序網上找的,改了下定義和計數器值,移植到STC10F10XE上。
sbit OUT=P2^7; //定義OUT輸出端口
/*------------------------------------------------
定時器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
//TH0=0x00; //給定初值,這裡使用定時器最大值從0開始計數一直到65535溢出
//TL0=0x00;
EA=1; //總中斷打開
ET0=1; //定時器中斷打開
TR0=1; //定時器開關打開
}
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
CLK_DIV=0x00; //不分頻
P2M1=0x00; //P2端口推挽輸出
P2M0=0xff; //P2端口推挽輸出
Init_Timer0();
while(1);
}
/*------------------------------------------------
定時器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=255; //重新賦值 11.0592M晶振,示波器實測10KHz波形輸出。
TL0=211; //
//溢出然後輸出端取反
OUT=~OUT; //用示波器可看到方波輸出
}