001_89C52之_Proteus_ADC0809采集电压

一)使用ADC0809采集直流电压

  1. 第一个数码管显示的是采样输入口

  2. 后面三位是采样电压
    在这里插入图片描述
    在这里插入图片描述

(二)使用ADC0809进行交流电的采样

  1. 先进行交流电降压,即用变压器降压后使用整桥电路进行整流

  2. 默认将220交流电整流成5V最高,然后接入ADC0809

  3. 图中有理论公式,大概公式可以使用,设X是读取到的电压:实际值=(X/5)*220
    在这里插入图片描述
    在这里插入图片描述

(三)单片机程序

/***************   writer:shopping.w   ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define DATA P1
sbit OE  = P2^5;
sbit EOC = P3^3;
sbit ST  = P2^7;

sbit C1  = P3^0;
sbit C2  = P3^1;
sbit C3  = P3^2;

uint display_data = 0;  /*显示数据*/
uchar code LEDData[]=
{
     0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};


void DelayMS(uint ms)
{
     uchar i;
    while(ms--)
    {
         for(i=0;i<120;i++);
    }
}

void Display_Result(uint d)
{
    
     P2 = 0xf7;
    P0 = LEDData[d%10];
    DelayMS(5);
    P2 = 0xfb;
    P0 = LEDData[d%100/10];
    DelayMS(5);
    P2 = 0xfd;
    P0 = (LEDData[d/100]| 0x80);
    DelayMS(5);
    
    P2 = 0xfe;
    P0 = LEDData[3];
    DelayMS(5);
    
}

void main()
{


    C1  = 1;
    C2  = 1;
    C3  = 0;
    
    while(1)
    {
         ST = 0;
        ST = 1;
        ST = 0;
        while(EOC == 0);
        OE = 1;
        display_data = ((5.0/255) * DATA) * 100;
        Display_Result(display_data);
        OE = 0;
    }
}

(四)工程源码下载地址:

https://download.csdn.net/download/xiaoguoge11/10742910

在这里插入图片描述

  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值