PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 01-09-2009, 10:40 PM   #2
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi socola View Post
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
Góp í đầu tiên ,đừng bao giờ dùng biến toàn cục và cục bộ trùng nhau thế

Code:
#include <16F877A.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


const unsigned char dig[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

void display_int(int dta)
{ led7vcc = 0;
   if(dta==0) data_led = dig[0xFF];
   else data_led = dig[dta%10];
   delay_ms(2);
   led7vcc = 1;
}

void led_don(int dta)
{
   switch(dta)
   {  case 0: led_singer = 0x00;break;
      case 1: led_singer = 0x01; break;
      case 2: led_singer = 0x02; break;
   
      default:led_singer = 0x00; break;
   }
}

int detect_sw()
{  int dta ;
  
   if(bt0 == 0)
   {  
      dta=1;
      loa = 1;
      delay_ms(50);
      loa = 0;
      delay_ms(200);
      
   };   
   if(bt1== 0)
   {  
      dta=2;
      loa = 1;
      delay_ms(50);
      loa = 0;
      delay_ms(200);
    } ; 
   
   return dta;
}

void main()
{
   int i =0;
  
   trisa = 0x00;
   trisb = 0x00;
   trisc = 0xff;
   trisd = 0x00;
   
   porta = portb = portc = portd = 0x00;
    
   while(1)
   { i=detect_sw();
      display_int(i);
      led_don(i);
   }
}
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
#include <16f877a.h>

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:08 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam