Advertisement
Guest User

Untitled

a guest
Mar 31st, 2017
1,314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. #include <TimerOne.h>
  2.  
  3. byte num [10]={
  4.   3,    //0 00000011
  5.   159,  //1 10011111
  6.   37,   //2 00100101
  7.   13,   //3 00001101
  8.   153,  //4 10011001
  9.   73,   //5 01001001
  10.   65,   //6 01000001
  11.   31,   //7 00011111
  12.   1,    //8 00000001
  13.   25    //9 00011001
  14. };
  15.  
  16. const int DS_1=2, SHCP=3, STCP_1=4, DS_2=5, STCP_2=7, displays=4;
  17. int  i, j=1, sep [displays], x=0, z, k=0;
  18. float y;
  19. unsigned long int ahora, antes=0;
  20.  
  21. void setup() {
  22.   pinMode(DS_1, OUTPUT);
  23.   pinMode(SHCP, OUTPUT);
  24.   pinMode(STCP_1, OUTPUT);
  25.   pinMode(DS_2, OUTPUT);
  26.   pinMode(STCP_2, OUTPUT);
  27.  
  28.   Timer1.initialize(1000);
  29.   Timer1.attachInterrupt(mostrar);
  30.  
  31. }
  32.  
  33. void loop() {
  34.   ahora=millis();
  35.   if (ahora-antes>100){
  36.     x+=1;
  37.     z=x;
  38.     for (i=0; i<=(displays-1); i++){
  39.       y=z%10;
  40.       sep [(displays-1-i)]= y;
  41.       z=int((z/10));
  42.       antes=ahora;
  43.     }
  44.   }
  45. }
  46.  
  47. void mostrar()
  48. {  
  49.   if(j==pow(2,displays))j=1;
  50.   if(k==displays)k=0;
  51.  
  52.   digitalWrite (STCP_2, LOW);
  53.   shiftOut(DS_2, SHCP, MSBFIRST, 0);
  54.   digitalWrite (STCP_2, HIGH);
  55.  
  56.   digitalWrite (STCP_1, LOW);
  57.   shiftOut(DS_1, SHCP, LSBFIRST, num[ sep[k] ]);
  58.   digitalWrite (STCP_1, HIGH);
  59.  
  60.   shiftOut(DS_1, SHCP, LSBFIRST, 0 >> 8);  //Arreglo temporal, MEJORAR!
  61.  
  62.   digitalWrite (STCP_2, LOW);
  63.   shiftOut(DS_2, SHCP, MSBFIRST, j);
  64.   digitalWrite (STCP_2, HIGH);
  65.   j=j*2; k=k+1;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement