cácbácxemthửmộtchươngtrìnhnhé.ởñâyemch gtrìnhnhé.ởñâyemchỉviếtcácmodulchươngt ỉviếtcácmodulchươngtrìnhconthựchiện rìnhconthựchiện cácbácxemthửmộtchươn
thìsẽgọicácchươngtrìnhcontùytheomình thìsẽgọicácchương trìnhcontùytheomìnhmuốndùngchứcnăngnào muốndùngchứcnăngnàocủarobot. củarobot. Code: //************************************************************** //******************************************** ****************** /////////*FILENAME:CHUONGTRINHDIEUKHIENRO /////////*FILENAME:CH UONGTRINHDIEUKHIENROBOT*////////////// BOT*////////////// /////////*HARDWARE:PIC16F877 /////////*HARDWARE:PI C16F877*////////////// *////////////// /////////*DATE:19-Nov-0609:40 /////////*DATE:19-No v-0609:40*////////////// *////////////// /////////*CCSPCMCCompiler,Version3.227 /////////*CCSPCMCCo mpiler,Version3.227*////////////// *////////////// /////////*NGUOITHUCHIEN:LEO-XBS /////////*NGUOITHUCH IEN:LEO-XBS*////////////// *////////////// //******************************************** //******************** ****************************************** ****************** #include<16F877A.h> #include #fusesHS,NOWDT,NOPROTECT,NOLVP #usedelay(clock=20000000) #usefast_io(a) #usefast_io(b) #usefast_io(c) #usefast_io(d) #usefast_io(e) //**************************************** //////DINHNGHIACACCHANVACACCONG///// //**************************************** #definedc_trai1rc1 #definedc_trai2rb1 #definedc_phai1rc2 #definedc_phai2rb3 #definedc_nang1rb4 #definedc_nang2rb5 #definedc_day1rb6 #definedc_day2rb7 #definedc_kep1rd0 #definedc_kep2rd1 #definesw1rc0 //******************************************* ///////KHAIBAOCACHAMVABIEN////////////// //******************************************* voidsetup(); voidtien(); voidlui(); voiddung(); voiddk_tien(); voidsang_phai(); voidsang_trai(); voidquay_phai(); voidquay_trai(); voiddieu_khien(); intled_thu(); voidnang(); voidha(); voidkep(); voidnha(); voidday(); voidthu(); voidprogram1(); voidprogram2(); intdem,led; constunsignedcharlech_phai[7]={0b00001000,0 constunsignedcharle ch_phai[7]={0b00001000,0b00010000,0b00011000,0b00 b00010000,0b00011000,0b00100000,0b 100000,0b 00101000,0b00110000,0b00111000}; constunsignedcharlech_trai[7]={0b00000001,0 constunsignedcharle ch_trai[7]={0b00000001,0b00000010,0b00000011,0b00 b00000010,0b00000011,0b00000100,0b 000100,0b
00000101,0b00000110,0b00000111}; constunsignedcharnhieu[50]={0b00000000,0b00 constunsignedcharnh ieu[50]={0b00000000,0b00001001,0b00001010,0b00001 001001,0b00001010,0b00001011,0b000 011,0b000 01100,0b00001101,0b00001110,0b00010001,\ 0b00010010,0b00 0b00010010,0b00010011,0b00010100,0b00010 010011,0b00010100,0b00010101,0b000 101,0b000 10110,0b00011001,0b00011010,\ 0b00011100,0b00 0b00011100,0b00100001,0b00100010,0b00100 100001,0b00100010,0b00100011,0b001 011,0b001 00100,0b00100101,0b00100110,\ 0b00101001,0b00 0b00101001,0b00101010,0b00101100,0b00110 101010,0b00101100,0b00110001,0b001 001,0b001 10010,0b00110100,0b00011110,\ 0b00111111,0b00 0b00111111,0b00111011,0b00111101,0b00111 111011,0b00111101,0b00111110,0b001 110,0b001 11001,0b00111010,0b00111100,\ 0b00110111,0b00 0b00110111,0b00101111,0b00011111,0b00100 101111,0b00011111,0b00100111,0b000 111,0b000 10111,0b00001111,0b00110011,\ 0b00110101,0b00 0b00110101,0b00110110,0b00101011,0b00101 110110,0b00101011,0b00101101,0b001 101,0b001 01110,0b00011011,0b00011101}; //******************************************** //******************** ************************************************* ********************************** ********* *********************************** /////////////////////////////////CHUONGTRINH ////////////////////// ///////////CHUONGTRINHCHINH//////////////////// CHINH///////////////////////////// ///////// /////////////////////////////////// //******************************************** //******************** ************************************************* ********************************** ********* *********************************** voidmain() { setup(); } //******************************************** //******************** ************************************************* ********************************** ********* *********************************** ///////////////////////////////////CHUONGTRIN ////////////////////// /////////////CHUONGTRINH1////////////////////// H1/////////////////////////////// ///////// /////////////////////////////////// //******************************************** //******************** ************************************************* ********************************** ********* *********************************** voidprogram1() { while(true) { dieu_khien(); } } //******************************************** //******************** ************************************************* ********************************** ********* ********************************** //////////////////////////CACCHUONGTRINHCON ////////////////////// ////CACCHUONGTRINHCON///////////////////////// ////////////////////////////////// ///////// ////////////////////////////////// //******************************************** //******************** ************************************************* ********************************** ********* ********************************** voidsetup() { set_tris_a(0b00111111); set_tris_b(0b00000101); set_tris_c(0b11111001); set_tris_d(0); set_tris_e(0b00000111); portb=0; portd=0; led=0; dem=0; dc_trai1=0; dc_phai1=0; while(true){ if(sw1==0)program1(); }
} //*********************************************** voiddieu_khien() { led=led_thu(); switch(led) { case0:dk_tien();break; case01:sang_phai();break; case02:sang_trai();break; } if(re0)++dem; } //************************************************* voidtien() { dc_trai1=1; dc_trai2=0; dc_phai1=1; dc_phai2=0; delay_ms(500); } //************************************************** voiddk_tien() { while(led_thu()==0) { dc_trai1=1; dc_trai2=0; dc_phai1=1; dc_phai2=0; } } //************************************************** voidlui() { dc_trai1=0; dc_trai2=1; dc_phai1=0; dc_phai2=1; delay_ms(1000); } //************************************************** voidsang_phai() { setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); setup_timer_2(T2_DIV_BY_16,127,1); while(led_thu()==1) { set_pwm2_duty(1023); set_pwm1_duty(400); } setup_ccp1(CCP_OFF); setup_ccp2(CCP_OFF); } //************************************************** voidsang_trai() { setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM); setup_timer_2(T2_DIV_BY_16,127,1); while(led_thu()==2) { set_pwm2_duty(400); set_pwm1_duty(1023); } setup_ccp1(CCP_OFF); setup_ccp2(CCP_OFF); } //************************************************** voidquay_phai() { while(ra1>0){ dc_trai1=1; dc_trai2=0; dc_phai1=0; dc_phai2=1; } } //************************************************** voidquay_trai() { while(ra4>0){ dc_trai1=0; dc_trai2=1; dc_phai1=1; dc_phai2=0; } } //************************************************** voiddung() { dc_trai1=1; dc_trai2=1; dc_phai1=1; dc_phai2=1; delay_ms(1000); } //************************************************** voidnang() { dc_nang1=1; dc_nang2=0; delay_ms(1000); } //************************************************** voidha() { dc_nang1=0; dc_nang2=1; delay_ms(1000); } //************************************************** voidday() { dc_day1=1; dc_day2=0; delay_ms(1000); }
//************************************************* voidthu() { dc_day1=0; dc_day2=1; delay_ms(1000); } //************************************************* voidkep() { dc_kep1=1; dc_kep2=0; delay_ms(1000); } //************************************************* voidnha() { dc_kep1=0; dc_kep2=1; delay_ms(1000); } //************************************************* intled_thu() { inti; for(i=0;i<7;i++) { if(porta==lech_trai[i])return(1); elseif(porta==lech_phai[i])return(2); } for(i=0;i<50;i++) { if(porta==nhieu[i])return(0); } }