8051HELP
Member level 1
I need to write only numbers (every second) in string on display (memory mapped on 0x8001 adress) which are divding with 2 .
I must use counter not delay () for interrupt ...
Below is code which i imagine but dont work correctly...
I must use counter not delay () for interrupt ...
Below is code which i imagine but dont work correctly...
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <reg51.h> #include <math.h> typedef unsigned char byte; byte a[3]= {2,1,8}; byte counter, frequency,displ; int i=0; byte xdata display _at_ 0x8001; sbit switcher=P0^0; void Inic(void) { EA=1; ET0=1; TMOD=1; TH0=0x3C; TL0=0xB0; TR0=1; counter=1; frequency=0; } void timer0(void) interrupt 1 using 2 { TR0=0; TH0=0x3C; TL0=0xB0; TR0=1; if(switcher) { if(!(--counter)) { counter=frequency; display=displ; }} }