اطلاعیه

Collapse
No announcement yet.

نمایش دما برروی 7seg در کدویژن

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    نمایش دما برروی 7seg در کدویژن

    سلام تو تبدیل دما از fioat مشکل دارم کدویژن هی گیر می ده دستورش چیه و به چی تبدیلش کنم

    #2
    پاسخ : نمایش دما برروی 7seg در کدویژن

    برنامتون رو بذارید
    www.gam-co.blogsky.com

    دیدگاه


      #3
      پاسخ : نمایش دما برروی 7seg در کدویژن



      #include <mega16.h>

      #include <delay.h>

      #include <stdlib.h>

      unsigned char sec , min , hour;
      int count=0;
      bit change=0;

      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      count ++;
      if (count>=0)
      {
      sec ++ ;
      if(sec==60)
      {
      min ++;
      sec=0;
      }
      if(min==60)
      {
      hour ++;
      min=0;
      }
      if(hour==24)
      {
      hour=0;
      }
      }

      }

      #define ADC_VREF_TYPE 0x00

      // Read the AD conversion result
      unsigned int read_adc(unsigned char adc_input)
      {
      ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
      // Delay needed for the stabilization of the ADC input voltage
      delay_us(10);
      // Start the AD conversion
      ADCSRA|=0x40;
      // Wait for the AD conversion to complete
      while ((ADCSRA & 0x10)==0);
      ADCSRA|=0x10;
      return ADCW;
      }

      char hojjat[4];
      char i=1;
      char temp1[];
      float temp ;

      void main(void)
      {
      // Declare your local variables here

      // Input/Output Ports initialization
      // Port A initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTA=0x00;
      DDRA=0x00;

      // Port B initialization
      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
      PORTB=0x00;
      DDRB=0xFF;

      // Port C initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTC=0x00;
      DDRC=0x01;

      // Port D initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTD=0x00;
      DDRD=0x00;

      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: 172.800 kHz
      // Mode: Normal top=FFh
      // OC0 output: Disconnected
      TCCR0=0x03;
      TCNT0=0x00;
      OCR0=0x00;

      // Timer/Counter 1 initialization
      // Clock source: System Clock
      // Clock value: Timer1 Stopped
      // Mode: Normal top=FFFFh
      // OC1A output: Discon.
      // OC1B output: Discon.
      // Noise Canceler: Off
      // Input Capture on Falling Edge
      // Timer1 Overflow Interrupt: Off
      // Input Capture Interrupt: Off
      // Compare A Match Interrupt: Off
      // Compare B Match Interrupt: Off
      TCCR1A=0x00;
      TCCR1B=0x00;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;

      // Timer/Counter 2 initialization
      // Clock source: System Clock
      // Clock value: Timer2 Stopped
      // Mode: Normal top=FFh
      // OC2 output: Disconnected
      ASSR=0x00;
      TCCR2=0x00;
      TCNT2=0x00;
      OCR2=0x00;

      // External Interrupt(s) initialization
      // INT0: Off
      // INT1: Off
      // INT2: Off
      MCUCR=0x00;
      MCUCSR=0x00;

      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x01;

      // Analog Comparator initialization
      // Analog Comparator: Off
      // Analog Comparator Input Capture by Timer/Counter 1: Off
      ACSR=0x80;
      SFIOR=0x00;

      // ADC initialization
      // ADC Clock frequency: 172.800 kHz
      // ADC Voltage Reference: AREF pin
      // ADC Auto Trigger Source: None
      ADMUX=ADC_VREF_TYPE & 0xff;
      ADCSRA=0x86;

      // Global enable interrupts
      #asm("sei&quot

      while (1)
      {
      temp= read_adc(0);
      temp=(temp*100/1024);
      switch (i) {

      case 1:
      hojjat[i]=min%10 ;
      PORTD=hojjat[i]|128 ;
      i++;
      break;

      case 2:
      hojjat[i]=min/10 ;
      PORTD=hojjat[i]|64 ;
      i++;
      break;

      case 3:
      hojjat[i]=hour%10 ;
      PORTD=hojjat[i]|32 ;
      i++;
      break;

      case 4:
      hojjat[i]=hour/10 ;
      PORTD=hojjat[i]|16 ;
      i=1;
      break;
      }
      if (PINC.6==0)
      {
      min++;
      delay_ms(250);
      if (min==60)
      {
      min=0;
      }
      }
      if (PINC.5==0)
      {
      hour++;
      delay_ms(250);
      if (hour==24)
      {
      hour=0;
      }
      }
      if (PINC.4==0)
      {
      switch (i) {
      ftoa (temp,0,temp1); //<<--------injass moshkel fec konam eshteb neveshtam
      case 1:
      hojjat[i]=temp1%10 ;
      PORTD=hojjat[i]|128 ;
      i++;
      break;

      case 2:
      hojjat[i]=temp1/10 ;
      PORTD=hojjat[i]|64 ;
      i=1;
      break;

      }
      }

      };
      }
      [/left][/left][/right]

      دیدگاه

      لطفا صبر کنید...
      X