MPLAB X IDE v3.05 XC8 16F88 7seg アノードコモン 1秒ごとに 0~9 カウントアップ |
// ***************************************************************************** // < コンパイラ MPLAB X XC8 > 怪答PIC 2015/07/29 // 16F88 1桁 // 7seg LED 0-9 1秒毎にカウントアップ ( 7seg アノードコモン ) // ***************************************************************************** // 1 RA2 AN2 // 2 RA3 AN3 // 3 RA4 AN4 // 4 RA5 // 5 Vss E // 6 RB0 LED 7seg a // 7 RB1 LED 7seg b // 8 RB2 LED 7seg c // 9 RB3 LED 7seg d // 10 RB4 LED 7seg e // 11 RB5 LED 7seg f // 12 RB6 AN5 LED 7seg g // 13 RB7 AN6 LED 7seg dp // 14 Vdd + 5V // 15 RA6 // 16 RA7 // 17 RA0 AN0 // 18 RA1 AN1 // ***************************************************************************** #include <xc.h> #define _XTAL_FREQ 4000000 // 4MHz // 16F88 // CONFIG1 #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTRC oscillator; port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EE Memory Code Protection bit (Code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off) #pragma config CCPMX = RB3 // CCP1 Pin Selection bit (CCP1 function on RB3) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) // CONFIG2 #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode disabled) // ***************************************************************************** // ***************************************************************************** void main() { OSCCON = 0b01100000; // 内蔵クロックの周波数を4MHzに設定 unsigned char i; // 制御変数 unsigned char ptn[10] = { // gfedcba // 7セグメントLED用点灯パターン (アノードコモン) 0b11000000, // 0 0b11111001, // 1 0b10100100, // 2 0b10110000, // 3 0b10011001, // 4 0b10010010, // 5 0b10000011, // 6 0b11111000, // 7 0b10000000, // 8 0b10011000 // 9 }; TRISA = 0x00; // PORTA入出力設定 TRISB = 0x00; // PORTB入出力設定 PORTA = 0x00; // PORTA初期化 PORTB = 0xFF; // PORTB初期化 while(1){ // 無限ループ for(i = 0; i <= 9; i++) { // 0から9までカウントアップ PORTB = ptn[i]; // カウント値 i に対応する点灯パターンをPORTBに設定 _delay(1000000); // 1秒タイマ } } } 16F88_011.c |