找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3818|回复: 1
收起左侧

单片机+ADC0809模数转换+电压显示 Proteus仿真程序

[复制链接]
ID:739012 发表于 2020-6-22 13:49 | 显示全部楼层 |阅读模式
1.采用的是AT89C52单片机和ADC0809所组成的数模转换电压显示器2.输出端:OUT8为最低位;OUT1为最高位,OUT8-OUT1分别接单片机的P1.0到P1.7端。
3.pretous仿真:
1.png

4.部分源程序:
  • #include <reg52.h>             //头文件
  • #define uchar unsigned char           //宏定义无符号字符型
  • #define uint  unsigned  int           //宏定义无符号整型
  • code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
  • uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制码
  • sbit ST=P3^0;   //A/D启动转换信号
  • sbit OE=P3^1;   //数据输出允许信号
  • sbit EOC=P3^2;  //A/D转换结束信号
  • sbit CLK=P3^3;  //时钟脉冲
  • uint z,x,c,v,AD0809, date;        //定义数据类型
  • /******************************************************************
  • 延时函数
  • ******************************************************************/
  • void delay(uchar t)
  • {
  •   uchar i,j;
  •    for(i=0;i<t;i++)
  •    {
  •             for(j=13;j>0;j--);
  •          { ;
  •          }
  •    }
  • }
  • /**********************************************************************
  •                 数码管动态扫描
  • *********************************************************************/
  • void xianshi() //显示函数
  • {
  • uint z,x,c,v;
  •   z=date/1000;                         //求千位
  •   x=date%1000/100;                 //求百位
  •   c=date%100/10;                 //求十位
  •   v=date%10;                         //求个位
  •       P2=0XFF;
  •           P0=seg7code[z]&0x7f;
  •           P2=wei[0];
  •           delay(10);
  •           P2=0XFF;
  •       P0=seg7code[x];
  •           P2=wei[1];
  •           delay(10);
  •           P2=0XFF;
  •              P0=seg7code[c];
  •           P2=wei[2];
  •           delay(10);
  •           P2=0XFF;
  •       P0=seg7code[v];
  •           P2=wei[3];
  •           delay(10);
  •           P2=0XFF;
  •   }
  • /*************************************************************************
  •                                 CLK振荡信号
  • **************************************************************************/
  • void timer0( ) interrupt 1 //定时器0工作方式1
  • {
  • TH0=(65536-2)/256;          //重装计数初值
  • TL0=(65536-2)%256;          //重装计数初值
  • CLK=!CLK;                          //取反
  • }

全部资料51hei下载地址:
ADC0809模数转换 电压显示.zip (249.15 KB, 下载次数: 173)
回复

使用道具 举报

ID:909771 发表于 2021-4-29 23:25 | 显示全部楼层
您好  我们看了您做的8段显示感觉到受益匪浅  我们现在有个问题想要请教您 就是我们如果要想在液晶显示屏上显示0-15V电压的话如何操作?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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