Em viet doan code cho con robosumo dung ic L293D de dieu khien 2 dong co, 4 cam bien(2 truoc, 2 sau). May bac giup e phan tich thu co sai cho nao k nhe! Thank!
Code:
#include <AT89X51.H> sbit dirA1=P2^0; //dirA1, dirB1, En1, dirA2, dirB2, En2 la 6 dau vao cua ic l293D, duoc ket noi voi cac chan cua VDK. sbit dirB1=P2^1; sbit En1=P1^6; sbit dirA2=P2^2; sbit dirB2=P2^3; sbit En2=P1^7; sbit cbtt=P0^0; // Cam bien truoc ben trai. sbit cbtp=P0^1;// Cam bien truoc ben phai. sbit cbst=P0^2;// Cam bien sau ben trai. sbit cbsp=P0^3;// Cam bien sau ben phai. void motortrai_toi(); void motortrai_lui(); void motortrai_dung(); void motorphai_toi(); void motorphai_lui(); void motorphai_dung(); void toi(); void lui(); void dung(); void retrai(); void rephai(); void motortrai_toi() { dirA1=1; dirB1=0; En1=1; } void motortrai_lui() { dirA1=0; dirB1=1; En1=1; } void motortrai_dung() { En1=0; } void motorphai_toi() { dirA2=1; dirB2=0; En2=1; } void motorphai_lui() { dirA2=0; dirB2=1; En2=1; } void motorphai_dung() { En1=0; } void toi() { motortrai_toi(); motorphai_toi(); } void lui() { motortrai_lui(); motorphai_lui(); } void dung() { motortrai_dung(); motorphai_dung(); } void retrai() { motortrai_dung(); motorphai_toi(); } void rephai() { motortrai_toi(); motorphai_dung(); } void main() { unsigned char INPUT; while(1) { switch(INPUT) { case 0: { if(cbtt==0&&cbtp==0) toi(); break; } case 1: { if(cbst==1||cbsp==1) toi(); break; } case 2: { if(cbtt==1||cbtp==1) lui(); break; } case 3: { if(cbtp==1&&cbsp==1) retrai(); break; } case 4: { if(cbtt==1&&cbst==1) rephai(); break; } } } }