![]() |
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); } } |
Trích:
Code:
#include <16F877A.h> |
khi tắt nguồn các giá trị biến vẫn được lưu. nên bạn lúc đặt biến bạn gán kèm theo giá trị ban đầu cho nó.
anh Mr Bi hình như đã giải quyết dùm bạn!! |
Code:
int detect_sw() Regards |
chu cung dang co 1 bai tap lam mach nhay 8 led don.bac nao biet mach va chuong trinh nao don gian giup cho chu voi.chu gio moi hoc pic nen con rat mo ho lam.chua hieu gi lam.mong cac bac giup do.cam on cac bac truoc!
|
Múi giờ GMT. Hiện tại là 06:08 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam