找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4325|回复: 3
打印 上一主题 下一主题
收起左侧

用带ADC的avr单片机做的一款电压检测表

[复制链接]
跳转到指定楼层
楼主


电路原理图如下:


单片机源码:
#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寄存器中的数值
       voltage   = convert(ADC_Value); //计算实际的输入电
       for(n=0;n<50;n++)
           display(voltage);               //显示
   }


全部源码在附件中,以上只是部份源码
用带ADC单片机做的一款电压检测表源码.rar (966 Bytes, 下载次数: 53)
用带ADC单片机做的一款电压检测表原理图.rar (182.17 KB, 下载次数: 49)


评分

参与人数 3黑币 +73 收起 理由
shuisheng + 15
yoxi + 8 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:229361 发表于 2019-1-21 09:49 | 只看该作者
很不错,学习了

评分

参与人数 1黑币 +16 收起 理由
shuisheng60 + 16 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:229361 发表于 2019-1-26 11:31 | 只看该作者
谢谢楼主的分享

评分

参与人数 1黑币 +14 收起 理由
shuisheng60 + 14 赞一个!

查看全部评分

回复

使用道具 举报

地板
ID:480256 发表于 2019-4-23 11:12 | 只看该作者
建议用定时器延时,建议多次测量取平均值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表