Bài 5: Dùng vi điều khiển 16F887 kết nối với 2 led 7 đoạn anode chung theo phương pháp quét và viết chương trình đếm từ 00 đến 99 hiển thị trên 2 led 7 đoạn quét, thời gian trễ tuỳ chọn.

 

Hình 1: Sơ đồ kết nối 2 port C và D điều khiển 2 led 7 đoạn quét.

  • Chương trình:
                                                                
#INCLUDE <16F887.H>
#FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP
#USE DELAY(CLOCK=16M)
CONST UNSIGNED CHAR MA7DOAN [10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
UNSIGNED INT8 DEM, I;
VOID HIENTHI_DELAY()
{
   FOR (I=0;I<200;I++)
   { 
      OUTPUT_C(MA7DOAN[DEM %10]); OUTPUT_HIGH(PIN_D0);
      DELAY_MS(1); OUTPUT_LOW(PIN_D0);
      OUTPUT_C(MA7DOAN[DEM /10]); OUTPUT_HIGH(PIN_D1);
      DELAY_MS(1); OUTPUT_LOW(PIN_D1);
   }
}
VOID MAIN()
   SET_TRIS_C(0x00); SET_TRIS_D(0x00); OUTPUT_D(0X00);
   WHILE(TRUE)
   {
      FOR(DEM=0;DEM<100;DEM++)
      {
         HIENTHI_DELAY();
      }
   }
}
                                                                
Link download chương trình mô phỏng (Code và Proteus): https://drive.google.com/file/d/1TVc6fisZ6At9eUhEa1_w0OtASSUqHd58/view

Comments