![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Nov 2007
Bài gửi: 8
: |
Dùng PIC điều khiển động cơ bước
Chào mọi người !Mình đang viết chương trình điều khiển Step Motor nhưng đang mắc kẹt lại ở chỗ này không tìm được cách giải quyết mấy ngày nay rồi.Đã cố gắng nhưng không ra nên rất mọi người giúp đỡ mình với.Đây là code của mình
Code:
#include <16F877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #byte portb=0x06 #byte intcon=0x000B #bit RB4=portb.4 #bit RB5=portb.5 #bit RB6=portb.6 #bit RB7=portb.7 #bit RBIF=intcon.0 //dinh nghia co ngat RB #bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB int a=0x11,speed=1000; // Chuong trinh ngat #int_RB void ngat_RB() { if((RBIF)&&(RBIE)) { //Quay nguoc chieu kim dong ho { if(RB4==0) while (true) { rotate_left(&a,1); portb=a; delay_ms(1000); } } //Quay cung chieu kim dong ho { if(RB5==0) while (true) { rotate_right(&a,1); portb=a; delay_ms(1000); } } //Quay nguoc chieu kim dong ho nhanh dan { if(RB6==0) { speed=-50; while (true) { rotate_left(&a,1); portb=a; delay_ms(speed); } } } //Quay cung chieu kim dong ho nhanh dan { if(RB7==0) { speed=-50; while (true) { rotate_right(&a,1); portb=a; delay_ms(speed); } } } RBIF=0; //Xoa co ngat RB } } // Chuong trinh chinh main() { set_tris_b(0xF0); portb=0x0F; enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); while(true) { } } Mình cảm ơn các bạn nhiều. Mình còn file mô phỏng mà không biết upload lên diễn đàn sao cả,đành up lên mediafire vậy.Mong các bạn chỉ bảo thêm. Link download : thay đổi nội dung bởi: ngoyeungoc, 25-11-2009 lúc 10:12 AM. |
![]() |
![]() |
|
|