button Led 7seg XC8

8:39:00 PM
1. Sơ đồ nguyên lý.

Sơ đồ nguyên lý khối Led đơn + Phím nhấn trên Kit Pic V1 New như sau.


[​IMG]

2. Nguyên lý hoạt động.

Dựa vào sơ đồ nguyên lý ta thấy:
-Khi phim không được nhấn, chân RA2 ở mức cao (mức logic 1). 
-Khi phím được nhấn, chân RA2 ở mức thấp (mức logic 0).
-Muốn Led đơn sáng, xuất 0v ra chân RA1(xuất mức logic 0).
-Muốn Led đơn tắt, xuất 5v ra chân RA1 (xuất mức logic 1).
-RA2 là chân nhận dữ liệu (input).
-RA1 là chân xuất dữ liệu (ouput).
3. Thuật toán.
Theo yêu cầu bài toán ta có thuật toán điều khiển như sau: cứ mỗi khi phím được nhấn, đảo trạng thái chân điều khiển led đơn 1 lần.

Đây là code.

http://chiasedientu.blogspot.com
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 8000000
#include "xc.h"
unsigned char  const SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void main(void) {
     TRISB = 0x00;           //Set PortB to all outputs
     TRISC0= 1;             //Set PortC.0 as input
     char digit=0;
     while(1){
     if (!RC0)        //Check if switch SW1 is closed
      {
        __delay_ms(100); //wait for 100ms
        if (!RC0)       //Check if switch SW1 is still closed
         {
        PORTB = (SEGMENT_MAP[digit]);
        __delay_ms(50); //Delay 1 second
        digit++;
        if (digit>9)
        digit=0;
         }
      }

      else
      {
        PORTB = (SEGMENT_MAP[digit]);
      }
    }
}
Ảnh mô phỏng protues.


Link download project.

Share this

Related Posts

Previous
Next Post »