View Single Post
Old 08-08-2011, 01:11 PM   #11
minhkhoa1990
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 8
:
Trích:
Nguyên văn bởi mini_2440 View Post
đâ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) ;
}
FOR(J = 0 ; J < 50*SOVONG + SOBUOC / 4 ; J++ )
DELAY_MS(7*(10 - TOCDO)) ;
anh ơi cho em hỏi công thức này: 50*SOVONG + SOBUOC / 4 và 7*(10 - TOCDO) là sao em ko hiểu giải thich cho em với
thân!
minhkhoa1990 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn