#include #include #include #include char string2[15]; unsigned int a_wert; unsigned int a_wert2; int i,a; unsigned int softzaehler; int laenge; sbit at P0^7 sensortaste; sbit at P0^6 led; void Timer0 (void) interrupt 1 using 2 //nutze Registerbank 2 { softzaehler ++; TH0 = 0xFC; //Timer 0 High Byte setzen TL0 = 0x66; //Timer 0 Low Byte setzen } /*Timer Initialisierung*/ void init_timer0(void) { TH0 = 0xFC; //Timer 0 High Byte setzen TL0 = 0x66; //Timer 0 Low Byte setzen ET0 = 1; //Timer 0 Interrupt aktivieren TR0 = 1; //Timer 0 starten,durch setzen von TR0 } void uart_interrupt(void) interrupt 4 using 1 { } /* Initialisierung des UART*/ void uart_init(void) { // Baudrate = 19200 SCON = 0x50; // 8 Bit UART REN = 1; //Recieve Interrupt Enable IEN0 =0x10; //enable Uart interrupt TH1=0xFD; PCON |=0x80; TMOD |=0x21; // use timer 1 as baudrate generator TCON=0x40; ES=1; // Enable Serial IRQ (if required) EA= 1; // Enable general IRQs (if required) TI = 0; } /*Hauptprogramm*/ /*Wenn der Kondensator aufgeladen ist,dann wird so lange gewartet bis er wieder entladen ist*/ /*Ist der Kondensator entladen,dann wird der aktuelle Wert aus der Variable softzaehler geholt.*/ /*Danach wird so lange gewartet bis der Kondensator wieder aufgeladen ist,ist dieser Zustand erreicht,*/ /*dann wird wieder der aktuelle Wert aus der Variable softzaehler geholt*/ /*Die beiden Werte werden miteinander subtrahiert.*/ /*Das Ergebnis wird dann in einen String umgewandelt und auf die V24 ausgegeben*/ void main() { uart_init(); init_timer0(); do{ if(sensortaste == 0) { sensortaste = 1; //aufladen a_wert = softzaehler; do { }while(sensortaste == 0); a_wert2 = softzaehler; a_wert = a_wert2 - a_wert; sprintf (string2, "%d", a_wert); //int -->string laenge = strlen(string2); for(i=0;i120) //dann soll die LED angesteuert werden { led = 0; } }while ( a = 1); //Endlosschleife }