![]() |
|
![]() |
#1 |
Đệ tử 6 túi
Tham gia ngày: Apr 2009
Bài gửi: 132
: |
em vẫn chưa khai báo được cái nút nhấn,hum ny em không mang theo code và cái sơ đồ,cả nhà có ai đã làm thành công nhiều về vấn đề này xin giúp đỡ em với,có code và sơ đồ luôn thi càng tốt,hic,mệt cái này quá,
thanks |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 3 túi
Tham gia ngày: Feb 2009
Bài gửi: 47
: |
Trích:
Code:
#include<16f877a.h> #fuses nowdt,hs,noprotect,nodebug #use delay(clock=20M) #bit button2 =0x008.2 #bit button1 =0x008.0 void main() { int a=5; set_tris_b(0x00); set_tris_d(0xff); output_b(0); while(true) { if(button1) {delay_ms(40); while(button1){}; a++;} if(button2) {delay_ms(40); while(button2){}; a--;} output_b(a); } } thay đổi nội dung bởi: nhamdtk4, 18-11-2009 lúc 09:37 AM. |
|
![]() |
![]() |
![]() |
#3 |
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. |
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Nov 2007
Bài gửi: 8
: |
Ui,các bạn đâu rồi??? Sao không thấy ai giúp đỡ mình hết dzậy! Mình đang rất cần...Help me!
|
![]() |
![]() |
![]() |
#5 | |
Đệ tử 4 túi
Tham gia ngày: Mar 2007
Nơi Cư Ngụ: Da Nang
Bài gửi: 69
: |
Trích:
Thân! |
|
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: Nov 2007
Bài gửi: 8
: |
Mình cảm ơn bạn.Các bạn có thể giải thích rõ về PWM của PIC không.Trong luồng "CCS C cho PIC16F877A" mình đọc qua nhưng không hiểu rõ lắm.Mình đang lập trình điều khiển cho động cơ bước(loai 6 dây ra). Để điều khiển tốc độ động cơ thì phải dùng PWM(đoạn code trên mình dùng delay để thay đổi tốc độ nhưng không được). PIC 16F877A chỉ có 2 ngõ ra RC1 và RC2 là dùng trong PWM,trong khi mình cần 4 ngõ vào điều khiển.Các bạn hướng dẫn cho mình cách dùng PWM để điều khiển tốc độ cho động cơ bước 4 pha với.Mình cảm ơn nhiều!
|
![]() |
![]() |
![]() |
|
|