• 方案介绍
  • 附件下载
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

基于51单片机数字电压表仿真设计_数码管显示

2024/08/09
1748
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

设计资料获取联系方式.doc

共1个文件

原理图Altium Designer

仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0005

功能说明

1、以单片机为控制核心设计数字电压表

2、可以测量0~5V输入电压值;

3、LED数码管显示;

4、最小分辨率为0.01V,测量误差约为±0.01V。

设计要求

本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。

选择AT89C51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。P2口接数码管位选,P1接数码管,实现数据的动态显示,

image-20220902223951064

仿真图

img

原理图

img

PCB

img

程序(提供源文件)

img

系统上电后,配置数码管个引脚,然后对其进行初始化,再调用的读写函数,可将采集处理后的电压数值实时显示。其程序流程图如图所示。

img

​ 由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是连接在AT89C51单片机的40管脚,也就是要求从40管脚输出CLK信号供ADC0809使用。因此产生CLK信号的方法就等于从软件产生。电压表系统有主程序,A/D转换子程序、按键子程序和显示子程序。

image-20220902224221690

显示函数

code unsigned char seven_seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char i;
void display0()
{
	P0 = 0xff;
	switch(i)
	{
		case 0:P2 = 0x10;P0 = seven_seg[shuju / 1000 % 10];break;
		case 1:P2 = 0x20;P0 = seven_seg[shuju / 100 % 10]&0x7f;break;
		case 2:P2 = 0x40;P0 = seven_seg[shuju / 10 % 10];break;
		case 3:P2 = 0x80;P0 = seven_seg[shuju  % 10];break;
		case 4:P2 = 0x01;P0 = seven_seg[1];break;
		case 5:P2 = 0x02;P0 = seven_seg[2];break;
		case 6:P2 = 0x04;P0 = 0xff;break;
		case 7:P2 = 0x08;P0 = seven_seg[shuju / 10000 % 10];break;

	}
	i++;if(i >= 8)i = 0;
}

设计报告

img

资料清单

img

  • 设计资料获取联系方式.doc
    下载

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ATMEGA8515L-8AU 1 Microchip Technology Inc IC MCU 8BIT 8KB FLASH 44TQFP

ECAD模型

下载ECAD模型
$4.23 查看

相关推荐