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

基于51单片机的电压表【正负5V,8255,ADC0808,扩展接线】(仿真)

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

有需要资料的可了解一下.docx

共1个文件

1、基于PROTUES仿真平台设计一个数字电压表,能够测量-5V-5V间的直流电压,通过数码管显示。

2、完成系统硬件资源选型(以51单片机ADC0808为核心),绘制软件流程图。

3、基于C语言编程和测试。

#include "reg51.h"
#include"absacc.h"
#define uchar unsigned char
#define uint unsigned int
#define PA XBYTE[0XFEF0]//8255
#define PB XBYTE[0XFEF1]
#define PC XBYTE[0XFEF2]
#define PD XBYTE[0XFEF3]
#define ADC XBYTE[0XFDFF]//ADC0808

//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0;//定时
float volt=0;//电压
//延时
void delay(uint i)
{
	while(i--);
}
//主函数
void main()
{
	uchar i=0;
	PD=0x80;//初始化8255	
	TMOD|=0X01;//初始化定时器
	TH0=0X3C;//50ms
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//显示
		if(volt>0)//正数
		{
		i=volt*10;
		/*PA=0;
		PB=0xff;
		PA=smgduan[set/100];
		PB=0xfe;
		delay(50);*/
		PA=0;
		PB=0xff;
		PA=smgduan[i/10]+0x80;//小数点
		PB=0xfd;
		delay(50);
		PA=0;
		PB=0xff;
		PA=smgduan[i%10];
		PB=0xfb;
		delay(50);
		}
		else//负数
		{
		i=-volt*10;
		PA=0;

  • 有需要资料的可了解一下.docx
    下载

相关推荐