Đếm từ 0 - 9 sử dụng 2 button with XC8

9:05:00 PM
Chương trình đơn giản thôi ha. Các bạn có thể download project về tham khảo.

Mạch bao gồm  2 nút nhấn và 1 led 7seg CC chung sơ đồ như hình bên dưới.

Đếm từ 0 - 9 sử dụng 2 button with XC8

Giải thích 1 tý về ý nghĩa các đoạn code cho các bạn hiểu hơn về nó nhá.

- Đoạn này là phần khai báo các thư viện cho một chương trình.

#include <stdio.h>
#include <stdlib.h>
#include "xc.h"

- Đây là đoạn code khai báo tuần số thạch anh dùng trong chương trình, chương trình nào cũng phải có.

#define _XTAL_FREQ 8000000

- Là phần chương trình chính của chúng ta.

unsigned char  const SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void main(void) {
     ADCON1=0x07;        // bo chế độ ADC
     TRISB = 0x00;          // cho portb là output
     TRISA0= 1;             // cho chân ra0 là input
     TRISA1 = 1;           // chân ra1 là input
     char digit=0;           khai báo digit

     while(1){

- Đây là đoạn chương trình dùng để tăng giá trị led lên 1 đơn vị.

     if (!RA0)        // kiểm tra xem nút nhấn có được nhấn hay không
      {
        __delay_ms(100); //wait for 100ms
        if (!RA0)       //
         {

        PORTB = (SEGMENT_MAP[digit]);
        __delay_ms(100); //Delay 1 second
        digit++;
        if (digit>9)
        digit=0;
         }
      }

- Đâu là đoạn chương trình dùng để giảm giá trị led đi 1 đơn vị.

      else
      {
        PORTB = (SEGMENT_MAP[digit]);
      }

      if (!RA1)        //Check if switch SW1 is closed
      {
        __delay_ms(100); //wait for 100ms
        if (!RA1)       //Check if switch SW1 is still closed
         {
        PORTB = (SEGMENT_MAP[digit]);
        __delay_ms(100); //Delay 1 second
        digit--;
        if (digit==0)
        digit=9;
         }
      }
    }
}

Link download project.

Share this

Related Posts

Previous
Next Post »