#include <REG52.H> #include <stdio.h> sbit WAVE = P1^7; #define BIT(x) (1 << (x)) void timer0() interrupt 1 // timer is controlling square wave timer 0 { WAVE=~WAVE; } void interrupt0() interrupt 0 { IE ^= BIT(1); } void serial0() interrupt 4 { unsigned char x; unsigned int i, z; unsigned char yes[]=" YES "; unsigned char no[]=" NO "; unsigned char nvalid[]=" NOT VALID TRY AGAIN "; while(RI==1) { x = SBUF; RI=0; if(z<1) { if(x == 'n') { for(i=0;i<4;i++) { SBUF = no[i]; while(TI==0); //wait for transmit TI=0; z++; } } } else { return; } if(x == 'y') { for(i=0;i<5;i++) { SBUF = yes[i]; while(TI==0); TI=0; } } else if (x!='n') { for(i=0;i<21;i++) { SBUF = nvalid[i]; while(TI==0); TI=0; } } TI=0; return; } } void main() { TMOD = 0x20; TH1 = 0xF6; //baud rate SCON = 0x50; TH0 = 0xA4; IE = 0x93; //enable interrupts IP = 0x10; // propriety to serial interrupt TR1 = 1; //start timer 1 TR0 = 1; //clear timer 0 TI=1; printf("Hello, Are you okay? Press y for yes and n for no "); while(1); }
void timer0() interrupt 1 // timer is controlling square wave timer 0 { WAVE=~WAVE; } void interrupt0() interrupt 0 { IE ^= BIT(1); }
printf("Hello, Are you okay? Press y for yes and n for no "); c = getchar(); // implement your logic and handle when OTHER chars. if( c == 'y' ) { }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)