找回密码
 立即注册

QQ登录

只需一步,快速开始

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

通过单片机ADC0808实现AD转换,并通过数码管进行显示 Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
最近通过ADC0808做了一个AD转换程序,并通过仿真验证了一下

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


具体程序如下(在压缩包中有工程文件和仿真文件)
#include<reg52.h>

unsigned char s[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char ss[]= {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
unsigned char d[]={0xff,0xfe,0xfd,0xfb,0xf7};
unsigned char vol=0;
#define time 10
sbit start=P3^0;
sbit eoc=P3^1;
sbit oe=P3^2;
void delayms(unsigned int xms)//延时函数
{int i,j;
        for(i=0;i<xms;i++)
        for(j=0;j<120;j++);}
void adc()//启动AD转换
{   start=0;
        start=1;
        delayms(10);
        start=0;
        while(eoc!=1)
   oe=1;
        vol=P1;
        oe=0;}
void shuo()//将转换后的数值进行数码管显示
{unsigned char t1=0,t2=0,t3=0;
        t1=vol/51;
        t2=(vol%51)*10/51;
        t3=((((vol%51)*10)%51)*10+25)/51;
        if(t3>9)
        {t2=t2+1;
                t3=t3-10;}
        
            P2=d[1];
                P0=ss[t1];
                delayms(time);
               
                P2=d[2];
                P0=s[t2];
                delayms(10);
               
               
               
                P2=d[3];
                P0=s[t3];
                delayms(10);
               
                P2=d[4];
                P0=0x3e;
                delayms(10);}
   void main()
   {while(1)
        {adc();
                shuo();}}


全部资料51hei下载地址(Proteus仿真7.5才能打开):
ADC0808.zip (39.21 KB, 下载次数: 87)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:876439 发表于 2021-1-11 17:54 | 只看该作者
这个8.9可以打开吗
回复

使用道具 举报

板凳
ID:328014 发表于 2021-1-11 18:21 | 只看该作者
yimei 发表于 2021-1-11 17:54
这个8.9可以打开吗

不可以,必须要7.8打开才有效果
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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