first commit
This commit is contained in:
75
Interrupt_1.c
Executable file
75
Interrupt_1.c
Executable file
@ -0,0 +1,75 @@
|
||||
// Timer 0 take as interrupt
|
||||
// Timer 1 take as delay
|
||||
|
||||
#include <reg51.h>
|
||||
|
||||
// <20>ŧi<C5A7><69><EFBFBD>ɨ禡
|
||||
void delay10ms(void);
|
||||
|
||||
unsigned int timer0_counter = 150;
|
||||
|
||||
void main(void){
|
||||
|
||||
//<2F>}<7D><> Timer0 <20>M Timer1
|
||||
TMOD = 0x11;
|
||||
|
||||
//interrupt control
|
||||
TL0 = (65536 - 9216) % 256;
|
||||
TH0 = (65536 - 9216) / 256;
|
||||
TF0 = 0;
|
||||
TR0 = 1; //<2F>}<7D>ҭp<D2AD>ɾ<EFBFBD> timer0
|
||||
ET0 = 1; //<2F>}<7D><> TF0 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>Ҳն}<7D><>
|
||||
EA = 1; //<2F>}<7D>Ҥ<EFBFBD><D2A4>_<EFBFBD>Ҳ<EFBFBD><D2B2>`<60>}<7D><>
|
||||
|
||||
delay10ms();
|
||||
|
||||
while(1){
|
||||
// do LED move up to down per 1.5 sec
|
||||
// using Timer 1 Mode 1 to generate 10ms delay
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void delay10ms(void){
|
||||
//<2F>]<5D>w<EFBFBD><77><EFBFBD>l<EFBFBD><6C>
|
||||
TF1 = 0;
|
||||
TR1 = 0;
|
||||
TL1 = (65536-9216) % 256;
|
||||
TH1 = (65536-9216) / 256;
|
||||
|
||||
//<2F>}<7D>ҭp<D2AD>ɾ<EFBFBD> timer1
|
||||
TR1 = 1;
|
||||
|
||||
//<2F><> TF1 <20>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while(TF1 == 0);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>ɾ<EFBFBD>
|
||||
TR1 = 0;
|
||||
|
||||
//<2F>N TF1 <20>k<EFBFBD>s
|
||||
TF1 = 0;
|
||||
}
|
||||
|
||||
|
||||
// timer0 <20>b<EFBFBD>p<EFBFBD>ɨ쪺<C9A8>ɭ<EFBFBD>(TF0 = 1)<29>|<7C>I<EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>ƨ禡
|
||||
void my_timer0(void) interrupt 1 {
|
||||
|
||||
//<2F>]<5D>w<EFBFBD><77><EFBFBD>l<EFBFBD><6C>
|
||||
TL0 = (65536 - 9216) % 256;
|
||||
TH0 = (65536 - 9216) / 256;
|
||||
TF0 = 0;
|
||||
|
||||
// timer0_counter <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
timer0_counter--;
|
||||
|
||||
|
||||
//<2F><> timer0_counter <20><> 0 <20>ɡA<C9A1><41><EFBFBD>@<40>C<EFBFBD>q<EFBFBD><71><EFBFBD>ܾ<EFBFBD>
|
||||
if (timer0_counter == 0){
|
||||
// <20><><EFBFBD>@<40>C<EFBFBD>q<EFBFBD><71><EFBFBD>ܾ<EFBFBD>
|
||||
|
||||
|
||||
//<2F>N timer0_counter <20><><EFBFBD>ȳ]<5D>^ 150
|
||||
timer0_counter = 150;
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user