![]() |
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 11
: |
![]() Em dang làm đề tài về động cơ bước và có ngâm cứu vài code viết sẵn ,e đã sửa lại nhưng sau nó không chạy dúng , mong mấy huynh giúp đở , phím stop(B0),forward (B2),Reverse(B4)
nhưng mạch khi mô phổng lại không đúng , Code đây : #include <16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use fast_io(B) #use fast_io(D) #define stop input(pin_B0) #define forward input(pin_B2) #define reverse input(pin_B4) int8 bienxoay=0x99,sovong,sobuoc,dem=0; ////////////////Chuong Trinh Con//////////////////////////////////// /*================================================= =================*/ void dung() { delay_us(100); while(stop==0) {}; sobuoc=0; sovong=0; output_D(0); output_A(0); output_C(0xFF); } /*================================================= =================*/ void quaythuan() { while(true) { output_D(bienxoay); sobuoc++; if(sobuoc==97) { sobuoc=0; sovong++; if (sovong==100) { sobuoc=0; sovong=0; } } rotate_right(&bienxoay,1); if(stop==0) { dung(); break; } delay_ms(10); } } /*================================================= =================*/ void quaynghich() { while(true) { output_D(bienxoay); sobuoc++; if(sobuoc==97) { sobuoc=0; sovong++; if (sovong==100) { sobuoc=0; sovong=0; } } rotate_left( &bienxoay,1); if(stop==0) { dung(); break; } delay_ms(10); } } /*======================Chuong Trinh Chinh================================*/ void main() { set_tris_B(0xFF); set_tris_D(0); while(true) { if (forward==0) { delay_us(100); while(forward==0) { sobuoc=0; sovong=0; }; quaythuan(); } else if (reverse==0) { delay_us(100); while(reverse==0) { sobuoc=0; sovong=0; }; quaynghich(); } } } |
![]() |
![]() |
|
|