#include <reg51.h>
sbit LED = P1^0; // LED connected to P1.0 void Timer0_Init() { TMOD |= 0x01; // Timer0 in Mode 1 (16-bit) TH0 = 0x4C; // Load high byte for 50 ms TL0 = 0x00; // Load low byte ET0 = 1; // Enable Timer0 interrupt EA = 1; // Enable global interrupts TR0 = 1; // Start Timer0 } // Timer0 Interrupt Service Routine void Timer0_ISR(void) interrupt 1 { TH0 = 0x4C; // Reload Timer TL0 = 0x00; LED = ~LED; // Toggle LED } void main() { LED = 0; // Initialize LED state Timer0_Init(); // Initialize Timer while (1) { // Main loop does nothing, LED toggled in ISR } }
Post a Comment