The wattmeter of the absorbed microwave power M3-114 is designed to measure in the coaxial path the average power of continuous and pulsed modulated microwave signals when powered from an industrial power network of 220 V, 50 Hz, and in standalone mode, from an internal or external battery 12 V. The device uses a four-line high-brightness vacuum-luminescent text display. Preparation of the device for operation is carried out in the dialogue mode, which simplifies operation. The device is equipped with an RS-232 port, which allows you to display data on a computer.
The operating frequency range is from 0.00 to 17.85 GHz.
The measurement range of average power from 1.0 µW to 100 watts.
In the range of the measured power of more than 10 mW at frequencies from 0 to 12.05 GHz, the limit of the basic error of the wattmeter does not exceed ± 4%, and in the frequency range from 12.05 GHz to 17.85 GHz - ± 6%.
KSVN wattmeter no more:
1.3 in the frequency range from 0.02 to 12.05 GHz;
1.4 in the frequency range above 12.05 to 17.85 GHz.
The instability of the wattmeter, taking into account the drift of the “electric zero” is not more than 40 μW / min.
The power consumed by the wattmeter from the mains voltage of 220 ± 22 V, frequency 50 ± 0.5 Hz when working with PPK1 - PPK3, not more than 12 VA, when working with PPK 4 - not more than 15 VA, when operating from an independent power source 6, 5 VA
void m3114(); // " -114" void noSignalADC(); // " " void wait(); // "" void norma(); // void PPK1(); void PPK2(); void PPK3(); void PPK4(); void prepareToWorkOnPPKEnter(); // "" void heating(); // 6 ? 34 void ifTNorm(); // =15-25 "" "" void Kcoeff(); // 1,000 void preparationOfMeasurement(); // 12 void resetMenuParams(); // void readyToMeasurement(); // void menuSet1(); // *** *** *** void switchOffSVCHAndPressEnter(); // " void preparationOfMeasurementCorrection0(); // "0" void preparationOfMeasurementCooling(); // 30 void preparationOfMeasurementStop32(); // 32 ? 24 void preparationToWork(); // void hertzType0(); // 0-1 1-4 4-8 8-12 void hertzType1(); // 12-15 15-17.85 void setPCompare(); // . ? 1,000 mW void setPCompareChange(); // . - : , void allowenceControlMin(); // min: ? , W void allowenceControlMax(); // max: ? , W void setAllowenceControlMin(); // min - : , void setAllowenceControlMax(); // max - : , void menuSet2(); // 4 8 16 void brightnessSet(); // 25% 50% 75% 100% void fault(); // !!! void incorrectValue(); // ! void overload(); // !!! >
void noSignalADC() // " " { writeData('H'); writeData('E'); writeData('T'); writeData(' '); writeData('C'); writeData('B'); writeData(0x99); writeData(0x8D); writeData(0x8E); writeData(' '); writeData('C'); writeData(' '); writeData('A'); writeData(0x90); writeData(0x85); }
extern
keyword: extern bit hertzType; extern float xdata calibrFl; extern unsigned char xdata ppkNumberCh; // char extern float xdata pCompareFl; extern float xdata pMinFl; // float extern float xdata pMaxFl; // float
void initialization(); void delay(unsigned int); void delay2s(); void zeroCorrection(); void calibration(); void measurement(); //****UART**** void sendData (unsigned char); // send to UART //unsigned char recvData(); // recive from UART void iToA (int , char * ); void getPPKnumber(); //****Keyboard**** void keyboardInit(); void keyboardPolling(); void downZero(); void upCalibr(); void lessAveraging(); void morePC(); void commaStop(); void cancel(); void enter(); void menu(); //****Display**** void dispInit(); void writeCmd(int); void writeData(char); void readBF(); void returnHome(); void clearDisp(); void reloadDisp(); void moreLessCheck();
/* __________MAKROS BLOCK__________ */ #define FIRST_LINE 0x80 #define SECOND_LINE 0xC0 #define THIRD_LINE 0x94 #define FOURTH_LINE 0xD4 #define CURSOR_HOME 0x02 #define CLEAR_DISP 0x01 #define DISP_OFF 0x08 #define DISP_ON_CB_OFF 0x0C // Disp ON cursore & blink OFF #define DISP_ON_CB_ON 0x0F #define FIRST_SIMBOL 0xD4 #define SECOND_SIMBOL 0xD5 #define THIRD_SIMBOL 0xD6 #define FOURTH_SIMBOL 0xD7 #define FIFTH_SIMBOL 0xD8 #define SIXTH_SIMBOL 0xD9 /* __________MAKROS BLOCK END__________ */
* __________PINS BLOCK__________ */ sbit E = P3^4; sbit RS = P3^6; sbit RW = P3^5; sbit workLed = P3^2; sbit menuLed = P3^3; sbit enterBut = P1^6; sbit cancelBut = P1^5; sbit uartPC = P3^7; /* __________PINS BLOCK END__________ */
/* __________VARIABLES BLOCK__________ */ unsigned char keyPressed = 0; // key pressed value bit keyFlag = 0; // software flag unsigned char xdata uartDataRecv = 0; // unsigned char xdata uartDataSend = 0; // char xdata uartRecvCount = 0; // bit menuFlag = 0; // , 1 - , 0 - char xdata move = 1; // bit signalFlag = 0; // char xdata enterFlag = 0; // char xdata cancelFlag = 0; // bit modeFlag = 0; // bit brightnessFlag = 0; // , char xdata brightnessMove = 1; // char xdata brightnessSetFlag = 0; // , bit hertzFlag = 0; // , char xdata hertzSetFlag = 0; char xdata menuStep = 0; // char xdata hertzMove = 1; // bit hertzType; // bit compareFlag; // char xdata compareFlagEnter = 0; // char xdata compareFlagCancel = 0; // char xdata moreLess = 0x30; // char xdata moreLessFlag = 0; // bit moreFlag = 0; // 1 moreLess -= 2 bit lessFlag = 0; // 1 moreLess +=2 char xdata wattFlag = 0; // bit commaFlag = 0; // unsigned char xdata pCompare[10] = 0; // float xdata pCompareFl = 1.0; //float xdata pCompareFlTemp = 1.0; // . // , !!! bit controlFlag = 0; // char xdata controlFlagEnter = 0; // char xdata controlFlagCancel = 0; // unsigned char xdata pMin[10]; // min unsigned char xdata pMax[10]; // max float xdata pMinFl = 0; // float float xdata pMaxFl = 0; // float bit pMinFlag = 0; // min bit pMaxFlag = 0; // max unsigned char xdata zeroCoef1 = 50; // 50 - 200 unsigned char xdata zeroCoef2 = 30; // 50 - 200 unsigned char xdata zeroCoef3 = 30; // 50 - 200 unsigned char xdata zeroCoef4 = 100; // 50 - 200 unsigned long xdata zero; // unsigned char xdata calibrCoef1 = 50; // 50 - 200 unsigned char xdata calibrCoef2 = 30; // 50 - 200 unsigned char xdata calibrCoef3 = 30; // 50 - 200 unsigned char xdata calibrCoef4 = 100; // 50 - 200 unsigned long xdata calibr; // float xdata calibrFl; // unsigned int xdata PPK1CalibrPower; // 1 unsigned long xdata PPK23CalibrPower; // 1 - 2 unsigned long xdata PPK4CalibrPower; // 4 float xdata PPK1CalibrStandart; // (0,5 - 1,5) float xdata PPK2CalibrStandart; // (0,5 - 1,5) float xdata PPK3CalibrStandart; // (0,5 - 1,5) float xdata PPK4CalibrStandart; // (0,5 - 1,5) unsigned char xdata uartData[10]; // unsigned char xdata ppkNumberCh; // char float xdata measurementResult = 0; // bit averagingFlag = 0; // bit averaging4 = 0; // 4- bit averaging8 = 0; // 8- char xdata averagingMove = 1; // float idata hertzRate = 1; // 6() * 4() = 24 float idata dynamicRate = 1; // // 4() * 4() = 16 char idata stop = 0; // 1 , 0 char idata pc = 0; // //bit key = 0; xdata union { unsigned long bytes; unsigned char byteArr[4]; } byteUnion; /* __________VARIABLES BLOCK END__________ */
/* __________INTERUPTS BLOCK__________ */ void keyboard_interrupt() interrupt 7 using 1 { IEN1 &= ~(1<<0); // keyFlag = 0; keyPressed = KBF; /* save pressed key */ keyFlag = 1; /* set the software flag */ KBF = 0x00; /* clear keyboard flags */ delay(50000); // 50 mc IEN1 |= 0x01; // } void serial_IT(void) interrupt 4 { if (RI == 1) { uartDataRecv = SBUF; uartData[uartRecvCount] = uartDataRecv; ++uartRecvCount; } RI = 0; } /* __________INTERUPTS BLOCK END__________ */
Source: https://habr.com/ru/post/214291/
All Articles