|
#include <reg52.h> unsigned char timer1; sbit PWM=P1^2; void system_Ini() { TMOD|= 0x11; //PWM TH1 = 0xfe; //11.0592 TL1 = 0x33; TR1 = 1; IE =0x8A; } main() { system_Ini(); while(1) { if(timer1>100) timer1=0; if(timer1<30) PWM=0; else PWM=1; } } /************************************* [ t1 (0.5ms)中斷] 中斷中做 PWM 輸出 ------------1000/(0.02ms*250)=200Hz *************************************/ void T1zd(void) interrupt 3 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷 { TH1 = 0xfe; //11.0592 TL1 = 0x33; timer1++; } |
|