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

📄 voltmeter.c

📁 Voltmeter measuring from 0- 5Vdc
💻 C
字号:
#include <REGX51.H>
#include "lcd.h"
#define adc_port P1              //ADC Port
#define rd P3_7                  //Read signal P3.7
#define wr P3_6                  //Write signal P3.6
#define cs P3_5                  //Chip Select P3.5
#define intr P3_4                //INTR signal P3.4

void conv();                     //Start of conversion function
void read();                     //Read ADC function

unsigned int adc_avg,adc;

void main()
{
	char i;
	LCD_INI();
	while(1){				//Forever loop
		adc_avg = 0;
		for(i=0;i<10;i++){
			conv();                  //Start conversion
			read();                  //Read ADC
			adc_avg += adc;
		}
		adc_avg = adc_avg/10;
		wrt_cmd(0x80);
		wrt_string("V(DC): ");
		adc = adc_avg * 59;

		hex2lcd((unsigned char)(adc/1000));
		wrt_data('.');
		adc = adc%1000;
		hex2lcd((unsigned char)(adc/10));

		wrt_data('V');
	}
}

void conv(){
	cs = 0;			//Make CS low
	wr = 0;			//Make WR low
	wr = 1;			//Make WR high
	cs = 1;			//Make CS high
	while(intr);	//Wait for INTR to go low
}

void read(){
	cs = 0;			//Make CS low
	rd = 0;			//Make RD low
	adc = adc_port;	//Read ADC port
	rd = 1;			//Make RD high
	cs = 1;			//Make CS high
}

⌨️ 快捷键说明

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