|
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 |
01-09-2009, 11:16 AM | #1 |
Đệ tử 1 túi
Tham gia ngày: Jun 2009
Bài gửi: 18
: |
Bài tập nút nhấn cẩn giúp đỡ
Mình có viết 1 CT điều khiển có 2 nút nhấn. Khi nhấn phím 1 thì led đơn 1 sáng và led 7 hiện số 1. Tương tự khi bấm số 2
Vấn đề mình cần giúp là khi mình tắt nguồn và bật lại thì led 7 đoạn, led đơn vẫn hiện 1 số. Ý mình là khi bật nguồn tất cả sẽ tắt hết để mình chọn lại số mình muốn Thanks code: (Nhờ mọi người chỉ mình cách bỏ vào thẻ code) #include <16F877A.h> #include <DEF_877A.h> #fuses NOWDT,PUT,HS,NOPROTECT,NOLVP #use delay(clock=20000000) #define led0 rd0 #define led1 rd1 #define bt0 rc0 #define bt1 rc1 #define loa ra2 #define led7vcc ra0 #define data_led portb #define led_singer portd char dig[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; void display_int(int x) { int i; i = x%10; led7vcc = 0; data_led = dig[i]; delay_ms(2); led7vcc = 1; } void led_don(int i) { switch(i) { case 1: led_singer = 0x01; break; case 2: led_singer = 0x02; break; default:led_singer = 0x00; break; } } int detect_sw() { int i ; if(bt0 == 0) { i=1; loa = 1; delay_ms(50); loa = 0; delay_ms(200); } if(bt1== 0) { i=2; loa = 1; delay_ms(50); loa = 0; delay_ms(200); } return i; } void main() { int i ; trisa = 0x00; trisb = 0x00; trisc = 0xff; trisd = 0x00; porta = 0x00; portb = 0x00; portc = 0x00; portd = 0x00; while(true) { i = detect_sw(); display_int(i); led_don(i); } } |
Tags |
#include <16f877a.h> |
|
|