![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 5
: |
Nhân tiện em hỏi luôn.
Em viết được đoạn code sau: // Truong trINH dieu khien dong co buoc 1.8* quay 1 vong thì dao chieu, lap di lap lai, HIEN THI LCD SO BUOC. // a1 = B0 // a2 = B1 // b1 = B2 // b2 = B3 // LCD: // D7 = RD7 // D6 = RD6 // D5 = RD5 // RS = RD2 // RW = GND // E = RD3 //------------------------------------------------------------------------------------------------------------------------------------------------------------- #include<16f877a.h> #include<def_877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=12000000) #include<lcd_lib_4bit.h> #byte PORTA=0x05 #byte PORTB=0x06 #byte PORTC=0x07 #byte PORTD=0x08 #byte PORTE=0x09 #use fast_io(b) #use fast_io(d) void main(void) { LCD_init(); set_tris_d(0); while(true) { int i=99; // Khoi tao i la so nguyen 16bit, i ban dau = 99 LCD_putcmd(128); Printf(LCD_putchar"step x 8 ="); //------------------------------------------------------------------------------------------------------------------------------------------------------------- // QUAY THUAN for(;i>=49;i--) // Vong lap quay thuan, stepper 1.8* quay 1 vong = 400 buoc, 1 vong lap co 8 buoc, nen can 50 vong lap { set_tris_b(0); output_low(PIN_B0); // buoc 1 - cuon a1 delay_ms(50); output_low(PIN_B2); // buoc 2 - mo cuon b1 = 02 ( a1+b1) delay_ms(50); output_high(PIN_B0); // tat a1 delay_ms(50); output_low(PIN_B1); // mo a2 = 21 ( b1+a2) delay_ms(50); output_high(PIN_B2); // tat b1 delay_ms(50); output_low(PIN_B3); // mo b2 ( a2+b2) delay_ms(50); output_high(PIN_B1); // tat a2 delay_ms(50); output_low(PIN_B0); // mo a1 ( a1+b2) delay_ms(50); output_high(PIN_B3); // tat b2 LCD_putcmd(138); Printf(LCD_putchar"%u",i); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- // QUAY NGHICH for(;i<49;i--) { set_tris_b(0); output_low(PIN_B0); delay_ms(50); output_low(PIN_B3); delay_ms(50); output_high(PIN_B0); delay_ms(50); output_low(PIN_B1); delay_ms(50); output_high(PIN_B3); delay_ms(50); output_low(PIN_B2); delay_ms(50); output_high(PIN_B1); delay_ms(50); output_low(PIN_B0); delay_ms(50); output_high(PIN_B2); LCD_putcmd(138); Printf(LCD_putchar"%u",i); } LCD_putcmd(0x01); // XOA MAN HINH LCD } } // END //------------------------------------------------------------------------------------------------------------------------------------------------------------- Em đặt được giá trị cho i rồi, giờ em muốn dùng nút nhấn đặt tại chân RA0 để nhập giá trị cho i, rồi dùng nút start để khởi động động cơ ( chưa bấm start thì không nhúc nhích gì ![]() Anh/chị nào chỉ em làm vậy với, gợi ý cũng được, viết dùm em đoạn code cũng được. À, em hỏi tí, làm sao poss được đoạn code dạng txt vào giữa bài nhỉ? Đừng chê em kém nha, em mới tập tọe thui, với lại em đang ôn thi tốt nghiệp, tranh thủ lúc rảnh rỗi học PIC. ![]() thay đổi nội dung bởi: huyphuc92, 22-06-2013 lúc 12:25 AM. Lý do: Poss nhầm code |
![]() |
![]() |
|
|