![]() |
|
![]() |
#1 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
cần hỏi
:
//************************************************** *************************** // Author : nhh // Date : 03/04/06 // Hardware: PIC16F877A //************************************************** *************************** #include <16F877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #use fast_io(d) #byte portb=0x06 #byte portd=0x08 const unsigned char digital[]={0b00000110, 0b01011011, 0b01001111, 0b01100110,\ 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; // ma hoa digital duoi dang mang // Chuong trinh ngat #int_ext void ngat_RB0() { int i; if(i<9) { portd=digital[i]; ++i; } if(i==9) { i=0; } } // Chuong trinh chinh main() { set_tris_b(0b00000001); set_tris_d(0); enable_interrupts(global); enable_interrupts(int_ext); ext_int_edge(H_to_L); portd=0b00111111; while(true) { // chi doi ngat nen vong lap nay ko co gi ca ! } } cho mình hỏi trong chương trình này thì : lệnh này : #use fast_io(b) #use fast_io(d) #byte portb=0x06 #byte portd=0x08 có ý nghĩa là gì vậy? và lệnh này nữa: #int_ext chưa hết: enable_interrupts(global); enable_interrupts(int_ext); ext_int_edge(H_to_L); cám ơn nha |
![]() |
![]() |
#2 | |
Đệ tử 9 túi
|
Trích:
- #byte portb=0x06: địa chỉ portb - #int_ext: chỉ thị hàm ngắt ngoài trên chân RB0 - enable_interrupts(global);: cho phép ngắt toàn cục - enable_interrupts(int_ext);: cho phép ngắt ngoài trên chân RB0 - ext_int_edge(H_to_L);: kiểu ngắt cạnh xung cao xuống thấp Bạn cố gắng tìm hiểu trong help của trình biên dịch, có cả đó. Đừng hỏi những câu dạng như thế này vì sẽ không ai trả lời cho bạn đâu.
__________________
Ngày mai bắt đầu từ ngày hôm nay Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này: http://www.picvietnam.com/forum//showthread.php?t=1263 |
|
![]() |
![]() |
#3 |
Đệ tử 2 túi
Tham gia ngày: Mar 2007
Bài gửi: 45
: |
[QUOTE=nhh;8442]- #use fast_io(b): dùng cái này thì trình dịch chỉ set chân i/o với 1 lệnh duy nhất, nhớ là trong hàm main() phải dùng lệnh set_trix_x(); thì mới được.
- #byte portb=0x06: địa chỉ portb -tấc cả nhửng cái này đã được định nghĩa rất kĩ và dể hiểu bạn tìm các bài của anh linhnc308, tìm bài nói về file _def_877a.h ấy. chúc may mắn!!! |
![]() |
![]() |
#4 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
Trích:
vâng! em cám ơn anh.em cũng chưa kịp đọc help nên mới như vậy. |
|
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Mar 2007
Bài gửi: 5
: |
Mọi người cho em hỏi chút ạ,
Em đang viết ct hiện số cho led 7 thanh như mạch dưới dùng polling nhưng ko sao chạy được T_T. Nhất là ko chọn được 2 chân Anode chung, lúc nào cũng hiện cả 2 led cùng lúc. Đoạn code của em như sau: Code:
int chuso[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; int i, j; void main() { while(1){ output_b(0x00); //tat cac led output_e(0xFF); i = 0; //output_e(0x00); while(i<3){ output_e(i); for(j = 0; j<=9; j++){ output_b(~chuso[j]); delay_ms(10); } //delay_ms(30); i++; } } } |
![]() |
![]() |
#6 | |
Đệ tử 4 túi
Tham gia ngày: Aug 2006
Bài gửi: 61
: |
Trích:
Còn code khi tăng thời gian delay lên 1000 thì thấy rõ nhưng không hiểu bạn định làm gì. Sao ko post được file đính kèm ![]() thay đổi nội dung bởi: huybo02, 06-05-2007 lúc 09:32 PM. |
|
![]() |
![]() |
#7 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2007
Bài gửi: 5
: |
Trích:
Dù sao cũng cám ơn bạn nhé. |
|
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |