View Single Post
Old 01-09-2009, 11:16 AM   #1
socola
Đệ 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);
}
}
socola vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn