⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 IARAVR多项功能测试+protues调试例程
💻 C
字号:
#define ENABLE_BIT_DEFINITIONS

#include "includes.h"



//#define Vref 50000
void init_adc(void);
void WDR(void);
void WDT_init(void);

//unsigned char adc_mux = 0x01;  //通道选择

unsigned char RSend;
unsigned char RS_buf[10];
unsigned char RS_flag;
void main(void)
{       
    float j;  
    int count;
//    unsigned char *test = "The Voltage is: ";
    unsigned char *value = "00";
//    unsigned char *value = "0.000 V  0.000 V  0.000 V  ";	
    unsigned char *RS;
/*    value[7]=0x0d;
    value[8]=0x0a;
    value[16]=0x0d;
    value[17]=0x0a;
    value[25]=0x0d;
    value[26]=0x0a;*/
    RS = RS_buf;
    RS_flag = 0;  
    //dataport=0xff;
    OSCCAL=0Xab;//系统时钟校准,不同的芯片和不的频率,
    init_adc();	
    InitSerial();    
    init_timer0(); 
    init_timer2();
//    Init_LCD();  
   // WDT_init();
//    DDRD=DDRD|0xf0;
//    PORTD=PIND|0x0f;
          
//    LCD_DisplayString(1,1,test);    
//    LCD_DisplayString(2,1,value);    
    put_string(value);  
//    put_char(0x0d);
//    put_char(0x0a);     
    while(1) 
    {        
        if(AD_refrash)
        {
          AD_cal();
        // j = (float)(((float)((Vref/1023)))*(ADCH*256+ADCL))/1000.00;
        j = PowerMeter.Va;//(float)(((float)((Vref/1023)))*( ADC&0X3FF))/1000.00;
	count = j;//j*100;					
        value[0] = PowerMeter.Va>>8;//count /1000+0x30;
        //count = count %1000;
        value[1] = PowerMeter.Va;//count /100+0x30;
        /*count = count %100;
        value[3] = count  /10 + 0x30;			 
        value[4] = count  %10 + 0x30;*/			 
/*        j = PowerMeter.Vb;//(float)(((float)((Vref/1023)))*( ADC&0X3FF))/1000.00;
	count = j*100;					
        value[9] = count /1000+0x30;
        count = count %1000;
        value[11] = count /100+0x30;
        count = count %100;
        value[12] = count  /10 + 0x30;			 
        value[13] = count  %10 + 0x30;			 
        j = PowerMeter.Vc;//(float)(((float)((Vref/1023)))*( ADC&0X3FF))/1000.00;
	count = j*100;					
        value[18] = count /1000+0x30;
        count = count %1000;
        value[20] = count /100+0x30;
        count = count %100;
        value[21] = count  /10 + 0x30;			 
        value[22] = count  %10 + 0x30;	*/		 
      
//        LCD_Cursor(0,1);
//        LCD_DisplayString(2,1,value);  
        put_string(value); 
//        put_char(0x0d);
//        put_char(0x0a);  
//        Next_ADchanle;
         if(RS_flag)
        {
            LCD_DisplayString(2,10,RS);
            RS_flag = 0;
        }
        clr_adrefrash;
        }
    }
	
}

#pragma vector = USART_RXC_vect
    __interrupt void usart_isr( void )
{
    SREG &= !(1<<7);
    RS_flag = 1;
    RSend++;
    RS_buf[RSend] = UDR;
    put_char(RS_buf[RSend]);
    if(RSend>=10)
    {
        RSend = 0;
    } 
    SREG |= (1<<7);   
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -