📄 gas1.c
字号:
// _asm CLRWDT _endasm
SEND_DATA(LEDV5);
UART_SEND(0xC6);
SEND_DATA(LEDV4);
UART_SEND(0xC7);
SEND_DATA(LEDV3);
UART_SEND(0xC8);
SEND_DATA(LEDV2);
UART_SEND(0xC9);
SEND_DATA(LEDV1);
UART_SEND(0xCA);
// _asm CLRWDT _endasm
SEND_DATA(ZKYL);
UART_SEND(0x80);
SEND_DATA(RQYL);
UART_SEND(0x81);
SEND_DATA(QYCG);
UART_SEND(0x82);
SEND_DATA(HYCG);
UART_SEND(0x83);
// _asm CLRWDT _endasm
SEND_DATA(WATER_TEMP);
UART_SEND(0x84);
SEND_DATA(QLSR);
UART_SEND(0x86);
SEND_DATA(PYMK);
UART_SEND(0x88);
// _asm CLRWDT _endasm
SEND_DATA(PZ_PERIOD);
UART_SEND(0x8a);
SEND_DATA(PZ_PERIOD>>8);
UART_SEND(0x8b);
SEND_DATA(SPEED_LEVEL);
UART_SEND(0x8C);
// _asm CLRWDT _endasm
//SEND_DATA(PYMK_LEVEL);
SEND_DATA(0x01);
UART_SEND(0x8D);
SEND_DATA(ZKYL_LEVEL);
UART_SEND(0x8E);
SEND_DATA(JYMK);
UART_SEND(0x8F);
TIMER_IF.onebit.STATUS_SEND_IF=0;
}
}
void UART_SEND(unsigned char data)
{
while (BusyUSART());
WriteUSART(data);
}
void SEND_DATA(unsigned char data)
{
UART_SEND((data & 0x0f) | 0x60);
UART_SEND( ( (data >>4) & 0x0f) | 0x70);
}
// _________________________________________________________________________________________________
unsigned char CODE_READ(unsigned long addr)
{
TBLPTRL = *((unsigned char *)&addr);
// TBLPTRL &= 0xfe;
TBLPTRH =*((unsigned char *)&addr+1);
TBLPTRU =*((unsigned char *)&addr+2);
TableRead_PostInc();
return TABLAT;
}//
void CODEwritePage (unsigned long addr,unsigned char data)
{
signed char i,j;
unsigned char temp[64];
TBLPTRL =*((unsigned char *)&addr);
TBLPTRH =*((unsigned char *)&addr+1);
TBLPTRU =*((unsigned char *)&addr+2);
TBLPTRL &= 0xC0;
for (i=0;i<=63;i++)
{
TableRead_PostInc();
temp[i] = TABLAT;
}
temp[addr & 0x3f]=data;
while (EECON1bits.WR) {};
TBLPTRU = *((unsigned char *)&addr+2);
TBLPTRH = *((unsigned char *)&addr+1);
TBLPTRL = *((unsigned char *)&addr);
TBLPTRL &= 0xC0;
EECON1bits.EEPGD = 1;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
EECON1bits.FREE = 1;
INTCONbits.GIEL = 0;
INTCONbits.GIEH = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
Nop();
INTCONbits.GIEL = 1;
INTCONbits.GIEH = 1;
TableRead_PostDec();
FSR0H = ((((unsigned int)&temp[0])>>8)&0xFF);
FSR0L = (((unsigned int)&temp[0])&0xFF);
for(j=0;j<8;j++){
for (i=0;i<8;i++) {
TABLAT = (POSTINC0);
TableWrite_PreInc();
}
EECON1bits.EEPGD = 1;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
INTCONbits.GIEL = 0;
INTCONbits.GIEH = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
Nop();
INTCONbits.GIEL = 1;
INTCONbits.GIEH = 1;
}
EECON1bits.WREN = 0;
}
void PJ_TIMING(void)
{
}
//============================cal signed pqyc=====================================
void CAL_PQYC(void)
{
}
//=========================cal speed=================================================
void CAL_SPEED(void)
{
}
//==========================exe pz===================================
void EXE_PZ0(void)
{
if(PZ_COME.onebit.PZ0){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ0=1;
PZ0_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ0=1;
}
if(PZ_OVER.onebit.PZ0){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ0=0;
}
else {
PQ_REG.onebit.PZ0=1;
PQ_LAST.onebit.PZ0=1;
PZ0_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ0)
{
if(PZ0_PQYC!=0x00)
PZ0_PQYC=PZ0_PQYC-1;
else
{
PQ_LAST.onebit.PZ0 =0;
PQ_REG.onebit.PZ0=0;
}
}
if(PQ_CUT.onebit.PZ0)
if(PZ0_PQYC==0)
{
PQ_CUT.onebit.PZ0=0;
PQ_REG.onebit.PZ0=1;
}
else
PZ0_PQYC--;
}
void EXE_PZ1(void)
{
if(PZ_COME.onebit.PZ1){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ1=1;
PZ1_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ1=1;
}
if(PZ_OVER.onebit.PZ1){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ1=0;
}
else {
PQ_REG.onebit.PZ1=1;
PQ_LAST.onebit.PZ1=1;
PZ1_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ1)
{
if(PZ1_PQYC!=0x00)
PZ1_PQYC=PZ1_PQYC-1;
else
{
PQ_LAST.onebit.PZ1 =0;
PQ_REG.onebit.PZ1=0;
}
}
if(PQ_CUT.onebit.PZ1)
if(PZ1_PQYC==0)
{
PQ_CUT.onebit.PZ1=0;
PQ_REG.onebit.PZ1=1;
}
else
PZ1_PQYC--;
}
void EXE_PZ2(void)
{
if(PZ_COME.onebit.PZ2){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ2=1;
PZ2_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ2=1;
}
if(PZ_OVER.onebit.PZ2){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ2=0;
}
else {
PQ_REG.onebit.PZ2=1;
PQ_LAST.onebit.PZ2=1;
PZ2_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ2)
{
if(PZ2_PQYC!=0x00)
PZ2_PQYC=PZ2_PQYC-1;
else
{
PQ_LAST.onebit.PZ2 =0;
PQ_REG.onebit.PZ2=0;
}
}
if(PQ_CUT.onebit.PZ2)
if(PZ2_PQYC==0)
{
PQ_CUT.onebit.PZ2=0;
PQ_REG.onebit.PZ2=1;
}
else
PZ2_PQYC--;
}
void EXE_PZ3(void)
{
if(PZ_COME.onebit.PZ3){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ3=1;
PZ3_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ3=1;
}
if(PZ_OVER.onebit.PZ3){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ3=0;
}
else {
PQ_REG.onebit.PZ3=1;
PQ_LAST.onebit.PZ3=1;
PZ3_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ3)
{
if(PZ3_PQYC!=0x00)
PZ3_PQYC=PZ3_PQYC-1;
else
{
PQ_LAST.onebit.PZ3 =0;
PQ_REG.onebit.PZ3=0;
}
}
if(PQ_CUT.onebit.PZ3)
if(PZ3_PQYC==0)
{
PQ_CUT.onebit.PZ3=0;
PQ_REG.onebit.PZ3=1;
}
else
PZ3_PQYC--;
}
void EXE_PZ4(void)
{
if(PZ_COME.onebit.PZ4){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ4=1;
PZ4_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ4=1;
}
if(PZ_OVER.onebit.PZ4){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ4=0;
}
else {
PQ_REG.onebit.PZ4=1;
PQ_LAST.onebit.PZ4=1;
PZ4_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ4)
{
if(PZ4_PQYC!=0x00)
PZ4_PQYC=PZ4_PQYC-1;
else
{
PQ_LAST.onebit.PZ4 =0;
PQ_REG.onebit.PZ4=0;
}
}
if(PQ_CUT.onebit.PZ4)
if(PZ4_PQYC==0)
{
PQ_CUT.onebit.PZ4=0;
PQ_REG.onebit.PZ4=1;
}
else
PZ4_PQYC--;
}
void EXE_PZ5(void)
{
if(PZ_COME.onebit.PZ5){
if(PERCENT_FLAG.onebit.sign){
PQ_CUT.onebit.PZ5=1;
PZ5_PQYC=PQYC;
}
else
PQ_REG.onebit.PZ5=1;
}
if(PZ_OVER.onebit.PZ5){
if(PERCENT_FLAG.onebit.sign){
PQ_REG.onebit.PZ5=0;
}
else {
PQ_REG.onebit.PZ5=1;
PQ_LAST.onebit.PZ5=1;
PZ5_PQYC=PQYC;
}
}
if(PQ_LAST.onebit.PZ5)
{
if(PZ5_PQYC!=0x00)
PZ5_PQYC=PZ5_PQYC-1;
else
{
PQ_LAST.onebit.PZ5 =0;
PQ_REG.onebit.PZ5=0;
}
}
if(PQ_CUT.onebit.PZ5)
if(PZ5_PQYC==0)
{
PQ_CUT.onebit.PZ5=0;
PQ_REG.onebit.PZ5=1;
}
else
PZ5_PQYC--;
}
//===========================喷气脉宽看门狗=======================================
void EXE_PQ_TIMER(void)
{
if(PQ_REG.onebit.PZ0)
if(PQ0_TIMER>=350)
PQ_REG.onebit.PZ0=0;
else
PQ0_TIMER++;
else
PQ0_TIMER=0;
if(PQ_REG.onebit.PZ1)
if(PQ1_TIMER>=350)
PQ_REG.onebit.PZ1=0;
else
PQ1_TIMER++;
else
PQ1_TIMER=0;
if(PQ_REG.onebit.PZ2)
if(PQ2_TIMER>=350)
PQ_REG.onebit.PZ2=0;
else
PQ2_TIMER++;
else
PQ2_TIMER=0;
if(PQ_REG.onebit.PZ3)
if(PQ3_TIMER>=350)
PQ_REG.onebit.PZ3=0;
else
PQ3_TIMER++;
else
PQ3_TIMER=0;
if(PQ_REG.onebit.PZ4)
if(PQ4_TIMER>=350)
PQ_REG.onebit.PZ4=0;
else
PQ4_TIMER++;
else
PQ4_TIMER=0;
if(PQ_REG.onebit.PZ5)
if(PQ5_TIMER>=350)
PQ_REG.onebit.PZ5=0;
else
PQ5_TIMER++;
else
PQ5_TIMER=0;
}
//=============================喷油脉宽累加=============================================
void ACC_PYMK()
{
if(PZ_OLD.onebit.PZ0)
{
if(PZ0_PYMK<0xFD)
PZ0_PYMK++;
}
if(PZ_OVER.onebit.PZ0){
PYMK=PZ0_PYMK;
PZ0_PYMK=0;
}
if(PZ_OLD.onebit.PZ1)
{
if(PZ1_PYMK<0xFD)
PZ1_PYMK++;
}
if(PZ_OLD.onebit.PZ2)
{
if(PZ2_PYMK<0xFD)
PZ2_PYMK++;
}
if(PZ_OLD.onebit.PZ3)
{
if(PZ3_PYMK<0xFD)
PZ3_PYMK++;
}
if(PZ_OLD.onebit.PZ4)
{
if(PZ4_PYMK<0xFD)
PZ4_PYMK++;
}
if(PZ_OLD.onebit.PZ5)
{
if(PZ5_PYMK<0xFD)
PZ5_PYMK++;
}
}
//===========================喷油状态====================================================
void CAL_PY_STATUS(void)
{
}
#pragma code
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -