06-05-2006, 01:56 PM | #11 | |
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 16
: |
Ngắt ngoài và đèn 7 đoạn
Một phương án khác:
#include <16F877A.h> #fuses NOWDT, XT #fuses NOLVP // important #use delay(clock=4000000) // 0 1 2 3 4 5 6 7 8 9 byte const DIGITS[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }; int8 i = 0; /////////////////////////////////////////////////////////// /* private */void off_on_led_transistor() { output_low(PIN_D1); delay_ms(1); output_high(PIN_D1); } /////////////////////////////////////////////////////////// /* private */void display(int8 digit) { output_c(DIGITS[digit] ^ 0xff); off_on_led_transistor(); } /////////////////////////////////////////////////////////// #INT_EXT void ngat_RB0() { i = (i < 9) ? i+1 : 1; delay_ms(200); // switch debounce period } /////////////////////////////////////////////////////////// /** * Count number of key presses and display it on a 7-segment LED. * If the number is 9, the next count will be 1 * * Wiring (TM Board) * (1) PIC's B0 to R0 * Matrix Key C0 to GND * (2) PIC's C0-C6 to 7-segment LED's A-G * PIC's D1 to 7-segment LED's C2 */ void main() { enable_interrupts(GLOBAL); enable_interrupts(INT_EXT); while (true) display(i); } Trích:
|
|
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 26 | 07-05-2024 08:55 AM |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 11 | 04-05-2024 04:43 AM |
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 |