📄 gas2.c
字号:
#include <p18f452.h>
#include <timers.h>
#include <usart.h>
#include <adc.h>
#include <stdlib.h>
#include <delays.h>
#include <me.h>
#include <capture.h>
#include <i2c.h>
#include <portb.h>
#include <reset.h>
#pragma romdata LED_TABLE_ADDR=0x2400
const rom unsigned char LED_TABLE[5]={0xc8,0x96,0x64,0x32,0x00};
#pragma romdata
#pragma romdata TURN_SPEED_TABLE_ADDR=0x2405
const rom unsigned char TURN_SPEED_TABLE=0x64;
#pragma romdata
#pragma romdata PULSE_FLAG_ADDR=0x2406
const rom unsigned char PULSE_FLAG_TABLE=0x00;
#pragma romdata
#pragma romdata GAS_ON_TEMP_ADDR=0x2407
const rom unsigned char GAS_ON_TEMP_TABLE=0x00;
#pragma romdata
#pragma romdata GAS_OFF_TEMP_ADDR=0x2408
const rom unsigned char GAS_OFF_TEMP_TABLE=0x00;
#pragma romdata
#pragma romdata WATER_TABLE_ADDR=0x2500
const rom unsigned char WATER_TABLE[256]={0x00,0x00,
0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,
0x5A,0x5A,0x5A,0x5A,0x58,0x56,0x54,0x52,0x50,0x4F,0x4D,0x4B,0x4A,0x49,0x48,0x47,
0x46,0x45,0x45,0x44,0x43,0x42,0x41,0x40,0x3E,0x3D,0x3C,0x3C,0x3B,0x3B,0x3A,0x39,
0x39,0x38,0x38,0x37,0x36,0x36,0x35,0x34,0x34,0x33,0x33,0x32,0x32,0x31,0x31,0x30,
0x30,0x30,0x2F,0x2E,0x2D,0x2C,0x2C,0x2C,0x2C,0x2B,0x2B,0x2B,0x2B,0x2A,0x2A,0x29,
0x29,0x28,0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x25,0x25,0x24,0x24,0x23,0x23,0x23,
0x22,0x22,0x22,0x21,0x21,0x21,0x20,0x20,0x20,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1D,
0x1D,0x1D,0x1C,0x1C,0x1C,0x1B,0x1B,0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x18,0x18,
0x18,0x17,0x17,0x17,0x16,0x16,0x16,0x15,0x15,0x15,0x14,0x14,0x14,0x13,0x13,0x13,
0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0F,0x0F,0x0F,0x0E,0x0E,0x0E,
0x0D,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x08,
0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x03,
0x03,0x02,0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
#pragma romdata
//SPEED ZKYL TABLE
#pragma romdata SPEED_ZKYL_ADDR=0x2700
const rom unsigned char SPEED_ZKYL_TABLE[768]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
#pragma romdata
//PERIOD LEVEL TABLE
#pragma romdata PERIOD_LEVEL_TABLE_ADDR=0x2A00
const rom unsigned char PERIOD_LEVEL_TABLE[256]={0x00,0x00,
0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x16,0x15,0x15,0x14,0x14,0x14,0x13,0x13,0x13,
0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,
0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,
0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00
};
#pragma romdata
//PYMK LEVLE TABLE
#pragma romdata PYMK_LEVEL_ADDR=0x2B00
const rom unsigned char PYMK_LEVEL_TABLE[256]={0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
0x02,0x02,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,0x07,0x07,0x08,0x08,0x09,0x09,
0x0A,0x0A,0x0B,0x0B,0x0C,0x0C,0x0D,0x0D,0x0E,0x0E,0x0F,0x0F,0x10,0x10,0x11,0x11,
0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,
0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,
0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
0x1A,0x1A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1D,0x1D,0x1D,0x1D,0x1D,
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D};
#pragma romdata
//SPEED PQYC TABLE
#pragma romdata SPEED_PQYC_ADDR=0x2C00
//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
const rom unsigned char SPEED_PQYC_TABLE[768]={
0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,
0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,
0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,
0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,
0x20,0x20,0x20,0x20,0x21,0x21,0x21,0x21,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x24,0x24,0x24,0x24,0x25,0x25,0x25,0x25,0x26,0x26,0x26,0x26,0x27,0x27,0x27,0x27,
0x28,0x28,0x28,0x28,0x29,0x29,0x29,0x29,0x2a,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2b,0x2c,0x2c,0x2c,0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e,0x2e,0x2f,0x2f,0x2f,0x2f,
0x30,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x33,0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37,
0x38,0x38,0x38,0x38,0x39,0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3a,0x3b,0x3b,0x3b,0x3b,0x3c,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3d,0x3e,0x3e,0x3e,0x3e,0x3f,0x3f,0x3f,0x3f,
0x40,0x40,0x40,0x40,0x41,0x41,0x41,0x41,0x42,0x42,0x42,0x42,0x43,0x43,0x43,0x43,0x44,0x44,0x44,0x44,0x45,0x45,0x45,0x45,0x46,0x46,0x46,0x46,0x47,0x47,0x47,0x47,
0x48,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4d,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e,0x4e,0x4f,0x4f,0x4f,0x4f,
0x50,0x50,0x50,0x50,0x51,0x51,0x51,0x51,0x52,0x52,0x52,0x52,0x53,0x53,0x53,0x53,0x54,0x54,0x54,0x54,0x55,0x55,0x55,0x55,0x56,0x56,0x56,0x56,0x57,0x57,0x57,0x57,
0x58,0x58,0x58,0x58,0x59,0x59,0x59,0x59,0x5a,0x5a,0x5a,0x5a,0x5b,0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,0x5c,0x5d,0x5d,0x5d,0x5d,0x5e,0x5e,0x5e,0x5e,0x5f,0x5f,0x5f,0x5f,
0x60,0x60,0x60,0x60,0x61,0x61,0x61,0x61,0x62,0x62,0x62,0x62,0x63,0x63,0x63,0x63,0x64,0x64,0x64,0x64,0x65,0x65,0x65,0x65,0x66,0x66,0x66,0x66,0x67,0x67,0x67,0x67,
0x68,0x68,0x68,0x68,0x69,0x69,0x69,0x69,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,
0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,
0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
0x88,0x88,0x88,0x88,0x89,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x8f,
0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,
0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x99,0x9a,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x9d,0x9e,0x9e,0x9e,0x9e,0x9f,0x9f,0x9f,0x9f,
0xa0,0xa0,0xa0,0xa0,0xa1,0xa1,0xa1,0xa1,0xa2,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa3,0xa4,0xa4,0xa4,0xa4,0xa5,0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa6,0xa7,0xa7,0xa7,0xa7,
0xa8,0xa8,0xa8,0xa8,0xa9,0xa9,0xa9,0xa9,0xaa,0xaa,0xaa,0xaa,0xab,0xab,0xab,0xab,0xac,0xac,0xac,0xac,0xad,0xad,0xad,0xad,0xae,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xaf,
0xb0,0xb0,0xb0,0xb0,0xb1,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb2,0xb3,0xb3,0xb3,0xb3,0xb4,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,0xb7,0xb7,0xb7,0xb7,
0xb8,0xb8,0xb8,0xb8,0xb9,0xb9,0xb9,0xb9,0xba,0xba,0xba,0xba,0xbb,0xbb,0xbb,0xbb,0xbc,0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbd,0xbe,0xbe,0xbe,0xbe,0xbf,0xbf,0xbf,0xbf};
#pragma romdata
//ZKYL LEVLE TABLE
#pragma romdata ZKYL_LEVLE_ADDR=0x2F00
const rom unsigned char ZKYL_LEVEL_TABLE[256]={0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x18,0x18,0x18,0x18
};
#pragma romdata
void timer_isr(void);
void high_isr(void);
#pragma code high_vector=0x0008
void high_interrrupt(void)
{
_asm GOTO timer_isr _endasm
}
#pragma code
#pragma code low_vector=0x0018
void low_interrrupt(void)
{
_asm GOTO high_isr _endasm
}
#pragma code
void INI_PORT(void);
void INI_DATA(void);
void INI_TIMER0(void);
void INI_UART(void);
void AD_SAMPLE(void);
void SEND_STATUS(void);
void UART_SEND(unsigned char data);
void SEND_DATA(unsigned char data);
void PROCESS_UART(void);
// in-line assembly definitions....
#define TableRead_PostInc() {_asm TBLRDPOSTINC _endasm} // table read with post increment
#define TableRead_PostDec() {_asm TBLRDPOSTDEC _endasm} // table read with post decrement
#define TableWrite_PreInc() {_asm TBLWTPREINC _endasm} // table write with pre increment
unsigned char CODE_READ(unsigned long addr);
void CODEwritePage (unsigned long addr,unsigned char data);
void PJ_TIMING(void);
void TURN_TO_GAS(void);
void LED_BIT_OUT(void);
void FILTER_SW(void);
void SET_LED_BIT(void);
void LED_DISPLAY(void);
void SAVE_PYMK(void);
void ACC_PYMK_ZKYL(void);
void ACC_PYMK(void);
void CAL_PY_STATUS(void);
void CAL_PQYC(void);
void CAL_SPEED(void);
void EXE_PZ0(void);
void EXE_PZ1(void);
void EXE_PZ2(void);
void EXE_PZ3(void);
void EXE_PZ4(void);
void EXE_PZ5(void);
void EXE_PQ_TIMER(void);
#pragma interruptlow high_isr
void high_isr(void)
{
//return;
}
#pragma interrupt timer_isr
void timer_isr(void)
{
INTCONbits.RBIF=0;
INTCONbits.INT0IF=0;
PIR1bits.PSPIF=0;
PIR1bits.ADIF=0;
PIR1bits.TXIF=0;
PIR1bits.SSPIF=0;
PIR1bits.CCP1IF=0;
PIR1bits.TMR2IF=0;
PIR1bits.TMR1IF=0;
//PIR2=0;
// PIR3=0;
//—————————————————串口处理——————————————————————————————————————————
if(PIR1bits.RCIF)
{
unsigned char TempUartData;
PIR1bits.RCIF=0;
TempUartData=ReadUSART();
if(OLD_COMMAND==TempUartData)
{
if(COMMAND_CNT>=20)
{
COMMAND_CNT=0x00;
switch(TempUartData)
{
case 0xae: REC_FLAG.onebit.RD_EN=0;break;
case 0xaf: REC_FLAG.onebit.RD_EN=1;break;
case 0xac: REC_FLAG.onebit.WR_EN=0;break;
case 0xad: REC_FLAG.onebit.WR_EN=1;break;
case 0xa4: REC_FLAG.onebit.STUDY_ENABLE=0;break;
case 0xa5: REC_FLAG.onebit.STUDY_ENABLE=1;break;
default: break;
}
}
else
COMMAND_CNT++;
}
else
{
COMMAND_CNT=0x00;
OLD_COMMAND=TempUartData;
}
UART_DATA[(TempUartData>>4)&0x0f]=TempUartData;
}
//————————————————定时中断——————————————————————————————————————————————
if(INTCONbits.TMR0IF)
{
INTCONbits.TMR0IF=0;
TMR0L=0xf0;
TMR0H=0xfc;
LED_BIT_OUT();
PJ_TIMING();
//========================================================================
TMR0A--;
if(TMR0A==0)
{ //20MS
TMR0A=0xC8;
FILTER_SW();
SET_LED_BIT();
TMR0B--;
if(TMR0B==0)
{ //200MS
TMR0B=0x0A;
TIMER_IF.onebit.SAMPLE_IF=0x01;
TIMER_IF.onebit.STATUS_SEND_IF=0x01;
TIMER_IF.onebit.SPEED_OK_IF=0x01;
TIMER_IF.onebit.LED_IF=0x01;
TIMER_IF.onebit.FLASH_IF=0x01;
QL_BIT_CNT=0x08;
QLXS_VALUE=LED_TEMP;
TMR0C--;
if(TMR0C==0)
{
TMR0C=0x05;
if(!MONITOR_FLAG.onebit.POWER_ON_OK)
{
if(POWER_ON_TIMER--==0x00)
MONITOR_FLAG.onebit.POWER_ON_OK=0x01;
}
if(PULSE_DOG_CNT==0x00)
MONITOR_FLAG.onebit.PULSE_EXIST=0x00;
else
PULSE_DOG_CNT--;
}
}
}
}
// return;
}
#pragma code my_code=0x4000
void main(void)
{
INI_PORT();
INI_DATA();
INI_TIMER0();
INI_UART();
// INTCONbits.GIE=1;
INTCONbits.GIEL = 1;
INTCONbits.GIEH = 1;
UART_SEND(0x12);
UART_SEND(0x34);
while(1)
{
/* if(RCONbits.POR==0);
RCONbits.POR=1;
if(RCONbits.POR==0);
RCONbits.POR=1;
if(RCONbits.RI==0)
RCONbits.RI==1;*/
ClrWdt();
AD_SAMPLE();
ClrWdt();
SEND_STATUS();
ClrWdt();
PROCESS_UART();
ClrWdt();
LED_DISPLAY();
ClrWdt();
TURN_TO_GAS();
ClrWdt();
// SAVE_PYMK();
}
}
void ACC_PYMK_ZKYL(void)
{
}
void SAVE_PYMK(void){
if(REC_FLAG.onebit.REC_BUSY)
{
unsigned char temp_zkyl_level,temp_jymk,diff;
unsigned long JymkAddr;
ZKYL_ACC=ZKYL_ACC/0x10;
if(ZKYL_ACC>0xFD)
ZKYL_ACC=0xFD;
PYMK_ACC=(PYMK_ACC/0x10);
temp_zkyl_level=ZKYL_LEVEL_TABLE[ZKYL];
if(ZKYL_LEVEL>0x18)
ZKYL_LEVEL=0x18;
JymkAddr=SPEED_LEVEL;
JymkAddr=JymkAddr * 0x20 + temp_zkyl_level +0x02+0x2800;
temp_jymk=CODE_READ(JymkAddr);
if(PYMK_ACC>0xFD)
PYMK_ACC=0xFD;
if(PYMK_ACC>JYMK)
diff=PYMK_ACC-JYMK;
else
diff=JYMK-PYMK_ACC;
if(diff>0x10){
CODEwritePage(JymkAddr,PYMK_ACC);
SEND_DATA(temp_zkyl_level);
UART_SEND(0x8E);
UART_SEND((PYMK_ACC & 0x0F)|0x30);
UART_SEND(((PYMK_ACC>>4) & 0x0F)|0x40);
UART_SEND(0x93);
}
REC_EN_CNT=0;
PYMK_ACC=0;
ZKYL_ACC=0;
REC_FLAG.onebit.REC_BUSY=0x00;
}
}
void LED_DISPLAY(void)
{
if(QLSR>=LEDV5)
LED_VALUE.AllBits=(LED_VALUE.AllBits & 0xC0) | 0x1F;
else if(QLSR>=LEDV4)
LED_VALUE.AllBits=(LED_VALUE.AllBits & 0xC0) |0x0F;
else if(QLSR>=LEDV3)
LED_VALUE.AllBits=(LED_VALUE.AllBits & 0xC0) |0x07;
else if(QLSR>=LEDV2)
LED_VALUE.AllBits=(LED_VALUE.AllBits & 0xC0) |0x03;
else
LED_VALUE.AllBits=(LED_VALUE.AllBits & 0xC0) |0x01;
if(SW_OLD.onebit.SW_SIG)
{
if( MONITOR_FLAG.onebit.POWER_ON_OK
&& MONITOR_FLAG.onebit.PULSE_EXIST
&& GAS_FLAG.onebit.SPEED_OK
)
{
LED_VALUE.onebit.GAS_LED=0x01;
LED_VALUE.onebit.PETROL_LED=0x00;
}
else
{
LED_VALUE.onebit.PETROL_LED=0x01;
if(TIMER_IF.onebit.FLASH_IF==0x1)
{
TIMER_IF.onebit.FLASH_IF=0x00;
LED_VALUE.onebit.GAS_LED=~LED_VALUE.onebit.GAS_LED;
}
}
}
else
{
LED_VALUE.onebit.GAS_LED=0x00;
LED_VALUE.onebit.PETROL_LED=0x01;
}
LED_TEMP=LED_VALUE.AllBits;
}
void LED_BIT_OUT(void)
{
if(REC_FLAG.onebit.LED_EN)
{
PORTBbits.QLXS=0x00;
LED_WIDTH--;
if(LED_WIDTH==0x00)
{
REC_FLAG.onebit.LED_EN=0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -