Bài 4: Dùng vi điều khiển 16F887 kết nối với 8 led 7 đoạn anode chung theo phương pháp quét và viết chương trình hiển thị 8 số từ số 0 đến số 7 trên 8 led mô phỏng trên Proteus

  • Sơ đồ mạch:

Hình 1: Sơ đồ kết nối 2 port C và D điều khiển 8 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};
VOID MAIN()

   SET_TRIS_C(0x00); SET_TRIS_D(0x00);
   WHILE(TRUE)
   {
      OUTPUT_C(0xC0); OUTPUT_HIGH(PIN_D0); DELAY_MS(1); OUTPUT_LOW(PIN_D0);
      OUTPUT_C(0XF9); OUTPUT_HIGH(PIN_D1); DELAY_MS(1); OUTPUT_LOW(PIN_D1);
      OUTPUT_C(0XA4); OUTPUT_HIGH(PIN_D2); DELAY_MS(1); OUTPUT_LOW(PIN_D2);
      OUTPUT_C(0XB0); OUTPUT_HIGH(PIN_D3); DELAY_MS(1); OUTPUT_LOW(PIN_D3);
      OUTPUT_C(0x99); OUTPUT_HIGH(PIN_D4); DELAY_MS(1); OUTPUT_LOW(PIN_D4);
      OUTPUT_C(0X92); OUTPUT_HIGH(PIN_D5); DELAY_MS(1); OUTPUT_LOW(PIN_D5);
      OUTPUT_C(0X82); OUTPUT_HIGH(PIN_D6); DELAY_MS(1); OUTPUT_LOW(PIN_D6);
      OUTPUT_C(0XF8); OUTPUT_HIGH(PIN_D7); DELAY_MS(1); OUTPUT_LOW(PIN_D7);
   }
}
                                                                   

Comments