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

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

3天内不再提示

如何使用8051单片机制作一个简单的0-5V电压表

科技观察员 来源:英锐恩 作者:英锐恩 2023-07-07 11:29 次阅读

在本文中,使用8051单片机制作一个简单的0-5V电压表。该数字电压表的灵敏度为200mV,这有点低,但该项目旨在演示如何将ADC和七段显示器连接到8051单片机以获得输入电压的数字读数。

在这个案例中,ADC0804是ADC,使用的单片机是AT89S51。在尝试这个案例之前,请先了解怎么将ADC连接到8051单片机和将七段显示器连接到8051单片机,这将使您对基础知识有一个很好的了解。

一、数字电压表电路图

在电路中,ADC的Vref/2(pin9)保持开路,这意味着输入电压跨度可以是o到5V,步长将为5/255=19.6mV。ADC0804数字输出的公式为Dout=Vin/步长。在该电路中,对于1V的输入电压,数字输出将是1/19.6mV=51,因此51的二进制等效值,即00110011。ADC的数字输出连接到微控制器的P1.0。ADC的控制信号,即CS、RD、WR和INTR分别来自微控制器的P3.7、P3.6、P3.5和P3.4引脚。2位多路复用七段显示器连接到微控制器的端口0。显示驱动晶体管Q1和Q2的控制信号从微控制器的P3.2和P3.1获得。按钮开关为S1。

0-5-voltmeter.jpg

首先,程序控制ADC产生与输入电压相对应的数字输出。该数字输出通过P1.0扫描并加载到累加器。然后将累加器中的值除以10以省略最后一位。例如,让输入电压为4V。那么ADC对应的数字输出将是204D(D代表十进制)。除以10后,累加器中剩下的值为20D。然后将该20D乘以2D,结果为40D。该程序的下一个目标是操纵这个40D并在显示器上进行4.0读数。为此,将40D再次除以10D。这导致累加器内部为4,B寄存器内部为0。然后程序使用查找表获取4的数字驱动模式,将此模式放在端口0上并激活Q1。在1ms延迟后,10000000B被加载到P0,这就是点。再经过1ms延迟Q1停用后,B中的内容(即0)移至A,使用查找表获取0的正确数字驱动模式,将此模式放在端口0上并激活Q2。再经过1ms延迟后,Q2将停用,并重复整个周期。

二、基于8051数字电压表程序

ORG 00H
MOV P1,#11111111B
MOV P0,#00000000B
MOV P3,#00000000B
MOV DPTR,#LABEL
MAIN: CLR P3.7
SETB P3.6
CLR P3.5
SETB P3.5
WAIT: JB P3.4,WAIT
CLR P3.7
CLR P3.6
MOV A,P1
MOV B,#10D
DIV AB
MOV B,#2D
MUL AB
MOV B,#10D
DIV AB
SETB P3.2
ACALL DISPLAY
MOV P0,A
ACALL DELAY
MOV P0,#10000000B
ACALL DELAY
MOV A,B
CLR P3.2
SETB P3.1
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.1
SJMP MAIN
DELAY: MOV R3,#02H
DEL1: MOV R2,#0FAH
DEL2: DJNZ R2,DEL2
DJNZ R3,DEL1
RET
DISPLAY: MOVC A,@A+DPTR
RET
LABEL: DB 3FH
DB 06H
DB 5BH
DB 4FH
DB 66H
DB 6DH
DB 7DH
DB 07H
DB 7FH
DB 6FH
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电压表
    +关注

    关注

    3

    文章

    318

    浏览量

    39016
  • 8051单片机
    +关注

    关注

    5

    文章

    153

    浏览量

    25523
收藏 人收藏

    评论

    相关推荐

    谁拥有用51单片机制作电流和电压表的成功案例?

    各位您好!谁拥有用51单片机制作电流和电压表的成功案例?
    发表于 11-02 08:47

    基于51单片机简单数字电压表

    51单片机简单数字电压表,可测0——10v电压
    发表于 01-29 15:19

    单片机的数字电压表

    单片机为核心控制器设计能够测量直流电压的数字电压表,具体要求如下:1.可实现对至少四路直流电压
    发表于 07-07 11:08

    利用STC89C52单片机制作简单的数字电压表

    摘要:本设计中利用STC89C52单片机制作简单的数字电压表,主要通过A/D转换器XPT2046把输入的模拟信号即电位器的
    发表于 07-21 09:06

    设计简单的直流数字电压表

    单片机为核心器件,组成简单的直流数字电压表。(1)采用1路模拟量输入,能够测量0-5V之间
    发表于 11-19 08:24

    单片机制作的数字电压表

    单片机制作的数字电压表利用单片机AT89S51与ADC0809设计数字电压表,能够测量
    发表于 05-16 01:25 3726次阅读
    <b class='flag-5'>单片机制作</b>的数字<b class='flag-5'>电压表</b>

    STC12C2052单片机电压表_0-9.99V

    STC12C2052单片机电压表_0-9.99V
    发表于 04-28 15:35 67次下载

    利用单片机ADC080设计数字电压表,能够直接测量0-5V范围内的直流电压

    基于8051单片机的数字电压表,能够直接测量0-5V范围内的直流电压。 1602显示 proteus仿真图
    发表于 01-04 16:38 13次下载

    如何使用单片机制作数字电压表

    利用单片机AT89S51与ADC0809设计数字电压表,能够测量0-5V之间的直流电压值,四
    发表于 03-07 11:25 24次下载
    如何使用<b class='flag-5'>单片机制作</b><b class='flag-5'>一</b><b class='flag-5'>个</b>数字<b class='flag-5'>电压表</b>

    单片机通过PAC芯片GP8101控制0-5V调速电机方案

    0-5V或者0-10V电压是许多电机的通用调速接口,而般的主控芯片为3.3V供电的单片机或者D
    的头像 发表于 11-12 09:11 8108次阅读
    <b class='flag-5'>单片机</b>通过PAC芯片GP8101控制<b class='flag-5'>0-5V</b>调速电机方案

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

    利用单片机AT89S51与ADC0809设计数字电压表,能够测量0-5V之间的直流电压值,四
    的头像 发表于 06-21 11:39 4317次阅读

    使用PIC单片机开发的简易数字电压表

    对于单片机初学者来说,数字电压表不错的练习项目。在本文中,单片机开发工程师们分享了
    发表于 06-29 10:28 4144次阅读
    使用PIC<b class='flag-5'>单片机</b>开发的简易数字<b class='flag-5'>电压表</b>

    使用单片机制作多路输入电压表的程序免费下载

    本文档的主要内容详细介绍的是使用单片机制作多路输入电压表的程序免费下载。
    发表于 03-19 15:21 14次下载

    基于单片机的简易数字电压表设计(电路+程序)

    单片机为核心器件,组成简单的直流数字电压表。(1)采用1路模拟量输入,能够测量0-5V之间
    发表于 11-12 20:06 55次下载
    基于<b class='flag-5'>单片机</b>的简易数字<b class='flag-5'>电压表</b>设计(电路+程序)

    使用STC12C5A60S2内部AD测量电压0-5V单片机应使用5V电压供电)

    使用STC12C5A60S2内部AD测量电压0-5V单片机应使用5V电压供电)main.c
    发表于 11-18 12:06 25次下载
    使用STC12C<b class='flag-5'>5</b>A60S2内部AD测量<b class='flag-5'>电压</b><b class='flag-5'>0-5V</b>(<b class='flag-5'>单片机</b>应使用<b class='flag-5'>5V</b><b class='flag-5'>电压</b>供电)