![]() |
|
Tài trợ cho PIC Vietnam |
Cơ cấu chấp hành (Actuator) Động cơ DC, AC, động cơ không chổi than, động cơ không cảm biến... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#10 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 21
: |
đây là đoạn code viết cho động cơ bước - GIAO TIẾP VỚI máy tính , mình học từ chỗ th.DUYÊN - TT PHI LỢI NHUẬN, các bạn tham khảo nhé,
#INCLUDE <16F877A.H> #FUSES HS #USE DELAY(CLOCK = 8000000) #USE RS232(BAUD = 9600 ,PARITY = N , XMIT = PIN_C6 , RCV = PIN_C7 , BITS = 9 ) INT8 I , J ; INT16 THAMSOKHOIDONG[20] ; VOID RUN(INT1 CHIEU , INT16 SOVONG , INT16 SOBUOC, INT16 TOCDO , INT16 NGHI) ; #INT_RDA VOID NGATTRUYENTHONG() { THAMSOKHOIDONG[I] = GETCH() - 48 ; I++ ; IF(I == 20) { I = 0 ; RUN(THAMSOKHOIDONG[0],THAMSOKHOIDONG[1],THAMSOKHOIDONG[2],THAMSOKHOIDONG[3],THAMSOKHOIDONG[4]) ; RUN(THAMSOKHOIDONG[5],THAMSOKHOIDONG[6],THAMSOKHOIDONG[7],THAMSOKHOIDONG[8],THAMSOKHOIDONG[9]) ; RUN(THAMSOKHOIDONG[10],THAMSOKHOIDONG[11],THAMSOKHOIDONG[12],THAMSOKHOIDONG[13],THAMSOKHOIDONG[14]) ; RUN(THAMSOKHOIDONG[15],THAMSOKHOIDONG[16],THAMSOKHOIDONG[17],THAMSOKHOIDONG[18],THAMSOKHOIDONG[19]) ; } } VOID MAIN() { ENABLE_INTERRUPTS(INT_RDA) ; ENABLE_INTERRUPTS(GLOBAL) ; I = 0 ; WHILE(TRUE) { OUTPUT_D(255) ; DELAY_MS(20) ; OUTPUT_D(0) ; DELAY_MS(700) ; } } VOID RUN(INT1 CHIEU , INT16 SOVONG , INT16 SOBUOC, INT16 TOCDO , INT16 NGHI) { IF(CHIEU) { FOR(J = 0 ; J < 50*SOVONG + SOBUOC / 4 ; J++ ) { OUTPUT_B(1) ; DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(2); DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(4); DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(8) ; DELAY_MS(7*(10 - TOCDO)) ; } } ELSE { FOR(J = 0 ; J < 50*SOVONG + SOBUOC / 4 ; J++ ) { OUTPUT_B(8) ; DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(4); DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(2); DELAY_MS(7*(10 - TOCDO)) ; OUTPUT_B(1) ; DELAY_MS(7*(10 - TOCDO)) ; } } OUTPUT_B(0); DELAY_MS(1000*NGHI) ; } |
![]() |
![]() |
|
|