0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机AT89S51和ADC0809设计一个数字电压表的资料概述

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-06-21 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。

系统板上硬件连线

(1). 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。

(2). 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。

(3). 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。

(4). 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。

(5). 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。

(6). 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。

(7). 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。

(8). 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。

(9). 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。

程序设计内容

i. 由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了。

ii. 由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF)

C语言源程序

#include 《AT89X52.H》

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};

unsigned char dispcount;

unsigned char getdata;

unsigned int temp;

unsigned char i;

sbit ST=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

sbit CLK=P3^3;

void main(void)

{

ST=0;

OE=0;

ET0=1;

ET1=1;

EA=1;

TMOD=0x12;

TH0=216;

TL0=216;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

ST=1;

ST=0;

while(1)

{

if(EOC==1)

{

OE=1;

getdata=P0;

OE=0;

temp=getdata*235;

temp=temp/128;

i=5;

dispbuf[0]=10;

dispbuf[1]=10;

dispbuf[2]=10;

dispbuf[3]=10;

dispbuf[4]=10;

dispbuf[5]=0;

dispbuf[6]=0;

dispbuf[7]=0;

while(temp/10)

{

dispbuf[i]=temp%10;

temp=temp/10;

i++;

}

dispbuf[i]=temp;

ST=1;

ST=0;

}

}

}

void t0(void) interrupt 1 using 0

{

CLK=~CLK;

}

void t1(void) interrupt 3 using 0

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

if(dispcount==7)

{

P1=P1 | 0x80;

}

dispcount++;

if(dispcount==8)

{

dispcount=0;

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663537
  • 电压表
    +关注

    关注

    3

    文章

    324

    浏览量

    40996
  • ADC0809
    +关注

    关注

    4

    文章

    144

    浏览量

    40022
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    51单片机RS485编程实例资料

    详细介绍51单片机RS485通信接线和编程代码
    发表于 10-20 14:57 2次下载

    基于FPGA和LTC2308模数转换芯片的数字电压表设计

    通过FPGA对模数转换芯片(LTC2308)的采样控制,实现简易的数字电压表
    的头像 发表于 08-16 08:58 5115次阅读
    基于FPGA和LTC2308模数转换芯片的<b class='flag-5'>数字</b><b class='flag-5'>电压表</b>设计

    AT89C51 单片机中文资料

    电子发烧友网站提供《AT89C51 单片机中文资料.pdf》资料免费下载
    发表于 06-24 15:29 1次下载

    PROTUES仿真no model specified for adc0809,谁有ADC0809的model?

    PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
    发表于 05-09 13:24

    新概念51单片机C语言教程入门、提高、开发、拓展全攻略

    资料介绍 从实际应用入手,以实验过程和实验现象为主导,循序渐进地讲述51单片机C语言编程方法以及51单片机的硬件结构和功能应用。全书共分5篇
    发表于 04-15 13:57

    什么是单片机ADC接口

    ,简称ADC)接口是单片机中不可或缺的部分,它负责将模拟信号转换为数字信号,使得单片机能够处理来自传感器、仪表等模拟世界的信号。本文将深入
    的头像 发表于 02-03 11:27 3724次阅读

    数字电压表的主要指标_数字电压表由什么构成

     数字电压表的主要技术指标包括以下几个方面:   、测量范围   测量范围指数字电压表可测量的
    的头像 发表于 01-28 14:19 1593次阅读

    数字电压表的使用方法

    数字电压表的使用方法通常包括以下几个步骤:   、准备阶段   了解电压表:   在使用前,先了解数字
    的头像 发表于 01-28 14:18 2839次阅读

    数字电压表概述_数字电压表的作用

    数字电压表(Digital Voltmeter,简称DVM)是种采用数字化测量技术,将连续的模拟量转换成不连续、离散的数字形式并加以显示的
    的头像 发表于 01-28 14:14 2271次阅读

    数字电压表的工作特性_数字电压表工作原理

    到7位8位。例如,3½位和4½位数字电压表(DVM)的精度可以分别达到±0.1%和±0.02%。数字电压表通过模数转换器(ADC)将模拟
    的头像 发表于 01-28 13:54 2138次阅读

    51单片机pwm和spwm

    51单片机pwm
    发表于 01-08 15:54 3次下载

    51单片机温度报警器

    电子发烧友网站提供《51单片机温度报警器.zip》资料免费下载
    发表于 12-30 14:16 4次下载

    ADC0809测对地(理论应为0V)的电压时,结果却显示为2.5V,是哪里出了问题?

    ADC0809参考电压-和+分别接的是0V和5V,结合STC90C51单片机做0-5V量程数字电压表
    发表于 12-26 07:51

    3456A数字电压表操作和维修手册

    电子发烧友网站提供《3456A数字电压表操作和维修手册.pdf》资料免费下载
    发表于 12-19 14:15 1次下载

    求解答!用STC89C51系列数字秒表

    实验室学51单片机,用STC89C51系列,作业太难了,求佬给源代码帮助下谢谢 1.通过定时器,8位数码管,8独立按键完成1000秒以内
    发表于 12-08 16:48