skapunky

Dado electrónico

Feb 13th, 2012
1,291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pic 16 2.01 KB | None | 0 0
  1. // :::::::::::: DADO ELECTRóNICO ::::::::::::::::::::::::::::::::::
  2. // ::::::::: diseño y programación por Albert López. ::::::::::::::
  3. // ::::::::: http://utronic.blogspot.com/ :::::::::::::::::::::::::
  4.  
  5. #include "C:\Users\Media Markt\Desktop\Dado electrónico\Codigo fuente\main.h"
  6. #include <STDLIB.H>  //necesaria para función rand()
  7. #FUSES MCLR,NOWDT,NOPROTECT,NOPBADEN,NOPUT,NOLVP,NOCPD,NOWRT,NODEBUG,NOFCMEN,XT  
  8. #use delay (clock=4000000)
  9.  
  10.  
  11. int rand_num; //numero aleatorio entre 0-255 que generará la funcion rand()
  12.  
  13.  
  14. void main()
  15. {
  16.  
  17.    setup_adc_ports(NO_ANALOGS|VSS_VDD);
  18.    setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
  19.    setup_psp(PSP_DISABLED);
  20.    setup_spi(SPI_SS_DISABLED);
  21.    setup_wdt(WDT_OFF);
  22.    setup_timer_0(RTCC_INTERNAL);
  23.    setup_timer_1(T1_DISABLED);
  24.    setup_timer_2(T2_DISABLED,0,1);
  25.    setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
  26.    setup_comparator(NC_NC_NC_NC);
  27.    setup_vref(FALSE);
  28.  
  29.  
  30. //Setup_Oscillator parameter not selected from Intr Oscillator Config tab
  31.  
  32.  
  33.    // TODO: USER CODE!!
  34.    
  35. //:::::::::::: CONDICIONES INICIALES PUERTOS ::::::::::
  36.    set_tris_A(0xC0);
  37.    set_tris_C(0xff);
  38.    set_tris_B(0x00);
  39.    set_tris_D(0x00);
  40.    set_tris_E(0xC);  
  41.  
  42.    output_C (0xff);
  43.    output_B (0x00);
  44.    output_A (0xC0);
  45.    output_D (0x00);
  46.    output_E (0xC);
  47. //:::::::::::::::::::::::::::::::::::::::::::::::::::::
  48.  
  49.  
  50. //::::::::::::: CONDICIONES INICIALES DE VARIABLES ::::::::::::
  51. rand_num = 0;
  52. //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  53.    
  54. while (1){
  55.  
  56.    while (input_state(PIN_B3)==1){ // Si pulsamos boton, generamos número
  57.  
  58.    rand_num = rand(); //Generamos numero entre 0-255
  59.  
  60.    if (rand_num <= 43){output_C (0b0001);}
  61.    if (rand_num > 43 & rand_num <= 86) {output_C (0b0010);}
  62.    if (rand_num > 86 & rand_num <= 129){output_C (0b0011);}
  63.    if (rand_num > 129 & rand_num <= 172){output_C (0b0100);}
  64.    if (rand_num > 172 & rand_num <= 215){output_C (0b0101);}
  65.    if (rand_num > 215 & rand_num <= 255){output_C (0b0110);}
  66.    }
  67.  
  68. }
  69. }
Add Comment
Please, Sign In to add comment