Lập trình pic 12f675 giao tiếp button

Sử dụng hàm button trên vi điều khiển 12f675

12f675 là một dòng vi điều khiển pic nhỏ gọn – 8 pins, 6 port (GPIO), nhưng cũng được trang bị hầu hết các module tiên tiến như timer, comparator, ADC… Chúng ta có thể cấu hình để sử dung dao động nội trên 12f675 để tiết kiệm các pin I/O, tần số nội 4Mhz. Sau đây chúng ta viết một project về button trên vi điều khiển 12f675.

Về kết nối: button –> GPIO.B5, led —>GPIO.B4.

Sơ đồ nguyên lý vẽ trên proteus, bạn có thể xem hình phía trên.

Code:

// Project: 12F675-Button
// Description: Khi button ket noi voi gpio.b5 duoc an, gpio.b5=0, 
//              led tren gpio.b4 on  va nguoc lai
// Author: Huynh Minh Trung
//Web: giaoan.link


void init_ports(void) {
   TRISIO = 0x20; // GP5 as input, GP1...4 out put
}

///////////////////////////
  void get_key() {
   if(button(&GPIO,5,1,0)){
   GPIO.B4=1;
   delay_ms(20);
   }
   GPIO.B4=0;
}
/////////////////////

void main() {
unsigned int i;
   init_ports();
   // Start up flash the LED 5 times
   for(i=0;i<5;i++) {
      GPIO.B4 = 1;
      delay_ms(100);
      GPIO.B4 = 0;
      delay_ms(100);
   }

   while (1) {
   get_key();
   } // infinite while
}