📄 main._c
字号:
#include <eeprom.h>
#include <io8515v.h>
#include "init.h"
#include "key5.h"
#include "1602LCD.h"
#define DEFAULT_K1 1.509
#define DEFAULT_T 100
#define MIN_T 50
// globals:
unsigned int value; // 电流数值
//unsigned int *p; // 数据指针
unsigned char DAC4_value=1;
float K1=DEFAULT_K1;
unsigned int ADC; // AD转换值
unsigned int ADC_GD;
unsigned int DAC; // DA转换值
unsigned char time_count; // 计数寄存器
float POUNT;
unsigned char value_table[5]; // 数据缓冲区
unsigned char mode=1; // 模式标志
unsigned int value_temp; // 数据寄存器
unsigned char j; // 光标位置
unsigned long arv_ADC=0;
unsigned long arv_count=0;
unsigned int Time1;
void main(void)
{
mode_choice();
init_devices(); // 硬件初始化
while(1) // 主循环
{
key_service(2,0,4,&value ); // 键盘服务
}
}
void SaveToEEPROM(unsigned char off,unsigned char len,unsigned add)
{
int i;
for(i=0;i<len;i++)
EEPROMwrite(add++,value_table[off++]);
}
unsigned int changK1(void)
{
if(K1>6.5) K1=6.5;
return K1*10000;
}
void mode_choice(void)
{
unsigned char flag=1;
unsigned char key_temp;
LCD_init();
K1=EEPROMread(0x00)+EEPROMread(0x01)*0.1+EEPROMread(0x02)*0.01+EEPROMread(0x03)*0.001+EEPROMread(0x04)*0.0001;
Time1=EEPROMread(0x05)*1000+EEPROMread(0x06)*100+EEPROMread(0x07)*10+EEPROMread(0x08);
if(Time1<MIN_T) Time1=MIN_T;
mode_again:
LCD_clr();
LCD_write_string(0,0,"K= ,T= ");
LCD_display(2,0,5,changK1());
LCD_display(10,0,4,Time1);
LCD_write_string(0,1,"Fn:Mod C:Def");
while(flag)
{
key_temp=keypad();
if(key_temp==KEY_OK)
{
Time1=0-Time1;
TCNT1H=Time1>>8;
TCNT1L=Time1&0xff;
break;
}
if(key_temp==KEY_CU)
{
K1=DEFAULT_K1;
data_init(changK1());
SaveToEEPROM(0,5,0);
Time1=DEFAULT_T;
data_init(Time1);
SaveToEEPROM(1,4,5);
goto mode_again;
}
if(key_temp==KEY_FN)
{
LCD_clr();
LCD_display(0,0,5,changK1());
LCD_write_string(6,0,"-10e4");
LCD_write_string(0,1,"^ Set K");
j=0;
data_init(changK1());
while(flag)
{
key_temp=keypad();
switch(key_temp)
{
case KEY_CU:
LCD_write(j,1,' ');
j++;
if(j>4) j=0;
LCD_write(j,1,'^');
break;
case KEY_INC:
value_table[j]++;
if(value_table[j]>9) value_table[j]=0;
LCD_write(j,0,value_table[j]+'0');
break;
case KEY_DEC:
value_table[j]--;
if(value_table[j]==255) value_table[j]=9;
LCD_write(j,0,value_table[j]+'0');
break;
case KEY_FN:
K1=value_table[0]+ value_table[1]*0.1+value_table[2]*0.01+value_table[3]*0.001+value_table[4]*0.0001;
data_init(changK1());
SaveToEEPROM(0,5,0);
LCD_clr();
LCD_display(0,0,4,Time1);
LCD_write_string(0,1,"^ Set T");
j=1;
data_init(Time1);
flag=0;
break;
}
}
flag=1;
while(flag)
{
key_temp=keypad();
switch(key_temp)
{
case KEY_CU:
LCD_write(j-1,1,' ');
j++;
if(j>4) j=1;
LCD_write(j-1,1,'^');
break;
case KEY_INC:
value_table[j]++;
if(value_table[j]>9) value_table[j]=0;
LCD_write(j,0,value_table[j]+'0');
break;
case KEY_DEC:
value_table[j]--;
if(value_table[j]==255) value_table[j]=9;
LCD_write(j,0,value_table[j]+'0');
break;
case KEY_FN:
Time1=value_table[1]*1000+ value_table[2]*100+value_table[3]*10+value_table[4];
if(Time1<MIN_T) Time1=MIN_T;
data_init(Time1);
SaveToEEPROM(1,4,5);
goto mode_again;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -