// PIC16F1827 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin) #pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled) #pragma config MCLRE = OFF // MCLR Pin Function Select (MCLR/VPP pin function is digital input) #pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled) #pragma config CPD = OFF // Data Memory Code Protection (Data memory code protection is disabled) #pragma config BOREN = OFF // Brown-out Reset Enable (Brown-out Reset disabled) #pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin) #pragma config IESO = ON // Internal/External Switchover (Internal/External Switchover mode is enabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled) // CONFIG2 #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) #pragma config PLLEN = OFF // PLL Enable (4x PLL disabled) #pragma config STVREN = OFF // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset) #pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) #pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include #define _XTAL_FREQ 8000000 //クロック動作周波数を8MHzとして__delay_msを使用する Display7SEG(unsigned short int num); int main(){ OSCCON = 0b01110100; TRISA = 0b00000000; //ポートAを出力に設定 TRISB = 0b00000000; //ポートBを出力に設定 PORTA = 0b00000000; //ポートAから0を出力 PORTB = 0b00000000; //ポートBから0を出力 //0と5を1秒間ずつ光らせるプログラム while(1){ Display7SEG(0);//←()の中に光らせたい数字を入力する __delay_ms(1000);//←光らせる時間(1000で1秒) Display7SEG(5); __delay_ms(1000); } } //ここから下は真理値表に沿って出力を決定する部分(関数) Display7SEG(unsigned short int num){ switch(num){ case 0: PORTB = 0b10110111;//0 break; case 1: PORTB = 0b00010100;//1 break; case 2: PORTB = 0b01110011;//2 break; case 3: PORTB = 0b01110110;//3 break; case 4: PORTB = 0b11010100;//4 break; case 5: PORTB = 0b11100110;//5 break; case 6: PORTB = 0b11100111;//6 break; case 7: PORTB = 0b00110100;//7 break; case 8: PORTB = 0b11110111;//8 break; case 9: PORTB = 0b11110110;//9 break; } }