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

📄 main.c

📁 基于Keil uVision3开发平台
💻 C
📖 第 1 页 / 共 2 页
字号:
  if(timea_m<10)
   {lcd_num_display(0);}
  lcd_num_display(timea_m);
  lcd_text_display(":");
  if(timea_s<10)
   {lcd_num_display(0);}
  lcd_num_display(timea_s);
  lcd_text_display(" ");
 }
}

/**********显示菜单信息**********/
void page1_cn(void)
{
    //lcd_box_display(79,0,176,17,1);
    lcd_cmd_send(0x60);lcd_cmd_send(0x08);
    lcd_cmd_send(0x70);lcd_cmd_send(0x00); 
    lcd_cmd_send(0xf1);lcd_cmd_send(0x0f);
    lcd_text_display("各节电池电压(V)");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    lcd_text_display("01号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x20);
    lcd_text_display("03号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("05号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x40);
    lcd_text_display("07号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x50);
    lcd_text_display("09号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("11号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x70);
    lcd_text_display("13号:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    lcd_text_display("02号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x20);
    lcd_text_display("04号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("06号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x40);
    lcd_text_display("08号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x50);
    lcd_text_display("10号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("12号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x70);
    lcd_text_display("14号:");
}
void page1_en(void)
{
    lcd_cmd_send(0x60);lcd_cmd_send(0x08);
    lcd_cmd_send(0x70);lcd_cmd_send(0x00); 
    lcd_cmd_send(0xf1);lcd_cmd_send(0x0f);
    lcd_text_display("Each voltage(V)");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    lcd_text_display("NO.01:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x20);
    lcd_text_display("NO.03:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("NO.05:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x40);
    lcd_text_display("NO.07:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x50);
    lcd_text_display("NO.09:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("NO.11:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x70);
    lcd_text_display("NO.13:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    lcd_text_display("NO.02:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x20);
    lcd_text_display("NO.04:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("NO.06:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x40);
    lcd_text_display("NO.08:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x50);
    lcd_text_display("NO.10:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("NO.12:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x70);
    lcd_text_display("NO.14:");
}
void page2_cn(void)
{
    //lcd_box_display(79,0,176,17,1);
    lcd_cmd_send(0x60);lcd_cmd_send(0x08);
    lcd_cmd_send(0x70);lcd_cmd_send(0x00); 
    lcd_cmd_send(0xf1);lcd_cmd_send(0x0f);
    lcd_text_display("电池温度(℃)");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    lcd_text_display("01号:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    lcd_text_display("02号:");    
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("充电电流:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x48);
    lcd_text_display("错误代码:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("充电时间:");
}
void page2_en(void)
{
    lcd_cmd_send(0x60);lcd_cmd_send(0x08);
    lcd_cmd_send(0x70);lcd_cmd_send(0x00); 
    lcd_cmd_send(0xf1);lcd_cmd_send(0x0f);
    lcd_text_display("Temperature(℃)");
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    lcd_text_display("NO.01:");
    lcd_cmd_send(0x60);lcd_cmd_send(0x0f);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    lcd_text_display("NO.02:");    
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x30);
    lcd_text_display("Current:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x48);
    lcd_text_display("Error Code:");
    
    lcd_cmd_send(0x60);lcd_cmd_send(0x00);
    lcd_cmd_send(0x70);lcd_cmd_send(0x60);
    lcd_text_display("Charge Time:");
}

void adc_display(void)
{
    lcd_cmd_send(0x60);lcd_cmd_send(0x06);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    num_m=receive_num[5];
	num_m<<=8;
	num_m|=receive_num[4];
    num_x=num_m;
	num_x/=10000; 
	lcd_float_display(num_x);

    lcd_cmd_send(0x60);lcd_cmd_send(0x16);
    lcd_cmd_send(0x70);lcd_cmd_send(0x10);
    num_m=receive_num[7];
	num_m<<=8;
	num_m|=receive_num[6];
	num_x=num_m;
	num_x/=10000; 
	lcd_float_display(num_x);
}

void ds18b20_display(void)
{
    lcd_cmd_send(0x60);lcd_cmd_send(0x06);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    num_m=receive_num[33];
	num_m<<=8;
	num_m|=receive_num[32];
    num_x=num_m;
	num_x/=100; 
	lcd_float_display(num_x);

    lcd_cmd_send(0x60);lcd_cmd_send(0x16);
    lcd_cmd_send(0x70);lcd_cmd_send(0x18);
    num_m=receive_num[35];
	num_m<<=8;
	num_m|=receive_num[34];
	num_x=num_m;
	num_x/=100; 
	lcd_float_display(num_x);
}

/**********串口初始化函数**********/
void uart_init() 
{ 
 SCON=0x50;    //使能接收选择串口模式1 
 SSTAT=0x60;   //选择独立的Tx/Rx中断 
 BRGR0=0xF0;   //9600 baud @ 7.373MHz 
 BRGR1=0x02; 
 //BRGR0=0x70; //19200 baud @ 7.373MHz 
 //BRGR1=0x01; 
 //BRGR0=0x30; //115200 baud @ 7.373MHz 
 //BRGR1=0x00; 
 BRGCON =0x03; //使能BRG 
 ESR=1;        //接收中断开 
}  
/**********串口接收中断函数**********/		 
void uart_rcv() interrupt 4 //当接收完一个字节,RI置1进入Recieve中断 
{ 
 uart_temp=SBUF;
 if((uart_temp==0xaa)&&(flag0==0))
  {flag0=1;}
 else if(flag0==1)
  {
   num_flag=uart_temp;
   flag0=2;
  }
 else if(flag0==2)
  {
   receive_num[num_flag++]=uart_temp;
   flag0=3;
  }
 else if(flag0==3)
  {
   receive_num[num_flag]=uart_temp;
   flag0=0;
  }
 RI=0;          //RI清0以等待下次发送 
} 											
/**********串口发送函数**********/	/*  	
void uart_send(uchar send_num)
{
 TI=0;         //TI清0准备发送
 SBUF=send_num;//发送数据 
 while(!TI);   //当TI为1时发送完毕 
}			*/						

void main(void)
{
  EA=0;//关总中断 
  port_init();
  rtc_init();
  uart_init();
  lcd_init();
  lcd_clean();
  delay_ms(500);
  EA=1;//开总中断
  while(1)
  {	
   if((page!=receive_num[2])||(language!=receive_num[0])) //页面或语言变换
    {
	  page=receive_num[2];
	  language=receive_num[0];
	  lcd_clean();
	  if(page==1)
	   {
	     if(language==0)
		  {page1_cn();}
		 else page1_en();
		 adc_display();
	   }
	  else if(page==2)
	   {
	     if(language==0)
		  {page2_cn();}
		 else page2_en();
		 ds18b20_display();
         time_display();
	   }
	}
   else if(page==1)  //第一页数据更新
	{adc_display();}
   else if(page==2)  //第二页数据更新
	{
     ds18b20_display();
     time_display(); //每秒数据更新一次
	}
  }
}


⌨️ 快捷键说明

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