|
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 |
05-04-2009, 10:48 PM | #1 |
Đệ tử 2 túi
Tham gia ngày: Jan 2009
Bài gửi: 34
: |
Nhờ các anh chị trong diễn đàn picvietnam.com giúp đỡ!
Chào các anh chị trong diễn đàn PICVIETNAM.COM!
Em là sinh viên trường đại học bách khoa hà nội. Em mới bắt tay vao học Pic nên còn hiêu biết rất ít về nó. Có trương trinh sau em da thử chạy băng proteus nhưng khong thấy có hiệu ứng gì. Bai toán của em là diều khiển tốc độ động cơ Dc .cÓ hiển thị kết quả dùng led 7 đoạn. Các anh chị giúp giải thích giúp em vi sao trương trinh lai ko chạy nhe! Nếu dc thi sửa giúp em luôn! Em xim cám ơn nhiều! Code:
#include<16f877a.h> #device*=16ADC=8 #fuses nowdt,hs,noput,noprotect,nodebug,nolvp,nocpd,nowrt ,nobrownout #use delay(clock=20Mhz) #byte porta=0x05 #byte portb=0x06 #byte portc=0x07 #byte portd=0x08 int16 count1,count2,i1,i2,x1,x2; #int_ext ext_isr() { count1++; } #int_timer1 timer1_isr() { count2++; if(count2==9) //tran sau 104,8576ms { i1=count1; count1=0; count2=0; } } void main() { set_tris_a(1); set_tris_b(1); set_tris_c(0); set_tris_d(0); setup_ccp1(ccp_pwm); setup_timer_2(t2_div_by_16,255,1); setup_adc_ports(all_analog);//tat ca cac cong ao->a5;e0->e2 setup_adc(adc_clock_internal); setup_timer_1 (t1_internal | t1_div_by_8 ); enable_interrupts(int_ext); enable_interrupts(int_timer1); set_timer1(281408);//moi chu ky lenh het 0.2 micro giay enable_interrupts(global); while(true) { set_adc_channel(2); delay_ms(10); i2=read_adc(); set_pwm1_duty(51*i2); x1=i1/10; x2=i1%10; portd=x1*16+x2; } } thay đổi nội dung bởi: namqn, 06-04-2009 lúc 04:52 AM. Lý do: định dạng code |
06-04-2009, 10:20 PM | #2 |
Đệ tử 3 túi
|
Bạn post file mô phỏng Protues lên để tiện cho người khác kiểm tra và sửa lỗi giúp bạn.
Khi dùng xong ngắt nào thì xóa cờ của ngắt đó, để tránh gây ra ngắt sai. Hàm ngắt nếu không có giá trị trả về thì thêm chữ void đằng trước hàm. thay đổi nội dung bởi: dvkkt, 06-04-2009 lúc 10:45 PM. |
|
|