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

📄 cc.c

📁 ADC0804的使用
💻 C
字号:
#include<reg52.h>
#include <Intrins.h>

sbit adcs=P2^0;
sbit adrd=P3^7;
sbit adwr=P3^6;

sbit RS  =P2^7;
sbit RW  =P2^6;
sbit EN  =P2^5;

#define INTV 20

unsigned char adata,count;
unsigned char valuev[ INTV ];
void Adstart( void );
void Adread( void );
void Delay_ms( unsigned char second ); 
void intil( void );

//`````````````````````````LCD`````````````````//
void DelayL( );
void DelayS( );
void WriteCommand( unsigned char c );
void WriteData( unsigned char c );
void ShowChar( unsigned char pos,unsigned char c );
void ShowString( unsigned char line,char *ptr );
void InitLcd( );
static char volt0[]="VOLT IS :       ";
static char volt1[]=" .   V           ";
//```````````````````````LCD``````````````````//

void intil( void )
{
	EA=0;
    INT1=1;
	IT1=1;
	EX1=1;
	EA=1;
}

void Adstart( void )
{ 
	adcs=0;
	adwr=0;
	_nop_();	//
	_nop_();
	adwr=1;		//产生上升沿
	_nop_();	//
	_nop_();
	adwr=0;
	adcs=1;
	P1=0XFF;
}

void Adread( void )
{
	adcs=0;
	adrd=0;
	_nop_();
	adata=P1;
	adrd=1;
	adcs=1;
	INT1=1;
}

void intint1( void ) interrupt 2
{
	Adread( );
	valuev[ count++ ]=adata;
	if( count==INTV )
	{
		EX1=0;
	}
	else
	{
		Adstart( );
	}
}

void main( void )
{
	char code str1[]="WWW.CUIT.EDU.CN ";
	char code str2[]="   2005-07-18   ";

	unsigned char i;
	unsigned int V;
	unsigned long Z;

	DelayL( );
	InitLcd( );
	DelayL( );
	ShowString( 0,str1 );
	ShowString( 1,str2 );
	for( i=0;i<10;i++ )
	{
		DelayL( );
	}

	intil( );

	while( 1 )
	{
		Adstart( );
		while( count!=INTV );
		Z=0;
		count=0;
		for( i=0;i<INTV;i++ )
		{
			Z=Z+valuev[ count++ ];
		}
		V=Z/INTV;
		
		volt1[0]=V/1000+0x30;
		V=V%1000;
		volt1[1]=V/100+0x30;
		V=V%100;
		volt1[2]=V/10+0X30;
		volt1[3]=V%10+0x30;

		ShowString( 0,volt0 );
		ShowString( 1,volt1 );

		for( i=0;i<5;i++ )
		{
			DelayL( );
		}
		count=0;
		EX1=1;
	}
}

//````````````LCD```````````````````
void DelayL( )
{
	unsigned char i,j;
	i=0xF0;
	j=0xFF;
	while( i-- )
		while( j-- );
}

void DelayS( )
{
	unsigned char i;
	i=0x1F;
	while( i-- );
}

void WriteCommand( unsigned char c )
{
	DelayS( );
	EN=0;
	RS=0;
	RW=0;
	_nop_( );
	EN=1;
	P0=c;
	EN=0;
}

void WriteData( unsigned char c )
{
	DelayS( );
	EN=0;
	RS=1;
	RW=0;
	_nop_( );
	EN=1;
	P0=c;
	EN=0;
	RS=0;
}

void ShowChar( unsigned char pos,unsigned char c )
{
	unsigned char p;
	if( pos>=0x10 )
		p=pos+0xB0;//
	else
		p=pos+0x80;//
	WriteCommand( p );
	WriteData( c );
}

void ShowString( unsigned char line,char *ptr )
{
	unsigned char l,i;
	l=line<<4;
	for( i=0;i<16;i++ )
		ShowChar( l++, *(ptr+i) );
}

void InitLcd( )
{
	DelayL( );
	WriteCommand( 0x38 );
	DelayL( );
	WriteCommand( 0x38 );
	DelayL( );
	WriteCommand( 0x06 );
	WriteCommand( 0x0c );
	WriteCommand( 0x01 );
	WriteCommand( 0x80 );
}



	

⌨️ 快捷键说明

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