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

📄 gas2.c

📁 发动机点火提前角的一个程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -