adc-display.c

来自「keil c语言」· C语言 代码 · 共 88 行

C
88
字号
#include <regx51.H> 
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 
                            0x6d,0x7d,0x07,0x7f,0x6f}; 
unsigned char Count,d1,d2,d3,d4; 
  
void delay(void)
{
	unsigned int i;
 	for(i=0;i<2000;i++);
}
void display(void)
{
	P2|=0x0f;
	P0=table[d1];
	P2_0=0;
	delay();

	P2|=0x0f;
	P0=table[d2];
	P2_1=0;
	delay();

	P2|=0x0f;
	P0=table[d3];
	P2_2=0;
	delay();

	P2|=0x0f;
	P0=table[d4];
	P2_3=0;
	delay();

	P0=0;
	P2=0x0f;
}
void adc_0809(void)
{			 
	unsigned char dd;
	P3_6=0;
	P3_4=1;
	P3_5=1;

	P3_2=1;
	P3_2=0;
	while(P3_1==0);

	P3_0=1;
	dd=P1;
    P3_0=0;
	d2=dd/100;
	d3=dd%100/10;
	d4=dd%10;		
} 
/*
SETB	P3.4
		SETB	P3.5
		CLR		P3.6		 	;选择ADC0808的通道3

WAIT: 	CLR 	ST
		SETB 	ST
		CLR 	ST				;启动转换
 		JNB 	EOC,$		 	;等待转换结束
		SETB 	OE 				;允许输出
		MOV 	ADC,P1			;暂存转换结果
		CLR 	OE			  	;关闭输出
		MOV 	A,ADC			;将AD转换结果转换成BCD码
		MOV 	B,#100
		DIV 	AB
		MOV 	LED_2,A
		MOV 	A,B
		MOV 	B,#10
		DIV 	AB
		MOV 	LED_1,A
		MOV 	LED_0,B
		LCALL	DISP		  	;显示AD转换结果
		SJMP 	WAIT
											   */
void main(void) 
{ 
  	while(1)
	{
		display();
	 	adc_0809();

	}
} 

⌨️ 快捷键说明

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