![]() |
|
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 |
|
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Aug 2010
Bài gửi: 27
: |
#include <16F877A.h>
#include <def_877a.h> #device adc=8 #FUSES NOWDT, HS, PUT, PROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) //#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8) #use fast_io(b) int8 i=0; void densang(); void reset(); #int_rb void ngatngoai() { if ((RBIF)&&(RBIE)) { if(RB0==0) {//while(RB0==0); i++; if(i==10) { i=0; densang(); } } if(RB1==0) { reset(); } } } void main() { set_tris_b(0); set_tris_d(0xff); enable_interrupts(int_rb); enable_interrupts(global); ext_int_edge(H_to_L); while(true) { } } void densang() { output_high(PIN_D0); } void reset() { i=0; output_low(pin_d0); } đây là code e mới viết. các cao thủ xem jup e xem có sai sót j k nhá!!!e cám ơn thay đổi nội dung bởi: akatsu, 29-10-2010 lúc 05:01 PM. Lý do: copy thiếu.xin lỗi |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
set_tris_b(0);//các chân portb là chân xuất dữ liệu.(nên phím không có tác dụng) set_tris_d(0xff);//các chân portd là chân nhập dữ liệu. sửa bài này như sau: Code:
#include <16F877A.h> #include <def_877a.h> #device adc=8 #FUSES NOWDT, HS, PUT, PROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) //#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #use fast_io(b) int8 i=0; void densang(); void reset(); #int_rb void ngatngoai() { if((RBIF)&&(RBIE)) { if(RB4==0) { delay_ms(10);//chong rung phim if(RB4==0) { i++; if(i==10) { i=0; densang(); } while (RB4==0)//chờ phím nhả { } delay_ms(10);//chong rung phim } } //******************************* else if(RB5==0) { delay_ms(10);//chong rung phim if(RB5==0) { reset(); while (RB5==0)//chờ nhả phím { } delay_ms(10);//chong rung phim } } } void main() { set_tris_b(0xf0);//rb4...rb7 là pin nhập set_tris_d(0xfe);//pinD0 là pin xuất dữ liệu enable_interrupts(int_rb); enable_interrupts(global); ext_int_edge(H_to_L); reset(); while(true) { } } void densang() { output_high(PIN_D0); } void reset() { i=0; output_low(pin_d0); }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. thay đổi nội dung bởi: tdm, 30-10-2010 lúc 10:26 PM. |
|
![]() |
![]() |
![]() |
|
|