voltmeter.c

来自「Voltmeter measuring from 0- 5Vdc」· C语言 代码 · 共 53 行

C
53
字号
#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 + =
减小字号Ctrl + -
显示快捷键?