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

📄 dianya-xs.txt

📁 用C语言实现电压的显示
💻 TXT
字号:
#include <c8051f000.h>
void Timer0_Init(void);
//sfr16 RCAP2 =0xCA;
sfr16 TMR1 =0x8B;
sbit rd = P1^7;
sbit re = P1^5;
sbit wr = P1^6;
sbit addr0 = P1^0;
sbit addr1 = P1^1;
sbit addr2 = P1^2;
sbit addr3 = P1^3;
sbit addr4 = P1^4;
sbit data0 = P2^0;
sbit data1 = P2^1;
sbit data2 = P2^2;
sbit data3 = P2^3;
sbit lcd_en =P3^0;
int n,m,l,wei,temp1,temp2,temp3,yichu_shu,count,xs;
float dianya;

void write (int addr, int datain);
unsigned int read();
void OSCILLATOR_Init (void);
void PORT_Init (void);
void Timer2_Init(void);

void delay (int time_ms);
void ADC0_Init (void);
void ADC0_ISR (void) interrupt 15
{   unsigned int dianya_temp,temp;

   ADCINT = 0;
   dianya_temp=ADC0H;
  dianya_temp=dianya_temp<<8|ADC0L;  
  dianya=(float)dianya_temp/4095;
  dianya*=2.43;
   dianya*=2;
   
}	   



void main (void)
{
  
  
  WDTCN =0xde;
  WDTCN =0xad;
  
  OSCILLATOR_Init();
  PORT_Init();
  lcd_en=0;
  
  
  Timer2_Init();
  ADC0_Init ();
   OSCICN=0x08;
   ADCEN=1;
   EA=1;

  while (1)
  {
        xs=dianya*100.0;
	
        write(2,xs%10);
		write(3,xs%100/10); 

        write(4,xs/100); 
		  write(7,4); 
		  delay(500);                                                         
	
  }

}                                    
unsigned int read()
{
  unsigned int data_rd;
  PRT2CF &=0xf0;
  P2=0xff;
  rd=0;
  data_rd=P2;
  data_rd &=0x0f;
  rd=1;
  PRT2CF |= 0xff;
  return data_rd;                                    
}
void OSCILLATOR_Init (void)
{
   OSCICN |= 0x03;
   OSCXCN=0xef;
}
void PORT_Init (void)
{
  PRT1CF |= 0xff;
  PRT2CF |= 0xff;
  P1 |= 0xa0;
  XBR0 =0x00;
  XBR1 =0x08;
  XBR2 =0x40;

  }
void write (int addr,int datain)
{
   char pp;
   PRT2CF |=0xff;
   pp=addr;
   pp |=0xA0;
   P1 =pp;
   P2=datain;
   wr=1;
   wr=0;
}
void Timer2_Init()
{
CKCON=0x00;
TL2=0x00;
TH2=0xdc;
RCAP2L=0x00;
RCAP2H=0xdc;
T2CON=0x04;
ET2=0;
}
void ADC0_Init (void)
{   ADC0CN = 0x4c;                                              
   REF0CN = 0x03;                                                 
   AMX0SL = 0x02;         
   ADC0CF = 0x67;           
   AMX0CF=0x00;           
   EIE2 |= 0x02;                  
}



void delay(int time_10ms)
{
  for (n=0;n<=time_10ms;n++)
  {
      for(m=0;m<=10;m++)
	  {
	      for(l=0;l<=80;l++);
	  }
  }
}

void PCA_Init(void)

{
  PCA0MD=0x05;
  PCA0L=0x00;
  PCA0H=0xdc;
  PCA0CN=0x40;
  EIE1|=0x08;
  }

⌨️ 快捷键说明

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