/* * File: multipleksowanie.c * Author: elektronikawsrode * */ // 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 MCLR) #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 = OFF // Internal/External Switchover (Internal/External Switchover mode is disabled) #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 = HI // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), high trip point selected.) #pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming) #include #define _XTAL_FREQ 500000 // zawsze potrzebne dla makra __delay_ms() // definicja segmentów Wys. 7 seg. LED #define _0 PORTA=0b01011111 #define _1 PORTA=0b00000110 #define _2 PORTA=0b10011011 #define _3 PORTA=0b10001111 #define _4 PORTA=0b11000110 #define _5 PORTA=0b11001101 #define _6 PORTA=0b11011101 #define _7 PORTA=0b00000111 #define _8 PORTA=0b11011111 #define _9 PORTA=0b11001111 #define _zgas_cyfre PORTA=00000000 #define _DP PORTBbits.RB0=1 //osmy znak poniewaz pin RA5 moze byc tylko wejsciem ze wzgledu na finkcjonalnosc MLRC void main(void) { OSCCONbits.IRCF = 0b0111; // ustawienie zegara wewnetrznego na 500 kHz ANSELA = 0b00000000; TRISA = 0b00000000; // wszystkie piny RA jako wyjscia (poza RA5, poniewaz on moze byc tylko wejsciem) TRISBbits.TRISB0 = 0; // pin RB0 jako wyjscie dla kropki TRISBbits.TRISB1 = 0; // pin RB1 jako wyjscie dla sterowania tranzystorem TRISBbits.TRISB2 = 0; // pin RB2 jako wyjscie dla sterowania tranzystorem PORTA = 0b00000000; // wartosci napiecia na pinach RA rowne 0 PORTBbits.RB0 = 0; // wartosc napiecia na pinie RB0 rowna 0 PORTBbits.RB1 = 0; // wartosc napiecia na pinie RB1 rowna 0 PORTBbits.RB2 = 0; // wartosc napiecia na pinie RB2 rowna 0 ANSELBbits.ANSB1 = 0; ANSELBbits.ANSB2 = 0; while(1){ _7; PORTBbits.RB1 = 0; PORTBbits.RB2 = 1; __delay_ms(8); _zgas_cyfre; _3; PORTBbits.RB1 = 1; PORTBbits.RB2 = 0; __delay_ms(8); _zgas_cyfre; } }