基于51单片机的数字电压表设计

本文介绍了使用AT89C51单片机设计的简易数字电压表,涵盖了系统方案论证、硬件电路设计(包括单片机最小系统、扩展接口和电路仿真)、软件设计(功能模块、流程图和程序编写)等内容,强调了操作简便和智能化特性。
摘要由CSDN通过智能技术生成

1.设计任务

利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。

基本要求:利用单片机AT89C51设计数字电压表,能对模拟信号进行检测,能将所测量的电压在LED显示器上显示。

创新:具有方便的键盘操作功能;电压超出界限时具有报警功能等。

2. 设计要求

2.1系统方案论证

根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。

2.2系统硬件电路设计

根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。

2.3软件设计

根据该系统要求的功能进行软件设计,简述软件的功能,并根据每个模块的功能绘制软件流程图,根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求加以注释。

#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int

uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code DSY_CODE1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xef,0xdf};
sbit CLK=P2^4;
sbit ST=P2^5;
sbit EOC=P2^6;


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

void Disp_result(d)
{
  d=(d/255.000)*5000;
  P2=0xfe;
  P0=DSY_CODE1[d/1000];
  DelayMs(5);

  P2=0xfd;
  P0=DSY_CODE[(d/100)%10];
  DelayMs(5);

  P2=0xfb;
  P0=DSY_CODE[(d/10)%10];
  DelayMs(5);

  P2=0xf7;
  P0=DSY_CODE[d%10];
  DelayMs(5);

  if(d>3210)   BUZZ=0;
  else   BUZZ=1;
}

void Timer0_INT() interrupt 1
{
  CLK=~CLK;
}

void main()          
{
  TMOD=0x02;
  TH0=0X14;
  TL0=0X00;
  IE=0X82;
  TR0=1;
  P3=0x3f;
  BUZZ=1;
  while(1)
  {
    ST=0;ST=1;ST=0;
	while(EOC==0);
	OE=1;
	Disp_result(P1);
	OE=0;
  }
}

完整代码点开链接私信  免费  获取。

【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
介绍了一种基于STC89C51单片机数字电压表设计方法。该方案根据数据采集的工作原理来实现数字电压的测量, 然后完成单片机与PC的通信, 以将所测量的电压值通过串口传送给PC, 并在PC上进行显示。   数字电压表设计和开发已有很多类型和款式, 传统的数字电压表有自己的特点, 它们适合在现场做手工测量, 而要完成远程测量并对测量的数据做进一步处理, 运用传统的数字电压表是无法完成的。为此, 本文设计了基于PC通信的数字电压表, 该表既可以完成测量数据的传递, 又可借助PC进行测量数据的处理。所以, 这种类型的数字电压表无论在功能和实际应用上, 都具有传统数字电压表无法比拟的优点, 这使得它的开发和应用都具有良好的前景。   本系统主要由硬件和软件两部分构成, 硬件主要包括数据采集电路, 单片机最小数据采集系统, 单片机与PC机的接口电路等。软件主要有单片机数据采集程序, 单片机与上位机通信程序,以及上位机数据处理程序。   该新型数字电压表测量的电压类型为直流,测量范围为0 ~5 V, 下位机采用的单片机为STC89C51, AD转化采用的是最常见的ADC0809,可通过RS232串行口与PC机进行通信, 以传送所测量的直流电压数据。图1所示是该数字电压表的数据采集电路。电路的设计已做到了最小化,即没有用任何附加逻辑器件做接口电路, 便可实现单片机对ADC0809转换芯片的操作。图1中的ADC0809是8位的模数转化芯片, 片内有8路模拟选通开关以及相应的通道锁存译码电路, 转化时间大约为100 μs左右。在电路应用中, 首先要指定ADC0809的数据通道, 当外部电压进入芯片后, STATR 信号由高到低, 在脉冲的下降沿ADC0809开始转换, 同时管脚EOC电平变低, 表示转化正在进行, 转化完成之后, 管脚EOC的电平变高, 表示一次转化结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K11mvp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值