#include #include #include #include #include "Nano100Series.h" #include "adc.h" #include "gpio.h" #include "pwm.h" #include "timer.h" #include "uart.h" #include "sys.h" #include "clk.h" #include "EEPROM_Emulate.h" #include "My_define.h" void Initial_Signal(); void Disp_Segdata(uint8_t Sel, uint8_t digit4, uint8_t digit3, uint8_t digit2, uint8_t digit1); void Led_OnOff(uint8_t kind, uint8_t onoff); uint8_t Font_Data[18]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67,\ 0x80, 0x58, 0x79, 0x40, 0x00, 0x50, 0x77, 0x5E }; // . , c , E , - , ' ' , r , A , d uint8_t seg_data[4][14]; #define A_DATA PA4 #define A_CLK PA3 #define A_STB PA2 void Initial_Signal() { uint8_t i; A_CLK = 1; A_STB = 1; for(i=0; i<8; i++) //command 1 (#0000_0001B) -> 5grid 8seg { A_STB = 0; A_CLK = 0; if(i==0) { A_DATA = 1; } else { A_DATA = 0; } A_CLK = 1; } A_STB = 1; for(i=0; i<8; i++) //command 2 (#0100_0000B) { A_STB = 0; A_CLK = 0; if(i==6) { A_DATA = 1; } else { A_DATA = 0; } A_CLK = 1; } A_STB = 1; for(i=0; i<8; i++) //command 3 (#1100_0000B) { A_STB = 0; A_CLK = 0; if(i==6 || i==7) { A_DATA = 1; } else { A_DATA = 0; } A_CLK = 1; } for(i=0; i<112; i++) //data { A_STB = 0; A_CLK = 0; A_DATA = 0; A_CLK = 1; } A_STB = 1; for(i=0; i<8; i++) //command 4 (#1000_0100B) { A_STB = 0; A_CLK = 0; if(i==3 || i==7) { A_DATA = 1; } else { A_DATA = 0; } A_CLK = 1; } A_STB = 1; } uint16_t one_sec = 0; extern uint8_t Tmperature_Error; void Disp_Segdata(uint8_t Sel, uint8_t digit4, uint8_t digit3, uint8_t digit2, uint8_t digit1) { seg_data[Sel][0] = Font_Data[digit4]; seg_data[Sel][1] = Font_Data[digit4]>>3; seg_data[Sel][2] = Font_Data[digit3]; seg_data[Sel][3] = Font_Data[digit3]>>3; seg_data[Sel][4] = Font_Data[digit2]; seg_data[Sel][5] = Font_Data[digit2]>>3; seg_data[Sel][6] = Font_Data[digit1]; seg_data[Sel][7] = Font_Data[digit1]>>3; } enum{ K_VENT, K_AUTO, K_AIR, K_WIND1, K_WIND2, K_WIND3, K_WIND4, K_WIND5, K_PM25_1, K_PM25_2, K_PM25_4, K_PM25_3, K_PM10_1, K_PM10_2, K_PM10_4, K_PM10_3, K_TIME_1, K_TIME_4, K_TIME_8, K_LOCK, K_JUMKEOM, K_FILTER_CLEAN, K_FILTER_CHANGE, K_EXTRA1, K_CO2_1, K_CO2_2, K_CO2_4, K_CO2_3, K_SOJA_CLEAN, K_SOJA_CHANGE, K_IOT, K_EXTRA2, }; void Led_OnOff(uint8_t kind, uint8_t onoff) { if(onoff == 1) { if(kind < 6) { seg_data[3][0] |= 0x01<