EM MỚI VÀO NGHỀ NÊN CHƯA HIỂU RÕ MONG CÁC BÁC CHỈ GIÚP EM ! EM XIN CHÂN THÀNH CẢM ƠN Ạ!
EM CÓ BÀI TOÁN LÀ HẸN GIỜ MỚI 3 KHOẢNG THỜI GIAN DÙNG NGẮT TIMER !
NHẤN NÚT CHUYỂN SANG CHẾ ĐỘ 1
NHẤN TIẾP CHUYỂN SANG CHẾ ĐỘ 2
NHẤN TIẾP CHUYỂN SANG CHẾ ĐỘ 3
ĐÂY LAD CODE EM LẬP TRÌNH MONG CÁC BÁC GIÚP EM VỚI NHÁ. EM KHÔNG BIẾT SAO NO KHÔNG CHẠY CÁC BÁC GIÚP EM VỚI
#include <REGX51.H>
#define timer P3_0
#define timer1 P1_0
#define timer2 P1_1
#define timer3 P1_2
unsigned int i,time_now,hengio,time_off,kt_hengio,count,sec;
void setup_timer(void)
{
TMOD = 0x01 ;
TH0 = 0x3C ;
TL0 = 0xAF ;
IE = 0x82 ;
TF0 = 0;
TR0 = 1;
}
void T0_ISR (void) interrupt 1
{
TR0 = 0;
TH0 = 0x3C;
TL0 = 0xAF ;
count++;
if (count==20)
{
count = 0;
sec++;
}
TF0 = 0;
TR0 = 1;
}
void setup_gio(void)
{
if (kt_hengio==1)
{
if(sec>time_off)
{
timer1=timer2=timer=1;
hengio = 0;
}
}
if(timer)
{
while(timer)
kt_hengio=1;
sec=0;
hengio++ ;
if(hengio> 3)
{hengio = 0;}
switch(hengio)
{
case 0: {kt_hengio=0;
timer1=1; timer2=1; timer3=1; break;}
case 1: {time_off=1800; // 30 minutes
timer1=0; timer2=1; timer3=1; break;}
case 2: {time_off=3600; // 1 hour
timer1=1; timer2=0; timer3=1; break;}
case 3: {time_off=7200; // 2 hours
timer1=1; timer2=1; timer3=0; break;}
}
}
}
void main(void)
{
hengio=0;
count = 0;
timer1=timer2=timer3= 1;
setup_timer();
P1= 0xff;
P3= 0x00;
while(1)
{
setup_gio();
}
}
EM CÓ BÀI TOÁN LÀ HẸN GIỜ MỚI 3 KHOẢNG THỜI GIAN DÙNG NGẮT TIMER !
NHẤN NÚT CHUYỂN SANG CHẾ ĐỘ 1
NHẤN TIẾP CHUYỂN SANG CHẾ ĐỘ 2
NHẤN TIẾP CHUYỂN SANG CHẾ ĐỘ 3
ĐÂY LAD CODE EM LẬP TRÌNH MONG CÁC BÁC GIÚP EM VỚI NHÁ. EM KHÔNG BIẾT SAO NO KHÔNG CHẠY CÁC BÁC GIÚP EM VỚI
#include <REGX51.H>
#define timer P3_0
#define timer1 P1_0
#define timer2 P1_1
#define timer3 P1_2
unsigned int i,time_now,hengio,time_off,kt_hengio,count,sec;
void setup_timer(void)
{
TMOD = 0x01 ;
TH0 = 0x3C ;
TL0 = 0xAF ;
IE = 0x82 ;
TF0 = 0;
TR0 = 1;
}
void T0_ISR (void) interrupt 1
{
TR0 = 0;
TH0 = 0x3C;
TL0 = 0xAF ;
count++;
if (count==20)
{
count = 0;
sec++;
}
TF0 = 0;
TR0 = 1;
}
void setup_gio(void)
{
if (kt_hengio==1)
{
if(sec>time_off)
{
timer1=timer2=timer=1;
hengio = 0;
}
}
if(timer)
{
while(timer)
kt_hengio=1;
sec=0;
hengio++ ;
if(hengio> 3)
{hengio = 0;}
switch(hengio)
{
case 0: {kt_hengio=0;
timer1=1; timer2=1; timer3=1; break;}
case 1: {time_off=1800; // 30 minutes
timer1=0; timer2=1; timer3=1; break;}
case 2: {time_off=3600; // 1 hour
timer1=1; timer2=0; timer3=1; break;}
case 3: {time_off=7200; // 2 hours
timer1=1; timer2=1; timer3=0; break;}
}
}
}
void main(void)
{
hengio=0;
count = 0;
timer1=timer2=timer3= 1;
setup_timer();
P1= 0xff;
P3= 0x00;
while(1)
{
setup_gio();
}
}
Comment