📄 cc.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 + -