PHAN THUYET TRINH đề tài MẠCH đèn GIAO THÔNG THỜI GIAN THỰC

14 80 0
  • Loading ...
1/14 trang

Thông tin tài liệu

Ngày đăng: 07/09/2017, 00:49

TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG KHOA ĐIỆN TỬ - TIN HOC BÁO CÁO ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Thanh Nghĩa SVTH: Lâm Lương Sĩ Huỳnh Hữu Thịnh Lê Quốc Thắng Nguyễn Hải Bằng KHỐI NGUỒN KHỐI VI ĐIỀU KHIỂN VÀ KHỐI BÀN PHÍM KHỐI HIỂN THỊ CHƯƠNG TRÌNH ĐÈN GIAO THÔNG CHƯƠNG TRÌNH CHÍNH // CHUONG TRINH DIEU KHIEN DEN GIAO THONG CHAY CHE DO // CHE DO CHAY BANG TAY // CHE DO CHAY TU DONG, CO DIEU CHINH THOI GIAN // #INCLUDE #include #FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP #USE DELAY (CLOCK =20000000) INT8 GIAY1,TT1,GIAY2,TT2,CHUC1,DVI1,CHUC2, DVI2,D01,XANH1,VANG1,D02,XANH2,VANG2,BDN,MODE; CONST UNSIGNED CHAR MA[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92 0x82,0xF8,0x80,0x90}; // //chuong trinh HIEN THI GIAY TREN LED DOAN { CHUC1 =GIAY1 /10; DVI1 =GIAY1 %10; OUTPUT_D(MA[CHUC1]); OUTPUT_C(0XfD); DELAY_MS(1); OUTPUT_C(0Xff); OUTPUT_D(MA[DVI1]); OUTPUT_C(0XfE); DELAY_MS(1); OUTPUT_C(0Xff); } VOID HIENTHI2() //HIEN THI THOI GIAN CHO TUYEN { CHUC2 =GIAY2 /10; DVI2 =GIAY2 %10; OUTPUT_D(MA[CHUC2]); OUTPUT_C(0Xf7); DELAY_MS(1); OUTPUT_C(0Xff); OUTPUT_D(MA[DVI2]); OUTPUT_C(0XfB); DELAY_MS(1); OUTPUT_C(0Xff); } VOID HIENTHI3() //HIEN THI THOI GIAN CAI DAT { CHUC2 =GIAY1 /10; DVI2 =GIAY1 %10; OUTPUT_D(MA[CHUC2]); OUTPUT_C(0XDf); DELAY_MS(1); OUTPUT_C(0Xff); OUTPUT_D(MA[DVI2]); OUTPUT_C(0XEF); DELAY_MS(1); OUTPUT_C(0Xff); } VOID HIENTHI4() //HIEN THI THOI GIAN CAI DAT { CHUC2 =GIAY2 /10; DVI2 =GIAY2 %10; OUTPUT_D(MA[CHUC2]); OUTPUT_C(0XDf); DELAY_MS(1); OUTPUT_C(0Xff); OUTPUT_D(MA[DVI2]); OUTPUT_C(0XEF); DELAY_MS(1); OUTPUT_C(0Xff); } VOID GIAIMA_HIENTHI_LED7DOAN() { HIENTHI1(); HIENTHI2(); } // //chuong trinh hien thi den giao thong VOID HIENTHI_DEN() { IF((TT1==0)&(TT2==1)) { OUTPUT_A(0XEE); //D1 X2 } IF((TT1==0)&(TT2==2)) { OUTPUT_A(0XDE); //D1 V2 } IF((TT1==1)&(TT2==0)) { OUTPUT_A(0XF5); //X1 D2 } IF((TT1==2)&(TT2==0)) { OUTPUT_A(0XF3); //V1 D2 } } // -#PRIORITY RB, TIMER1 //chuong trinh xay ngat timer1 #INT_TIMER1 VOID NGAT_TIMER1() { SET_TIMER1(15536); NGAT(tngat):0.2us*50000=10000us=10ms BDN++; IF(BDN==100) // t dinh thoi: t=tngat*BDN=10ms*100=1s { GIAY1 ; GIAY2 ; BDN=0; } IF(GIAY1==0) { TT1++; SWITCH (TT1) { CASE 1: GIAY1=XANH1; BREAK; CASE 2: GIAY1=VANG1; BREAK; CASE 3: GIAY1=D01; TT1=0; BREAK; } } IF(GIAY2==0) { TT2++; SWITCH (TT2) { CASE 1: GIAY2=XANH2; BREAK; CASE 2: GIAY2=VANG2; BREAK; CASE 3: GIAY2=D02; TT2=0; BREAK; } } } // -//chuong trinh xay ngat RB #INT_RB VOID NGAT_PORTB() { //XU LI CHO DO DIEU KHIEN DEN BANG TAY IF(RB4==0) //kiem tra co nhan che bang tay? { WHILE(TRUE) { HIENTHI_DEN(); IF ( RB1==0) {TT1=1; TT2=0;} IF ( RB2==0 ) {TT1=0; TT2=1;} IF (RB3==0) {TT1=1;TT2=0; GIAY1=XANH1; GIAY2=D02;BREAK;} } } //XU LI DIEU CHINH THOI GIAN IF(RB5==0) //kiem tra co nhan nut set_time? { OUTPUT_A(0XEE); // D01, D02 WHILE (TRUE) { IF(RB4==0) { WHILE (RB4==0){DELAY_MS(10);} MODE++; } IF(MODE==1) {GIAY1=XANH1; RE0=1; RE1=0; HIENTHI3();} IF(MODE==2) {GIAY1=VANG1; RE0=0; RE1=1; HIENTHI3();} IF(MODE==3) {GIAY2=XANH2; RE1=0; RB6=1; RB7=0; HIENTHI4();} IF(MODE==4) {GIAY2=VANG2; RB6=0; RB7=1; HIENTHI4();} IF(MODE==5) {MODE=1; RB7=0;} IF((RB1==0)&(MODE==1)) { WHILE (RB1==0){DELAY_MS(10);} XANH1++; IF(XANH1==100){XANH1=0;} GIAY1=XANH1; HIENTHI1(); } IF((RB1==0)&(MODE==2)) { WHILE (RB1==0){DELAY_MS(10);} VANG1++; IF(VANG1==100){VANG1=0;} GIAY1=VANG1; HIENTHI1(); } IF((RB1==0)&(MODE==3)) { WHILE (RB1==0){DELAY_MS(10);} XANH2++; IF(XANH2==100){XANH2=0;} GIAY2=XANH2; HIENTHI2(); } IF((RB1==0)&(MODE==4)) { WHILE (RB1==0){DELAY_MS(10);} VANG2++; IF(VANG2==100){VANG2=0;} GIAY2=VANG2; HIENTHI2(); } IF((RB2==0)&(MODE==1)) { WHILE (RB2==0){DELAY_MS(10);} XANH1 ; IF(XANH1==0){XANH1=99;} GIAY1=XANH1; HIENTHI1(); } IF((RB2==0)&(MODE==2)) { WHILE (RB2==0){DELAY_MS(10);} VANG1 ; IF(VANG1==0){VANG1=99;} GIAY1=VANG1; HIENTHI1(); } IF((RB2==0)&(MODE==3)) { WHILE (RB2==0){DELAY_MS(10);} XANH2 ;IF(XANH2==0){XANH2=99;} GIAY2=XANH2; HIENTHI2();} IF((RB2==0)&(MODE==4)) { WHILE (RB2==0){DELAY_MS(10);} VANG2 ; IF(VANG2==0){VANG2=99;} GIAY2=VANG2; HIENTHI2(); } IF(RB3==0) { D01=XANH2+VANG2; D02=XANH1+VANG1; GIAY1=XANH1; GIAY2=D02; TT1=1; TT2=0; RB7=0; RB6=0; RE0=0; RE1=0; BREAK; } } } } // //chuong trinh khoi tao port xuat nhap VOID KHOI_TAO_PORT() { SET_TRIS_A(0X00); SET_TRIS_C(0X00); SET_TRIS_D(0X00); SET_TRIS_B(0X3F); SET_TRIS_E(0X00); PORT_B_PULLUPS(0XFF); } // //chuong trinh khoi tao timer_ ngat VOID KHOI_TAO_NGAT() { ENABLE_INTERRUPTS(INT_RB); ENABLE_INTERRUPTS(INT_TIMER1); ENABLE_INTERRUPTS(GLOBAL); SETUP_TIMER_1( T1_INTERNAL | T1_DIV_BY_1); SET_TIMER1(15536); BDN=0; } // //chuong trinh khoi tao thoi gian va trang thai ban dau VOID KHOI_TAO_TRANG_THAI_BAN_DAU() { XANH1=30; VANG1=5; XANH2=20; VANG2=5; D01=XANH2+VANG2; D02=XANH1+VANG1; GIAY1=XANH1; TT1=1; GIAY2=D02; TT2=0; RE0=0; RE1=0; RB7=0; RB6=0; } // //chuong trinh chinh void main ( ) { KHOI_TAO_PORT(); KHOI_TAO_NGAT(); KHOI_TAO_TRANG_THAI_BAN_DAU(); WHILE(1) { GIAIMA_HIENTHI_LED7DOAN(); HIENTHI_DEN(); } } BEGIN KHỞI TẠO PORT A,B,C,D KHỞI TẠO NGẮT RB,TIMER1 KHỞI TẠO GIÁ TRỊ THỜI GIAN CHO CÁC ĐÈN X1=30s, V1=5s, D1=X2+V2 X2=20s,V2=5s, D2=X1+V1 HIỂN THỊ ĐÈN HIỂN THỊ THỜI GIAN END ... HIỂN THỊ CHƯƠNG TRÌNH ĐÈN GIAO THÔNG CHƯƠNG TRÌNH CHÍNH // CHUONG TRINH DIEU KHIEN DEN GIAO THONG CHAY CHE DO // CHE DO CHAY BANG TAY // CHE DO CHAY TU DONG, CO DIEU CHINH THOI GIAN // #INCLUDE... A,B,C,D KHỞI TẠO NGẮT RB,TIMER1 KHỞI TẠO GIÁ TRỊ THỜI GIAN CHO CÁC ĐÈN X1=30s, V1=5s, D1=X2+V2 X2=20s,V2=5s, D2=X1+V1 HIỂN THỊ ĐÈN HIỂN THỊ THỜI GIAN END ... T1_DIV_BY_1); SET_TIMER1(15536); BDN=0; } // //chuong trinh khoi tao thoi gian va trang thai ban dau VOID KHOI_TAO_TRANG_THAI_BAN_DAU() { XANH1=30; VANG1=5; XANH2=20;
- Xem thêm -

Xem thêm: PHAN THUYET TRINH đề tài MẠCH đèn GIAO THÔNG THỜI GIAN THỰC , PHAN THUYET TRINH đề tài MẠCH đèn GIAO THÔNG THỜI GIAN THỰC , PHAN THUYET TRINH đề tài MẠCH đèn GIAO THÔNG THỜI GIAN THỰC , //----------------------------------------------------------------- //chuong trinh con hien thi den giao thong VOID HIENTHI_DEN() { IF((TT1==0)&(TT2==1)) { OUTPUT_A(0XEE); //D1 X2 } IF((TT1==0)&(TT2==2)) { OUTPUT_A(0XDE); //D1 V2 } IF((TT1==1)&

Từ khóa liên quan

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay