⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数字电压表1.c

📁 自制的数字电压表
💻 C
字号:
/*OE=P3.7;EOC=P3.6;START=P3.5;ALE=P3.4;C=P3.3;B=P3.2;A=P3.1*/
#include <reg52.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_7[11]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};
/* 共阳七段LED段码表  "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮" */                
uchar code  scan_con[4]={0xf7,0xfB,0xfD,0xfE};
//uint data  disdata[4]={0x00,0x00,0x00,0x00};
uchar dispbuf[8]={10,10,10,10,10,0,0,0};

uchar k;
sbit ST=P3^5;

sbit OE=P3^7;

sbit EOC=P3^6;

sbit ALE=P3^4;

unsigned char channel=0x51;//IN   001010001B

unsigned char getdata;

delay(uint x)
  {	  uint a,b;
  	  for(a=0;a<x;a++)
	   for(b=0;b<120;b++)
	     ;
  }
 scan()
  {	
    dispbuf[2]=getdata/51;//因为getdata的值最大为256,即/51就可以得到最大值5v

    dispbuf[4]=getdata%51;

	dispbuf[4]=dispbuf[4]*10;

    dispbuf[1]=dispbuf[4]/51;

	dispbuf[4]=dispbuf[4]%51;

	dispbuf[4]=dispbuf[4]*10;
	  
	dispbuf[0]=dispbuf[4]/51;
  	for(k=0;k<4;k++)
	{
		P1=dis_7[dispbuf[k]];
		P2=scan_con[k];
		delay(3);
		P1=0xff;
	}
  }

 main()
{	P0=0XFF;
	P1=0XFF;
	P2=0XFF;
	P3=0XFF;
	while(1)
	{P3=channel;
		ALE=0;_nop_();_nop_();ALE=1;
	 	
	   ST=1;
	  _nop_();_nop_();
      ST=0;
	  _nop_();_nop_();_nop_();_nop_();
      while(EOC==0);
      OE=1;
	  getdata=P0;
	  OE=0;
	  scan();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -