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

📄 main.c

📁 使用ADC0809对输入电压值采样
💻 C
字号:

#include "reg52.h"

typedef unsigned char BYTE;
typedef unsigned int  WORD;


sbit ADC0809_CS=P3^5;
sbit ADC0809_EOC=P3^3;

sbit SMG_EN1=P1^3;
sbit SMG_EN2=P1^2;
sbit SMG_EN3=P1^1;
sbit SMG_EN4=P1^0;
#define SMG_DATA	P0
// 字形表, 为0亮
// 	 a_
// 	f|_|b
//	e|_|c .p
//    d		
//       									  	   00001101
//								    0	 1	  2	   3	4	5	  6	   7	8	 9	  A	   B	C	 D	  E	   F
unsigned char code SMG_TABLE[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

/*		Function 	*/
void Delay_10us(WORD n);
void SMG_Display(BYTE SMGNum, BYTE tdata);

/**********************************************************************
*	main()
/*********************************************************************/
void main(void)
{
	BYTE rdata=0,i=0;
	BYTE BCD_H=0,BCD_M=0,BCD_L=0;
	BYTE xdata * ptr;
	
	float result=0;
	int temp;

	while(1)
	{		
		ADC0809_CS=0;
        *ptr=0xff;
     	i=200;
	    while(ADC0809_EOC && (i>0))i--;
        rdata=*ptr;
    	ADC0809_CS=1;		

/*		BCD_H=(rdata>>4)&0x0f;	//get the high half BYTE
		BCD_L=rdata&0x0f;		//get the low half BYTE

		SMG_Display(1,BCD_H);   
		SMG_Display(2,BCD_L);
*/
		// 显示十进制数据
		result=5*rdata/256.0;
		temp=(int)(100*result+0.5);
		BCD_H=temp/100;
		BCD_M=(temp/10)%10;		
		BCD_L=temp%10;	
		SMG_Display(2,BCD_H);   
		SMG_Display(3,BCD_M);
		SMG_Display(4,BCD_L);


	}
}



// write the tdata to the SMGNum
void SMG_Display(BYTE SMGNum, BYTE tdata)
{
	switch(SMGNum)
	{
		case 1:SMG_EN1=0;break;
		case 2:SMG_EN2=0;break;
		case 3:SMG_EN3=0;break;
		case 4:SMG_EN4=0;break;
		default:break;
	}	
	if(SMGNum==2)
		SMG_DATA=SMG_TABLE[tdata]&0x7f;
	else
		SMG_DATA=SMG_TABLE[tdata];

	Delay_10us(100);
	SMG_EN1=1;SMG_EN2=1;SMG_EN3=1;SMG_EN4=1;
}

// delay_ms(WORD n), default use 12M XTAL,others should be modifed.
void Delay_10us(WORD n)
{
	BYTE i=0;
	for(;n>0;n--)
 		for(i=0;i<10;i++);	
}

⌨️ 快捷键说明

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