#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