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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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;

Ngày đăng: 06/09/2017, 23:49

Từ khóa liên quan

Mục lục

  • TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG KHOA ĐIỆN TỬ - TIN HOC

  • 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 2 CHE DO // CHE DO CHAY BANG TAY // CHE DO CHAY TU DONG, CO DIEU CHINH THOI GIAN //................................................................. #INCLUDE<16F877A.H> #include <KhaiBaoTGhi_16F877A.h> #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 7 DOAN VOID HIENTHI1() // HIEN THI THOI GIAN CHO TUYEN 1

  • 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 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)&(TT2==0)) { OUTPUT_A(0XF5); //X1 D2 } IF((TT1==2)&(TT2==0)) { OUTPUT_A(0XF3); //V1 D2 } } //---------------------------------------------------------------- #PRIORITY RB, TIMER1 //chuong trinh khi xay ra 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 khi xay ra ngat RB #INT_RB VOID NGAT_PORTB() {

  • //XU LI CHO DO DIEU KHIEN DEN BANG TAY IF(RB4==0) //kiem tra co nhan che do 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 con 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 con 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 con 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(); } }

  • Slide 14

Tài liệu cùng người dùng

Tài liệu liên quan