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

📄 直流电压表.c

📁 基于8位并行AD和12位串行AD的数字直流电压表
💻 C
字号:
#include "reg51.h"
sbit START=P3^0;
sbit OE=P3^1;
sbit P3_2=P3^2;
unsigned char Rec_data=0;
code unsigned char display[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count[4]={1,2,3,4};
unsigned char cnt;
void delay(unsigned char j)
{	unsigned char i;
	while(j--)
	{
		for(i=0;i<125;i++)
		{;}
	}
}
void led_display()
{
	unsigned char i,k;	
	k=0x10;
		for(i=0;i<=3;i++)
		{
			if(i==0)
			{	
				P2=k;
				P1=(display[count[i]])|0x80;
				k<<=1;
			}
			else
			{
				P2=k;
				P1=(display[count[i]]);
				k<<=1;
			}
			delay(2);
		}
}

void Process(void)
{
	float temp;
	unsigned int Data_temp;
	temp=(Rec_data/255.0)*5.0;
	temp*=1000;
	Data_temp=(int)temp;
	count[0]=Data_temp/1000;
	count[1]=Data_temp%1000/100;
	count[2]=Data_temp%1000%100/10;
	count[3]=Data_temp%10;
}
void Rec(void) interrupt 0
{	unsigned char i;
	 OE=1;
	 i++;
	 START=0;
	 Rec_data=P0;
	 i++;
	 OE=0;
	 //START=1;
}
void timer0(void)interrupt 1
{
  	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	START=1;
	cnt++;
} 
main()
{	
	P3=0;
	P2=0;
	P3_2=1;
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	ET0=1;
	EX0=1;
	IT0=1;
	EA=1;
	PX0=1;
	TR0=1;
	START=1;
  	while(1)
	{
		Process();
		led_display();
	}
	
}

⌨️ 快捷键说明

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