2024-05-16 23:17:07 +02:00
|
|
|
|
|
|
|
#include <8052.h>
|
|
|
|
|
|
|
|
#ifndef FLASH_PIN
|
2024-05-17 01:41:51 +02:00
|
|
|
#define FLASH_PIN _P1_0
|
2024-05-16 23:17:07 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef IRQFREQ
|
|
|
|
#define IRQFREQ 1000L
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define FOSC (SYSCLK*1000L)
|
|
|
|
|
|
|
|
#define T0_1MS (65536L-FOSC/12L/IRQFREQ)
|
|
|
|
|
|
|
|
#define TCT IRQFREQ/2-1
|
|
|
|
|
|
|
|
unsigned char ctr_l = TCT&0xFF;
|
|
|
|
unsigned char ctr_h = (TCT>>8)&0xff;
|
|
|
|
unsigned char ctr_w = (TCT>>16)&0xff;
|
|
|
|
|
|
|
|
void handler() __interrupt 1
|
|
|
|
{
|
|
|
|
EA=0;
|
|
|
|
__asm
|
|
|
|
mov a, #0xff
|
|
|
|
dec _ctr_l
|
|
|
|
cjne a,_ctr_l, 00001$
|
|
|
|
dec _ctr_h
|
|
|
|
cjne a,_ctr_h, 00001$
|
|
|
|
dec _ctr_w
|
|
|
|
cjne a,_ctr_w, 00001$
|
|
|
|
|
2024-05-16 23:19:18 +02:00
|
|
|
cpl FLASH_PIN
|
2024-05-16 23:17:07 +02:00
|
|
|
__endasm;
|
|
|
|
|
|
|
|
ctr_l = TCT&0xFF;
|
|
|
|
ctr_h = (TCT>>8)&0xff;
|
|
|
|
ctr_w = (TCT>>16)&0xff;
|
|
|
|
|
|
|
|
__asm
|
|
|
|
00001$:
|
|
|
|
__endasm;
|
|
|
|
EA=1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
|
|
|
|
P1=TMOD;
|
|
|
|
|
|
|
|
EA=0;
|
|
|
|
|
|
|
|
TMOD =0;
|
|
|
|
P1=TMOD;
|
|
|
|
|
|
|
|
TL0 = (T0_1MS) & 0xFF; // Initial timer value
|
|
|
|
TH0 = T0_1MS>>8; // Initial timer value
|
|
|
|
|
|
|
|
|
|
|
|
TR0 = 1; // Timer0 start run
|
|
|
|
ET0 = 1; // Enable timer0 interrupt
|
|
|
|
EA=1;
|
|
|
|
|
|
|
|
while(1);
|
|
|
|
}
|