找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5188|回復(fù): 3
收起左側(cè)

用帶ADC的avr單片機做的一款電壓檢測表

[復(fù)制鏈接]
ID:21069 發(fā)表于 2018-12-7 20:15 | 顯示全部樓層 |閱讀模式
電壓表效果.jpg

電路原理圖如下:
用帶ADC單片機做的一款電壓檢測表原理圖.jpg

單片機源碼:
#include <iom16v.h>
#include <macros.h>

#define  uchar  unsigned char
#define  uint   unsigned int

void delayms(uint mS)        //微秒                  
{
        uint i,j;
        for( i=0;i<mS;i++)
                for(j=0;j<200;j++);        
}

unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
                        0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

uint ADC_Value;

void port_init(void)
{
   DDRD = 0xff;
   PORTD= 0x00;
   DDRE = 0xff;
   PORTE= 0x00;
   DDRF = 0x00;
   PORTF= 0x00;
}

void adc_init(void)
{
   ADMUX = 0x00;
   ADCSRA= 0x00;
   ACSR  =1<<ACD;   
   ADMUX =(1<<REFS0);  
   ADCSRA=(1<<ADEN)|(0<<ADFR)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
}

uint ADC_read(void)
{
   uint ADC_L,ADC_H,temp;
   ADCSRA |= (1<<ADSC);
   ADC_L = ADCL;
   ADC_H = ADCH;
   temp  = (ADCH<<8)|ADC_L;
   return temp;
}

uint  convert(uint data)
{
   long temp1;
   uint temp2;
   temp1 = ((500 * (long)data)>>10);
   temp2 = (uint)temp1;
   return temp2;
}

void main(void)  
  {
     uint voltage;
     uchar n;
     port_init();
     adc_init();
        
         DDRA=0XFF;
         PORTA=0XFF;
        
         DDRC=0XFF;                        
         PORTC=0X00;
         
         DDRF|=0X0E;
         PORTF|=0X0E;
         PORTF&=0xF7;                     
                           
         PORTA=0X00;                       
         
         DDRB |=0X10;                     
         PORTB|=0X10;                     

    while(1)   
    {
       ADC_Value = ADC_read();         //讀取AD寄存器中的數(shù)值
       voltage   = convert(ADC_Value); //計算實際的輸入電
       for(n=0;n<50;n++)
           display(voltage);               //顯示
   }


全部源碼在附件中,以上只是部份源碼
用帶ADC單片機做的一款電壓檢測表源碼.rar (966 Bytes, 下載次數(shù): 53)
用帶ADC單片機做的一款電壓檢測表原理圖.rar (182.17 KB, 下載次數(shù): 49)


評分

參與人數(shù) 3黑幣 +73 收起 理由
shuisheng + 15
yoxi + 8 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:229361 發(fā)表于 2019-1-21 09:49 | 顯示全部樓層
很不錯,學(xué)習(xí)了

評分

參與人數(shù) 1黑幣 +16 收起 理由
shuisheng60 + 16 很給力!

查看全部評分

回復(fù)

使用道具 舉報

ID:229361 發(fā)表于 2019-1-26 11:31 | 顯示全部樓層
謝謝樓主的分享

評分

參與人數(shù) 1黑幣 +14 收起 理由
shuisheng60 + 14 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

ID:480256 發(fā)表于 2019-4-23 11:12 | 顯示全部樓層
建議用定時器延時,建議多次測量取平均值。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表