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

📄 system_initial.c

📁 基于51的单片机设计的电容计的完整源代码
💻 C
字号:
/******************************************************************
   本程序只供学习使用,未经作者许可,不得用于其它任何用途
      我的邮箱:computer-lov@tom.com
        欢迎访问我的blog:  http://computer00.21ic.org

system_initial.c文件 系统初始化

Created by Computer-lov
Date: 2004.11.12

Edit date:2006.3.2

Version V1.1
Copyright(C) Computer-lov 2004-2014
All rigths reserved      
*******************************************************************/

#include "hardware.h"
#include "system_initial.h"
#include "main.h"
#include "LCD1602.H"
#include "measure_capacity.h"
#include "square_wave_generator.h"

void System_initial(void)
{
 unsigned int i;
 EA=0;
 P0=0xFF;
 P1=0x11;
 P2=0xFF;
 P3=0xBF;
 LCD_initial();
 LCD_prints("Welcom to use!");
 LCD_set_position(40);
 LCD_prints("Starting.");
 delayXms(200);
 T2CON=0x00;              //定时器自动重装模式
 T2MOD=0x00;
 RCAP2H=0xB1;
 RCAP2L=0xE0;             //定时时间为10ms
 TCON=0x05;               //外中断边沿触发方式
 TMOD=0x11;
 ET2=1;                   //定时中断2允许
 ET1=0;
 ET0=1;                   //外部中断0允许
 EX0=1;
 EX1=0;
 LCD_printc('.');
 delayXms(150);
 LCD_printc('.');
 delayXms(150);
 settings_value.flag=0xAA;
 settings_value.last_status=MAIN_MENU;
 settings_value.mode=AUTO_MODE;
 settings_value.capacity_scope=5;
 settings_value.wave_value=18;
 settings_value.zero_offset[0]=0x0000;
 settings_value.zero_offset[1]=0x0000;
 settings_value.zero_offset[2]=0x0000;
 settings_value.zero_offset[3]=0x0000;
 settings_value.zero_offset[4]=0x0000;
 i=Read_a_EEPROM_data(EEPROM_Addr,0x00);
 LCD_printc('.');
 delayXms(150);
 LCD_printc('.');
 delayXms(150);
 EA=1;
 TR2=1;
 if(i>255)
  {
   NO_2401=1;
   menu_value=1;
   status=settings_value.last_status;
   capacity_scope=settings_value.capacity_scope;
   wave_value=settings_value.wave_value;
   return;
  }
 else NO_2401=0;
 if(i!=settings_value.flag)
  {
   for(i=0;i<15;i++)Write_a_EEPROM_data(EEPROM_Addr,i,((unsigned char *)&settings_value)[i]);
   menu_value=1;
   status=settings_value.last_status;
   capacity_scope=settings_value.capacity_scope;
   wave_value=settings_value.wave_value;
   return;
  }
 LCD_printc('.');
 delayXms(50);
 LCD_printc('.');
 delayXms(50);
 for(i=0;i<15;i++)((unsigned char *)&settings_value)[i]=Read_a_EEPROM_data(EEPROM_Addr,i);
 LCD_printc('.');
 delayXms(100);
 menu_value=1;
 status=settings_value.last_status;
 capacity_scope=settings_value.capacity_scope;
 wave_value=settings_value.wave_value;
}

⌨️ 快捷键说明

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