1 include reg 51 h unsigned char Exintsum

  • Slides: 5
Download presentation

예제 1 #include <reg 51. h> unsigned char Ex_int_sum; void main(void) { int i;

예제 1 #include <reg 51. h> unsigned char Ex_int_sum; void main(void) { int i; TCON=0 x 00; EA = 1; EX 0 = 1; Ex_int_sum = 0; for(; ; ) { } // 외부인터럽트 LOW // 전체 Enable ON // 외부인터럽트 Enable ON P 1 = 0 xff; for(i=0; i< 30000; i++); P 1 = 0 x 00; for(i=0; i<30000; i++); if(Ex_int_sum) break; } while(1) P 1 = Ex_int_sum; void externa 10(void) interrupt 0 { Ex_int_sum++; } 3

예제 2 while(1) { #include <reg 51. h> #define ON 1 #define OFF 0

예제 2 while(1) { #include <reg 51. h> #define ON 1 #define OFF 0 unsigned char Ex_int_sum; unsigned char Ex_int_ON_OFF; void main(void) { int i; TCON = 0 x 00; EA = 1; EX 0 = 1; PX 0 = 1; Ex_int_sum = 0; Ex_int_ON_OFF = ON; for(; ; ) { } } } P 1= Ex_int_sum; for(i=0; i< 30000; i ++); Ex_int_ON_OFF=ON; void external 0(void) interrupt 0 { if (Ex_int_ON_OFF == ON) { Ex_int_sum++; if(Ex_int_sum >= 255) Ex_int_sum = 0; Ex_int_ON_OFF=OFF; } } P 1 = 0 xff; for(i= 0; i < 30000; i++); P 1 = 0 x 00; for (i =0; i< 30000; i++); if (Ex_int_sum) break; 4

for(; ; ) { 응용 1 #include <reg 51. h> } #define ON 1

for(; ; ) { 응용 1 #include <reg 51. h> } #define ON 1 #define OFF 0 while(1) { unsigned char Send_Data = 'A'; unsigned char Ex_int_ON_OFF; unsigned char Ex_flag = 0; if (Ex_flag) break; P 1= Send_Data; for(i=0; i< 30000; i ++); if (Ex_int_ON_OFF == OFF) SBUF = Send_Data; void main(void) { int i; TCON = 0 x 00; EX 0 = 1; PX 0 = 1; TMOD = 0 x 20; // 시리얼 인터럽트 TH 1 = 0 xfd; // 9600 pbs TR 1 = 1; // 타입인터럽트 1 Enable ON ES = 1; // 시리얼 인터럽트 Enable ON PCON = 0 x 00; // 보레이트 보통 SMOD가 1 이면 속도 2배 SCON = 0 x 50; // 모드 2 setting EA = 1; P 1 = 0 xff; for(i= 0; i < 30000; i++); P 1 = 0 x 00; for (i =0; i< 30000; i++); } } void external 0(void) interrupt 0 { Ex_flag = 1; if (Ex_int_ON_OFF == ON) { if (Send_Data == 'Z') Send_Data = 'A'; else Send_Data++; // 전체 Enable ON Ex_int_ON_OFF = ON; Ex_int_ON_OFF=ON; } } Ex_int_ON_OFF=OFF; 5