Autor Tema: consulta píc transistores y display 7 segmentos  (Leído 12559 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dago2000

  • PIC10
  • *
  • Mensajes: 3
Re:consulta píc transistores y display 7 segmentos
« Respuesta #30 en: 19 de Mayo de 2020, 14:30:04 »
#include <multitime.h>

#include <DS1307.C>

#int_TIMER0
void TIMER0_isr(void){ 
   digito=digito<<1;
   conta1 = conta1+2;
   if(digito==0x80){digito=0x10; conta1=0;}
   output_high(ERA_595);
   output_b(~digito);
   if(conta1==4){
      write_REG(digi7S[1][Display[conta1+0]],digi7S[1][Display[conta1+1]]);
   }else{
      write_REG(digi7S[1][Display[conta1+0]],digi7S[dt][Display[conta1+1]]);
   }
   delay_us(900);
   output_low(ERA_595);
   set_timer0(140);
}

#INT_TIMER1
void  TIMER1_isr(void){
   set_timer1(3036);       //100ms Over flow
   if(mil_seg<5){++mil_seg;}
   if(mil_seg==5){
      mil_seg=0;
      dt=!dt;
      output_toggle(PIN_A1);
      if(modo<=1){
         if(modo==1){
         
         }
     
      }
     
   }
   
}

#INT_EXT
void  EXT_isr(void){
   p=0;
   while((~BTN_MODO)&&(p<27000)){p++;}
   
}

#INT_RDA
void  RDA_isr(void){

}

#INT_CCP2
void  CCP2_isr(void){

}

void main(){
   tris_porta = 0x00; porta = 0x00;
   tris_portb = 0x01; portb = 0xF0;
   tris_portc = 0x81; portc = 0x00;
   
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128|RTCC_8_BIT);    //06.6 ms overflow
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);                  //104 ms overflow  = (65536 – TMR1) * P * (4/FOSC)
   setup_timer_2(T2_DIV_BY_16,255,1);                       //819 us overflow, 819 us interrupt

   setup_ccp2(CCP_CAPTURE_FE);
   //rtc_init();
   set_timer0(140);       //100ms Over flow
   set_timer1(3036);       //100ms Over flow
   
   enable_interrupts(INT_TIMER0);
   enable_interrupts(INT_TIMER1);   
   enable_interrupts(INT_EXT);
   ext_int_edge(L_TO_H);
   enable_interrupts(INT_RDA);
   enable_interrupts(INT_CCP2);
   enable_interrupts(GLOBAL);

   while(TRUE){

      Display[0]=1;
      Display[1]=2;
      Display[2]=3;
      Display[3]=4;
      Display[4]=5;
      Display[5]=6;
     
      delay_ms(200);
   }

}

Desconectado dago2000

  • PIC10
  • *
  • Mensajes: 3
Re:consulta píc transistores y display 7 segmentos
« Respuesta #31 en: 19 de Mayo de 2020, 14:31:23 »
#include <16F876A.h>
#device ADC=10

#fuses NOWDT, HS, PUT, PROTECT, NOBROWNOUT, NOLVP, NOCPD
#use delay(clock=20000000)

#ZERO_RAM

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)

#byte tris_porta = 0x85
#byte tris_portb = 0x86
#byte tris_portc = 0x87

#byte porta = 0x05
#byte portb = 0x06
#byte portc = 0x07

#define ERA_595   PIN_A0
#define BTN_MODO  PIN_B0
#define DATO_595  PIN_B1
#define CLK_595   PIN_B2
#define STH_595   PIN_B3
#define BTN_START PIN_C0
#define TX        PIN_C6
#define RX        PIN_C7

#use rs232(baud=9600,parity=N,xmit=TX,rcv=RX,bits=8,stream=PORT1)

#define cargar output_high(STH_595); delay_cycles(1);  output_low(STH_595);
#define clk    output_high(CLK_595); delay_cycles(1);  output_low(CLK_595);

/***********************************  0    1    2    3    4    5    6    7    8    9    -    F       ****/
const unsigned int8 digi7S[2][13]={{0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0xC0,0xF1,0x80},
                                   {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x71,0x00}};

int1 dt=false;
unsigned int8 mil_seg=0, digito=0x10, conta1=0;
unsigned char modo=0;
static unsigned int8 Display[8]={0,0,0,0,0,0,0,0};
unsigned long p=0;
////////////////////////////////////////////////////////////////////////
//           DESPLAZAMIENTO 4094 Y PARALELO ULN2803
////////////////////////////////////////////////////////////////////////
void write_REG(int8 dato1, int8 dato2) {
int16 total;
   
   total = (dato2*0x100) | dato1;
   output_low(STH_595); output_low(CLK_595);
   
   for(int8 i=0;i<16;i++){
      output_bit(DATO_595,shift_left(&total,2,0));  //MSB first
      clk;
   }
   cargar;
}

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:consulta píc transistores y display 7 segmentos
« Respuesta #32 en: 19 de Mayo de 2020, 17:29:29 »
¿ Y cuál es la pregunta?
Todos los días se aprende algo nuevo.