Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
engine.ASM
Package: engine.rar [view]
Upload User: lxyy1103
Upload Date: 2014-12-03
Package Size: 13k
Code Size: 105k
Category:
Other systems
Development Platform:
Others
- ;======================================================================================================================================
- ;edit by geyuanqing 20051119
- ;==========================================================程序流程图=============================================================
- ;INT_PROGRAM :UART
- ; :TIMER0 :>] :JUDGE_PY0 :>TABLE
- ; :JUDGE_PY1 :>TABLE
- ; :JUDGE_PY2 :>TABLE
- ; :JUDGE_PY3 :>TABLE
- ; :>JUDGE_PZ_JC
- ;中断服务程序中调用3级子程序嵌套,主程序至多有5级嵌套
- ;=====================================================================
- ;MAINLOOP:
- ; :>AD_SAMPLE
- ; :>SEND_AD_VALUE :>SEND_STATUS :>UART_SEND
- ; :>JUDGE_JC12V_PZ12V
- ; :>PROCESS_UART :>UART_RD_EEP :RD_EEP
- ; :>UART_WR_EEP :WR_EEP
- ;主程序中最多嵌套3级,所有子程序和中断调用没有问题
- include "headfile.h"
- ORG 0x000
- NOP
- NOP
- NOP
- GOTO START
- GOTO INT_PROG
- ;===================================================================================================================================
- ;==========================================================中断服务程序===============================================================
- ;===================================================================================================================================
- INT_PROG:
- ;保存W STATUS PC
- MOVWF WSAVE
- SWAPF STATUS,W
- CLRF STATUS
- MOVWF STATUSSAVE
- MOVF PCLATH,W
- MOVWF PCLATHSAVE
- CLRF PCLATH
- MOVF FSR,W
- MOVWF FSRSAVE
- ;检测串口中断
- BTFSS PIR1,RCIF
- GOTO TMR0_PROG
- BTFSC RCSTA,FERR
- GOTO UART_ERR
- BTFSC RCSTA,OERR
- GOTO UART_ERR
- ;缓存串口数据,串口收数缓存在PAGE1中
- MOVF RCREG,W
- MOVWF UART_DATAA
- JUDGE_UART_COMMAND:
- XORWF OLD_COMMAND,0x0 ;判断是否和旧数据相同
- BTFSS STATUS,Z
- GOTO CLEAR_COMMAND_CNT
- INCFSZ COMMAND_CNT,0x1
- GOTO NORMAL_RECIEVE
- ;累加次数溢出,判断命令
- JUDGE_RD_DISEN:
- MOVLW 0xA0
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO JUDGE_RD_EN
- BCF REC_FLAG,RD_EN
- GOTO CLEAR_COMMAND_CNT
- JUDGE_RD_EN:
- MOVLW 0xA1
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO JUDGE_WR_DISEN
- BSF REC_FLAG,RD_EN
- GOTO CLEAR_COMMAND_CNT
- JUDGE_WR_DISEN:
- MOVLW 0xA2
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO JUDGE_WR_EN
- BCF REC_FLAG,WR_EN
- GOTO CLEAR_COMMAND_CNT
- JUDGE_WR_EN:
- MOVLW 0xA3
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO JUDGE_STUDY_DISEN
- BSF REC_FLAG,WR_EN
- GOTO CLEAR_COMMAND_CNT
- JUDGE_STUDY_DISEN:
- MOVLW 0xA4
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO JUDGE_STUDY_EN
- BCF REC_FLAG,STUDY_ENABLE
- GOTO CLEAR_COMMAND_CNT
- JUDGE_STUDY_EN:
- MOVLW 0xA5
- XORWF OLD_COMMAND,0
- BTFSS STATUS,Z
- GOTO CLEAR_COMMAND_CNT
- BSF REC_FLAG,STUDY_ENABLE
- CLEAR_COMMAND_CNT:
- MOVLW 0xC0
- MOVWF COMMAND_CNT
- MOVF UART_DATAA,W
- MOVWF OLD_COMMAND
- NORMAL_RECIEVE:
- SWAPF UART_DATAA,0x0
- ANDLW 0xF
- ADDLW UART_DATA_ADDR
- MOVWF FSR
- MOVF UART_DATAA,W
- MOVWF INDF
- GOTO TMR0_PROG
- UART_ERR:
- CALL PAGE0
- BCF RCSTA,FERR
- BCF RCSTA,OERR
- CALL INI_COM
- CALL PAGE0
- TMR0_PROG:
- CLRWDT
- BTFSS INTCON,TMR0IF
- GOTO INT_RECOVER
- ;MOVLW 0x9C ;定时器0中断,0.1mS,溢出中断,并赋初值(0xA5)
- ;MOVLW 0x38
- MOVLW 0x07
- MOVWF TMR0
- CALL PJ_TIMING ;检测喷嘴输入
- DECFSZ TMR0A,0x1 ;定时器A 25mS
- GOTO TMR0_OVER
- MOVLW 0xFA
- MOVWF TMR0A
- ;BSF TIMER_IF,SMP_EN
- DECFSZ TMR0B,0x1 ;定时器B 100mS
- GOTO TMR0_OVER
- MOVLW 0x10;0x4
- MOVWF TMR0B
- BSF TIMER_IF,SMP_EN
- BSF TIMER_IF,STATUS_SEN
- DECFSZ TMR0C,0x1 ;定时器C 1S
- GOTO TMR0_OVER
- MOVLW 0x10
- MOVWF TMR0C
- ;BSF TIMER_IF,SMP_EN
- ;BSF TIMER_IF,STATUS_SEN
- TMR0_OVER:
- BCF INTCON,TMR0IF
- INT_RECOVER:
- MOVF FSRSAVE,W ;恢复中断前状态
- MOVWF FSR
- BCF INTCON,RBIF
- MOVF PCLATHSAVE,W
- MOVWF PCLATH
- SWAPF STATUSSAVE,W
- MOVWF STATUS
- SWAPF WSAVE,0x1
- SWAPF WSAVE,W
- RETFIE
- ;===================================================================================================================================
- ;===============================================================主程序===============================================================
- ;===================================================================================================================================
- START:
- CLRF STATUS
- CLRF PCLATH
- CALL INI_DATA_REG
- CALL INI_COM
- CALL INI_CNTL_REG
- CALL INI_LED
- BSF INTCON,GIE
- ;主程序循环,完成传感器采集,状态发送,并检测控制输入,处理串口数据
- MAIN_LOOP:
- CLRWDT
- ;传感器采集
- CALL AD_SAMPLE
- CLRWDT
- ;发送状态
- CALL PAGE0
- CALL SEND_AD_VALUE
- ;检测输入控制
- CLRWDT
- CALL JUDGE_PZ12VBIT_JC12V
- ;处理串口数据
- CALL PAGE0
- CLRWDT
- CALL SAVE_JYMK
- CLRWDT
- CALL PAGE0
- CALL PROCESS_UART
- CALL PAGE0
- GOTO MAIN_LOOP
- ;===================================================================================================================================
- ;==================================================初始LED显示,加电 灭 亮===========================================================
- ;===================================================================================================================================
- INI_LED:
- BCF PORTC,LED
- CALL DELAY1
- CLRWDT
- BSF PORTC,LED
- CALL DELAY1
- CLRWDT
- BCF PORTC,LED
- RETURN
- DELAY1: MOVLW 0xFE
- CALL DELAY2
- MOVLW 0xFE
- CALL DELAY2
- MOVLW 0xFE
- CALL DELAY2
- RETURN
- DELAY2:
- MOVWF DELAY2_REGA
- CLRF DELAY2_REGB
- DELAY2_LOOP1:
- CLRWDT
- DECFSZ DELAY2_REGB,0x1
- GOTO DELAY2_LOOP1
- NOP
- DECFSZ DELAY2_REGA,0x1
- GOTO DELAY2_LOOP1
- RETURN
- ;===================================================================================================================================
- ;================================================初始化数据寄存器=====================================================================
- ;===================================================================================================================================
- INI_DATA_REG:
- CLRWDT
- CLRF TIMER_IF
- CLRF PZREG
- MOVLW 0x1
- MOVWF ZKYL
- MOVWF RQYL
- MOVWF QYCG
- MOVWF HYCG
- MOVWF PQYC
- MOVWF PYMK
- CLRF JCREG
- CLRF UART_DATA8
- CLRF UART_DATA9
- CLRF UART_DATAA
- CLRF UART_DATAB
- CLRF UART_DATAC
- CLRF UART_DATAD
- CLRF UART_DATAE
- CLRF UART_DATAF
- CLRF PQREG
- CLRF PORTB
- CLRF TIMER_IF
- CLRF PY_PERIOD
- CALL PAGE1
- MOVLW 0xB0
- MOVWF FSR
- MOVLW 0x40
- MOVWF JYMK_CNT
- CLEAR_FLAG_LOOP:
- CLRF INDF
- INCF FSR
- DECFSZ JYMK_CNT,0x01
- GOTO CLEAR_FLAG_LOOP
- CALL PAGE0
- RETURN
- ;====================================================================================================================================
- ;================================================初始化控制寄存器======================================================================
- ;====================================================================================================================================
- INI_CNTL_REG:
- ;页面1
- CALL PAGE1
- ;定时器0:内部指令周期时钟Fosc/4,下降沿触发,有预分频 1/4,以Fosc/8=8MHz/8=1MHz计数
- BCF OPTION_REG,T0CS ;inner instruction cycle
- BCF OPTION_REG,INTEDG ;falling edlge conversion
- BCF OPTION_REG,PSA ;rescaler is assigned to the Timer0 module
- BCF OPTION_REG,PS2 ;Fcommandcycle/2
- BCF OPTION_REG,PS1
- BCF OPTION_REG,PS0
- ;BSF OPTION_REG,PS0
- ;初始PORTA[3:0]为输入引脚,为四路A/D输入
- BSF TRISA,0x0 ;真空压力输入
- BSF TRISA,0x1 ;燃气压力输入
- BSF TRISA,0x2 ;前氧传感器输入
- BSF TRISA,0x3 ;后氧传感器出入
- BSF TRISA,KEYIN ;钥匙12V电压输入
- BSF TRISA,PZ12VIN ;喷嘴12V电压输入
- ;初始化PORTB
- BCF TRISB,PQ3
- BCF TRISB,PQ2
- BCF TRISB,PQ1
- BCF TRISB,PQ0
- BSF TRISB,PZ0IN
- BSF TRISB,PZ1IN
- BSF TRISB,PZ2IN
- BSF TRISB,PZ3IN
- ;初始化PORTC
- BSF TRISC,RXD
- ;BSF TRISC,TXD
- BCF TRISC,TXD
- BSF TRISC,PZ4IN
- BSF TRISC,PZ5IN
- ; BCF TRISC,PQ4
- BCF TRISC,LED
- BSF TRISC,QF12VIN
- BSF TRISC,JC12VIN
- BSF PIE1,RCIE
- CALL PAGE0
- CLRF INTCON ;禁止所有中断
- CLRF PIR1
- CLRF PIR1 ;清除外设中断标志两次
- MOVLW 0xA5 ;计数器初始值是0xA5
- MOVWF TMR0 ;90个指令周期发生一次定时器中断
- MOVLW 0xFA ;R[32]一级中断计数器,0xFA*90个指令周期中断一次
- MOVWF TMR0A ;R[32]=0xFA
- MOVLW 0x4 ;R[33]2级中断计数器,0x04*0xFA*90个指令周期中断一次
- MOVWF TMR0B ;R[33]=0x04
- MOVLW 0x8 ;R[34]3级中断计数器,0x08*0x04*0xFA*90个指令周期中断一次
- MOVWF TMR0C ;R[34]=0x08
- CLRF REC_FLAG
- BSF ADCON0,ADCS1
- BSF ADCON0,ADCS0 ;AD采样时钟是内部RC振荡器
- BSF INTCON,TMR0IE ;使能TIMER0中断
- BSF INTCON,PEIE
- BSF INTCON,GIE ;打开所有中断
- CALL PAGE0
- RETURN
- ;===================================================================================================================================
- ;================定时发送 真空压力,燃气压力,前氧传感,后氧传感,喷油脉宽,喷气延迟,喷油周期状态=====================================================
- ;===================================================================================================================================
- SEND_AD_VALUE:
- ;检测是否状态发送使能
- BTFSS TIMER_IF,STATUS_SEN
- RETURN
- CLRWDT
- BCF TIMER_IF,STATUS_SEN
- ;送当前状态
- MOVLW 0x0F
- ANDWF REC_FLAG,0
- IORLW 0xA0
- CALL UART_SEND
- BTFSS REC_FLAG,RD_EN
- RETURN
- ;发送真空压力
- MOVLW AD_ADDR ;调入状态首地址
- MOVWF FSR ;到文件选择寄存器
- MOVLW 0x80 ;加载状态地址头
- MOVWF CNT ; 到计数器
- STATUS_LOOP:
- CLRWDT
- MOVF INDF,W ;真空压力
- ANDLW 0x0F
- IORLW 0x60
- CALL UART_SEND
- SWAPF INDF,0x0
- ANDLW 0x0F
- IORLW 0x70
- CALL UART_SEND
- MOVF CNT,W
- CALL UART_SEND
- INCF CNT,0x1
- INCF FSR,0x1
- MOVF CNT,W
- XORLW 0x8E
- BTFSS STATUS,Z
- GOTO STATUS_LOOP
- RETURN
- ;===================================================================================================================================
- ;=============================================================串口处理程序============================================================
- ;======表格读命令================================================================
- ; 0 0 AD7 AD6 x x x x
- ; 0 1 AD5 AD4 AD3 AD2 AD1 AD0
- ;======表格写命令================================================================
- ; 0 0 AD7 AD6 DATA7 DATA6 DATA5 DATA4
- ; 1 0 AD5 AD4 AD3 AD2 AD1 AD0
- ; 1 1 x x DATA3 DATA2 DATA1 DATA0
- ;======表格回送字================================================================
- ; 0 0 AD7 AD6 DATA7 DATA6 DATA5 DATA4
- ; 0 1 AD5 AD4 AD3 AD2 AD1 AD0
- ; 1 1 0 0 DATA3 DATA2 DATA1 DATA0
- ;===================================================================================================================================
- PROCESS_UART:
- ;计算标志位
- MOVF UART_DATA9,w
- XORLW 0x91
- BTFSS STATUS,Z
- GOTO JUDGE_UART_WRITE_EEP
- BTFSS REC_FLAG,RD_EN
- RETURN
- UART_READ_EEP:
- MOVLW 0xF0 ;写命令无效
- MOVWF UART_DATA9
- MOVF UART_DATA0,W ;EEP地址低四位
- ANDLW 0x0F
- CALL PAGE2
- MOVWF EEADR
- CALL PAGE0
- SWAPF UART_DATA1,0x0 ;EEP地址高四位
- ANDLW 0xF0
- CALL PAGE2
- IORWF EEADR,0x1
- CALL PAGE0
- MOVF UART_DATA2,W ;EEP地址最高四位
- ANDLW 0x0F
- CALL PAGE2
- MOVWF EEADRH
- ; BCF INTCON,GIE ;关中断
- BSF STATUS, RP0 ;读取EEP数据
- BSF EECON1, EEPGD
- BSF EECON1, RD
- NOP
- NOP
- BCF STATUS, RP0 ;
- ; BSF INTCON,GIE ;开中断
- MOVF EEDATA,W
- ANDLW 0x0F
- IORLW 0x30
- CALL PAGE0
- CALL UART_SEND
- CALL PAGE2
- SWAPF EEDATA,0x0
- ANDLW 0x0F
- IORLW 0x40
- CALL PAGE0
- CALL UART_SEND
- MOVLW 0x91
- CALL UART_SEND
- RETURN
- ;=============================================================
- ;=============================写串口数据到EEP===================
- ;=============================================================
- JUDGE_UART_WRITE_EEP:
- MOVF UART_DATA9,w
- XORLW 0x92
- BTFSS STATUS,Z
- RETURN
- MOVLW 0x90
- MOVWF UART_DATA9
- UART_WR_EEP:
- CLRWDT
- BTFSS REC_FLAG,WR_EN ;判断写使能
- GOTO UART_WR_OVER
- CALL PAGE2
- MOVF UART_DATA0,W ;EEP地址低四位
- ANDLW 0x0F
- MOVWF EEP_ADDRL
- SWAPF UART_DATA1,0x0 ;EEP地址高四位
- ANDLW 0xF0
- IORWF EEP_ADDRL,0x1
- MOVF EEP_ADDRL,W
- ANDLW 0xFC
- MOVWF EEADR
- MOVF UART_DATA2,W ;EEP地址最高四位
- ANDLW 0x0F
- MOVWF EEP_ADDRH
- MOVWF EEADRH
- MOVF UART_DATA3,W
- ANDLW 0xF
- MOVWF EEP_DATAL
- SWAPF UART_DATA4,W
- ANDLW 0xF0
- IORWF EEP_DATAL,0x1
- MOVLW EEP_DATAH0 ;保存数据保存地址
- MOVWF FSR
- CLRF EEP_NUMBER
- ;读出8个数据到EEP_DATAH0---EEP_DATAL3
- READ_EEP_LOOP:
- ;读EEPROM
- BSF STATUS, RP0 ;读EEPROM
- BSF EECON1, EEPGD
- BSF EECON1, RD
- NOP
- NOP
- BCF STATUS, RP0
- ;保存数据
- MOVF EEDATH, W
- MOVWF INDF ;保存EEP高8位
- INCF FSR,0x1
- MOVF EEDATA, W
- MOVWF INDF ;保存EEP低8位
- INCF FSR,0x1
- ;地址递增
- INCF EEADR,0x1 ;EEP地址+1
- INCF EEP_NUMBER,0x1 ;EEP读计数器+1
- ;循环判断
- BTFSS EEP_NUMBER,0x2 ;是否读了四个数据
- GOTO READ_EEP_LOOP
- FRESH_EEP_DATA:
- ;更新EEP_DATAL
- RLF EEP_ADDRL,0x0
- ANDLW 0x6
- ADDLW EEP_DATAL0
- MOVWF FSR ; =>FSR
- MOVF EEP_DATAL,W ;EEP_DATA
- MOVWF INDF ; =>[EEP_ADDR+EEP_ADDR[1:0]]
- ;写循环准备
- MOVLW EEP_DATAH0
- MOVWF FSR ;间接寻址EEP_DATA
- MOVF EEP_ADDRL,W ;ADDRH,ADDRL为首地址
- ANDLW 0xFC
- MOVWF EEADR ;调入低8位地址的4偶地址
- MOVF EEP_ADDRH,W
- MOVWF EEADRH ;调入高8位地址
- CLRF EEP_NUMBER ;写入数据计数清零
- BCF INTCON,GIE
- WRITE_EEP_LOOP:
- CLRWDT
- ;调入数据
- ;MOVLW 0x34
- MOVF INDF,W
- MOVWF EEDATH ;存入数据高字节
- INCF FSR,0x1
- MOVF INDF,W
- MOVWF EEDATA ;存入数据低字节
- INCF FSR,0x1
- ;保存数据到EEPROM
- BSF STATUS,RP0
- BSF EECON1,EEPGD
- BSF EECON1,WREN
- MOVLW 0x55
- MOVWF EECON2
- MOVLW 0xaa
- MOVWF EECON2
- BSF EECON1,WR
- NOP
- NOP
- BCF EECON1,WREN
- BCF STATUS,RP0
- ;地址递增
- INCF EEP_NUMBER,0x1
- INCF EEADR,0x1
- BTFSS EEP_NUMBER,0x2
- GOTO WRITE_EEP_LOOP
- BSF INTCON,GIE
- UART_WR_EXIT:
- CALL PAGE0
- MOVLW 0x92
- CALL UART_SEND
- UART_WR_OVER:
- RETURN
- ;===========================
- UART_SEND:
- BCF STATUS,RP0
- BCF STATUS,RP1
- UART_WAIT:
- CLRWDT
- BTFSS PIR1,TXIF
- GOTO UART_WAIT
- MOVWF TXREG
- RETURN
- ;========================================================
- ;喷嘴处理
- ;========================================================
- PJ_TIMING:
- ;GOTO EXE_PZ1
- ;===================================处理喷嘴0===================================
- EXE_PZ0:
- CLRWDT
- INCFSZ PZ0_PRIODA,0x1
- GOTO JUDGE_PZ0
- INCFSZ PZ0_PRIODB,0x1
- GOTO JUDGE_PZ0
- MOVLW 0xFF
- MOVWF PZ0_PRIODB
- JUDGE_PZ0:
- BTFSC PORTB,PZ0IN ;判断喷嘴0输入是否有效
- GOTO PZ0_HIGH
- PZ0_LOW:
- BTFSS PORTC,JC12VIN
- GOTO PZ0_JC12V_OK
- GOTO PZ0_NO_JC12V
- PZ0_JC12V_OK:
- BSF PQREG,PQ0
- GOTO SET_PZ0
- PZ0_NO_JC12V:
- BCF PQREG,PQ0
- SET_PZ0:
- MOVF PQREG,W
- MOVWF PORTB
- MEASURE_PZ0_PYMK:
- BSF PZ0_FLAG,PQYC_LOAD_EN ;喷气延迟加载使能
- BCF PZ0_FLAG,PQYC_DELAY_EN ;清除喷气延迟使能
- INCFSZ PZ0_PYMK,0x1 ;喷油脉宽计数器累加
- GOTO EXE_PZ0_OVER
- MOVLW 0xFF ;喷油计数器累加为0,
- MOVWF PZ0_PYMK
- GOTO EXE_PZ0_OVER
- PZ0_HIGH:
- BTFSS PZ0_FLAG,PQYC_LOAD_EN ;判断喷气延迟加载使能
- GOTO EXE_PZ0_PQYC ;PQYC_LOAD_EN=0,已经读取喷气延迟,执行喷气延迟
- BCF PZ0_FLAG,PQYC_LOAD_EN
- JUDGE_PZ0_STUDY_EN:
- BTFSC REC_FLAG,STUDY_ENABLE ;判断是否学习使能
- GOTO CAL_PZ0_REC_PYMK
- MOVLW 0x08
- MOVWF REC_CNT
- CLRF REC_PYMKA
- CLRF REC_PYMKB
- CLRF REC_PYMKC
- BCF REC_FLAG,REC_BUSY
- GOTO GET_PZ0_PERIOD_ADDR
- CAL_PZ0_REC_PYMK:
- BTFSC REC_FLAG,REC_BUSY
- GOTO GET_PZ0_PERIOD_ADDR
- ACUMULATE_PZ0_REC_PYMK:
- CLRF STATUS
- MOVF PZ0_PYMK,W
- ADDWF REC_PYMKA,0x1
- BTFSC STATUS,C
- INCFSZ REC_PYMKB,0x1
- GOTO CAL_PZ0_CNT
- MOVLW 0xFF
- MOVWF REC_PYMKB
- CAL_PZ0_CNT:
- DECFSZ REC_CNT,0x01
- GOTO GET_PZ0_PERIOD_ADDR
- SET_PZ0_REC_PYMK_BUSY:
- BSF REC_FLAG,REC_BUSY ;设置忙标志,等待主程序写入EEPROM
- RRF REC_PYMKA,1
- RRF REC_PYMKA,1
- RRF REC_PYMKA,0
- ANDLW 0x1F
- MOVWF REC_PYMKC
- RLF REC_PYMKB,1
- SWAPF REC_PYMKB,0
- ANDLW 0xE0
- IORWF REC_PYMKC,1
- REC_PZ0_INI:
- CLRF REC_PYMKA
- CLRF REC_PYMKB
- REC_PZ0_PYMK_OVER:
- MOVLW 0x08
- MOVWF REC_CNT
- GET_PZ0_PERIOD_ADDR:
- MOVF PZ0_PRIODA,W
- MOVWF PY_PERIOD
- MOVF PZ0_PRIODB,W
- MOVWF PY_PERIOD1
- RRF PZ0_PRIODA,0x1
- RRF PZ0_PRIODA,0x1
- RRF PZ0_PRIODA,0x0 ;右移三位
- ANDLW 0x1F
- MOVWF PERIOD_ADDR ;得到周期低5位
- CLRF PZ0_PRIODA
- MOVF PZ0_PRIODB,W ;判断是否溢出
- SUBLW 0x07
- BTFSS STATUS,C
- GOTO PZ0_OVFL
- RLF PZ0_PRIODB,0x1
- SWAPF PZ0_PRIODB,0x0
- ANDLW 0xE0
- IORWF PERIOD_ADDR,0x1 ;得到周期高3位
- MOVF PERIOD_ADDR,W ;判断是否>0xFD
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ0_SPEED_LEVEL
- PZ0_OVFL:
- MOVLW 0xFD
- MOVWF PERIOD_ADDR
- GET_PZ0_SPEED_LEVEL:
- CLRF PZ0_PRIODB
- MOVLW 0xA
- MOVWF PCLATH
- CALL 0xA00 ;取出喷气延迟
- CLRF PCLATH
- MOVWF SPEED_LEVEL
- LOAD_PZ0_PQYC:
- BSF PZ0_FLAG,PQYC_DELAY_EN ;使能喷气延迟
- MOVF PZ0_PYMK,W ;取出喷油脉宽值
- MOVWF PYMK ;存储喷油脉宽值到PZTIME,由串口送出
- MOVWF OLD_PZ0_PYMK
- CLRF PZ0_PYMK
- JUDGE_PZ0_PYMK_OVFL:
- MOVF PYMK,W
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ0_PYMK_LEVEL
- MOVLW 0xFD
- MOVWF PYMK
- GET_PZ0_PYMK_LEVEL:
- MOVLW 0xB
- MOVWF PCLATH
- CALL 0xB00
- CLRF PCLATH
- MOVWF PYMK_LEVEL
- GET_PZ0_PQYC:
- CALL GET_PZ_PQYC
- CLRF PCLATH
- MOVWF PQYC ;保存喷气延迟到PQYC,有串口送出
- MOVWF PZ0_PQYC ;喷气延迟保存到延迟寄存器
- EXE_PZ0_PQYC:
- BTFSS PZ0_FLAG,PQYC_DELAY_EN ;判断喷气延迟使能
- GOTO EXE_PZ0_OVER
- DECFSZ PZ0_PQYC,0x1
- GOTO EXE_PZ0_OVER
- BCF PZ0_FLAG,PQYC_DELAY_EN
- BCF PQREG,PQ0
- MOVF PQREG,W
- MOVWF PORTB
- EXE_PZ0_OVER:
- ;RETURN
- ;===================================处理喷嘴1===================================
- EXE_PZ1:
- CLRWDT
- INCFSZ PZ1_PRIODA,0x1
- GOTO JUDGE_PZ1
- INCFSZ PZ1_PRIODB,0x1
- GOTO JUDGE_PZ1
- MOVLW 0xFF
- MOVWF PZ1_PRIODB
- JUDGE_PZ1:
- BTFSC PORTB,PZ1IN ;判断喷嘴0输入是否有效
- GOTO PZ1_HIGH
- PZ1_LOW:
- BTFSS PORTC,JC12VIN
- GOTO PZ1_JC12V_OK
- GOTO PZ1_NO_JC12V
- PZ1_JC12V_OK:
- BSF PQREG,PQ1
- GOTO SET_PZ1
- PZ1_NO_JC12V:
- BCF PQREG,PQ1
- SET_PZ1:
- MOVF PQREG,W
- MOVWF PORTB
- MEASURE_PZ1_PYMK:
- BSF PZ1_FLAG,PQYC_LOAD_EN ;喷气延迟加载使能
- BCF PZ1_FLAG,PQYC_DELAY_EN ;清除喷气延迟使能
- INCFSZ PZ1_PYMK,0x1 ;喷油脉宽计数器累加
- GOTO EXE_PZ1_OVER
- MOVLW 0xFF ;喷油计数器累加为0,
- MOVWF PZ1_PYMK
- GOTO EXE_PZ1_OVER
- PZ1_HIGH:
- BTFSS PZ1_FLAG,PQYC_LOAD_EN ;判断喷气延迟加载使能
- GOTO EXE_PZ1_PQYC ;PQYC_LOAD_EN=0,已经读取喷气延迟,执行喷气延迟
- GET_PZ1_PERIOD_ADDR:
- BCF PZ1_FLAG,PQYC_LOAD_EN
- MOVF PZ1_PRIODA,W
- MOVWF PY_PERIOD
- MOVF PZ1_PRIODB,W
- MOVWF PY_PERIOD1
- RRF PZ1_PRIODA,0x1
- RRF PZ1_PRIODA,0x1
- RRF PZ1_PRIODA,0x0 ;右移三位
- ANDLW 0x1F
- MOVWF PERIOD_ADDR ;得到周期低5位
- CLRF PZ1_PRIODA
- MOVF PZ1_PRIODB,W ;判断是否溢出
- SUBLW 0x07
- BTFSS STATUS,C
- GOTO PZ1_OVFL
- RLF PZ1_PRIODB,0x1
- SWAPF PZ1_PRIODB,0x0
- ANDLW 0xE0
- IORWF PERIOD_ADDR,0x1 ;得到周期高3位
- MOVF PERIOD_ADDR,W ;判断是否>0xFD
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ1_SPEED_LEVEL
- PZ1_OVFL:
- MOVLW 0xFD
- MOVWF PERIOD_ADDR
- GET_PZ1_SPEED_LEVEL:
- CLRF PZ1_PRIODB
- MOVLW 0xA
- MOVWF PCLATH
- CALL 0xA00 ;取出喷气延迟
- CLRF PCLATH
- MOVWF SPEED_LEVEL
- JUDGE_PZ1_PQYC_LOAD:
- BSF PZ1_FLAG,PQYC_DELAY_EN ;使能喷气延迟
- MOVF PZ1_PYMK,W ;取出喷油脉宽值
- MOVWF PYMK ;存储喷油脉宽值到PZTIME,由串口送出
- CLRF PZ1_PYMK
- JUDGE_PZ1_PYMK_OVFL:
- MOVF PYMK,W
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ1_PYMK_LEVEL
- MOVLW 0xFD
- MOVWF PYMK
- GET_PZ1_PYMK_LEVEL:
- MOVLW 0xB
- MOVWF PCLATH
- CALL 0xB00
- CLRF PCLATH
- MOVWF PYMK_LEVEL
- GET_PZ1_PQYC:
- CALL GET_PZ_PQYC
- CLRF PCLATH
- MOVWF PQYC ;保存喷气延迟到PQYC,有串口送出
- MOVWF PZ1_PQYC ;喷气延迟保存到延迟寄存器
- EXE_PZ1_PQYC:
- BTFSS PZ1_FLAG,PQYC_DELAY_EN ;判断喷气延迟使能
- GOTO EXE_PZ1_OVER
- DECFSZ PZ1_PQYC,0x1
- GOTO EXE_PZ1_OVER
- BCF PZ1_FLAG,PQYC_DELAY_EN
- BCF PQREG,PQ1
- MOVF PQREG,W
- MOVWF PORTB
- EXE_PZ1_OVER:
- ;RETURN
- ;===================================处理喷嘴2===================================
- EXE_PZ2:
- CLRWDT
- INCFSZ PZ2_PRIODA,0x1
- GOTO JUDGE_PZ2
- INCFSZ PZ2_PRIODB,0x1
- GOTO JUDGE_PZ2
- MOVLW 0xFF
- MOVWF PZ2_PRIODB
- JUDGE_PZ2:
- BTFSC PORTB,PZ2IN ;判断喷嘴0输入是否有效
- GOTO PZ2_HIGH
- PZ2_LOW:
- BTFSS PORTC,JC12VIN
- GOTO PZ2_JC12V_OK
- GOTO PZ2_NO_JC12V
- PZ2_JC12V_OK:
- BSF PQREG,PQ2
- GOTO SET_PZ2
- PZ2_NO_JC12V:
- BCF PQREG,PQ2
- SET_PZ2:
- MOVF PQREG,W
- MOVWF PORTB
- MEASURE_PZ2_PYMK:
- BSF PZ2_FLAG,PQYC_LOAD_EN ;喷气延迟加载使能
- BCF PZ2_FLAG,PQYC_DELAY_EN ;清除喷气延迟使能
- INCFSZ PZ2_PYMK,0x1 ;喷油脉宽计数器累加
- GOTO EXE_PZ2_OVER
- MOVLW 0xFF ;喷油计数器累加为0,
- MOVWF PZ2_PYMK
- GOTO EXE_PZ2_OVER
- PZ2_HIGH:
- BTFSS PZ2_FLAG,PQYC_LOAD_EN ;判断喷气延迟加载使能
- GOTO EXE_PZ2_PQYC ;PQYC_LOAD_EN=0,已经读取喷气延迟,执行喷气延迟
- GET_PZ2_PERIOD_ADDR:
- BCF PZ2_FLAG,PQYC_LOAD_EN
- MOVF PZ2_PRIODA,W
- MOVWF PY_PERIOD
- MOVF PZ2_PRIODB,W
- MOVWF PY_PERIOD1
- RRF PZ2_PRIODA,0x1
- RRF PZ2_PRIODA,0x1
- RRF PZ2_PRIODA,0x0 ;右移三位
- ANDLW 0x1F
- MOVWF PERIOD_ADDR ;得到周期低5位
- CLRF PZ2_PRIODA
- MOVF PZ2_PRIODB,W ;判断是否溢出
- SUBLW 0x07
- BTFSS STATUS,C
- GOTO PZ2_OVFL
- RLF PZ2_PRIODB,0x1
- SWAPF PZ2_PRIODB,0x0
- ANDLW 0xE0
- IORWF PERIOD_ADDR,0x1 ;得到周期高3位
- MOVF PERIOD_ADDR,W ;判断是否>0xFD
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ2_SPEED_LEVEL
- PZ2_OVFL:
- MOVLW 0xFD
- MOVWF PERIOD_ADDR
- GET_PZ2_SPEED_LEVEL:
- CLRF PZ2_PRIODB
- MOVLW 0xA
- MOVWF PCLATH
- CALL 0xA00 ;取出喷气延迟
- CLRF PCLATH
- MOVWF SPEED_LEVEL
- LOAD_PZ2_PQYC:
- BSF PZ2_FLAG,PQYC_DELAY_EN ;使能喷气延迟
- MOVF PZ2_PYMK,W ;取出喷油脉宽值
- MOVWF PYMK ;存储喷油脉宽值到PZTIME,由串口送出
- CLRF PZ2_PYMK
- JUDGE_PZ2_PYMK_OVFL:
- MOVF PYMK,W
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ2_PYMK_LEVEL
- MOVLW 0xFD
- MOVWF PYMK
- GET_PZ2_PYMK_LEVEL:
- MOVLW 0xB
- MOVWF PCLATH
- CALL 0xB00
- CLRF PCLATH
- MOVWF PYMK_LEVEL
- GET_PZ2_PQYC:
- CALL GET_PZ_PQYC
- CLRF PCLATH
- MOVWF PQYC ;保存喷气延迟到PQYC,有串口送出
- MOVWF PZ2_PQYC ;喷气延迟保存到延迟寄存器
- EXE_PZ2_PQYC:
- BTFSS PZ2_FLAG,PQYC_DELAY_EN ;判断喷气延迟使能
- GOTO EXE_PZ2_OVER
- DECFSZ PZ2_PQYC,0x1
- GOTO EXE_PZ2_OVER
- BCF PZ2_FLAG,PQYC_DELAY_EN
- BCF PQREG,PQ2
- MOVF PQREG,W
- MOVWF PORTB
- EXE_PZ2_OVER:
- ;RETURN
- ;===================================处理喷嘴3===================================
- EXE_PZ3:
- CLRWDT
- INCFSZ PZ3_PRIODA,0x1
- GOTO JUDGE_PZ3
- INCFSZ PZ3_PRIODB,0x1
- GOTO JUDGE_PZ3
- MOVLW 0xFF
- MOVWF PZ3_PRIODB
- JUDGE_PZ3:
- BTFSC PORTB,PZ3IN ;判断喷嘴0输入是否有效
- GOTO PZ3_HIGH
- PZ3_LOW:
- BTFSS PORTC,JC12VIN
- GOTO PZ3_JC12V_OK
- GOTO PZ3_NO_JC12V
- PZ3_JC12V_OK:
- BSF PQREG,PQ3
- GOTO SET_PZ3
- PZ3_NO_JC12V:
- BCF PQREG,PQ3
- SET_PZ3:
- MOVF PQREG,W
- MOVWF PORTB
- MEASURE_PZ3_PYMK:
- BSF PZ3_FLAG,PQYC_LOAD_EN ;喷气延迟加载使能
- BCF PZ3_FLAG,PQYC_DELAY_EN ;清除喷气延迟使能
- INCFSZ PZ3_PYMK,0x1 ;喷油脉宽计数器累加
- GOTO EXE_PZ3_OVER
- MOVLW 0xFF ;喷油计数器累加为0,
- MOVWF PZ3_PYMK
- GOTO EXE_PZ3_OVER
- PZ3_HIGH:
- BTFSS PZ3_FLAG,PQYC_LOAD_EN ;判断喷气延迟加载使能
- GOTO EXE_PZ3_PQYC ;PQYC_LOAD_EN=0,已经读取喷气延迟,执行喷气延迟
- GET_PZ3_PERIOD_ADDR:
- BCF PZ3_FLAG,PQYC_LOAD_EN
- MOVF PZ3_PRIODA,W
- MOVWF PY_PERIOD
- MOVF PZ3_PRIODB,W
- MOVWF PY_PERIOD1
- RRF PZ3_PRIODA,0x1
- RRF PZ3_PRIODA,0x1
- RRF PZ3_PRIODA,0x0 ;右移三位
- ANDLW 0x1F
- MOVWF PERIOD_ADDR ;得到周期低5位
- CLRF PZ3_PRIODA
- MOVF PZ3_PRIODB,W ;判断是否溢出
- SUBLW 0x07
- BTFSS STATUS,C
- GOTO PZ3_OVFL
- RLF PZ3_PRIODB,0x1
- SWAPF PZ3_PRIODB,0x0
- ANDLW 0xE0
- IORWF PERIOD_ADDR,0x1 ;得到周期高3位
- MOVF PERIOD_ADDR,W ;判断是否>0xFD
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ3_SPEED_LEVEL
- PZ3_OVFL:
- MOVLW 0xFD
- MOVWF PERIOD_ADDR
- GET_PZ3_SPEED_LEVEL:
- CLRF PZ3_PRIODB
- MOVLW 0xA
- MOVWF PCLATH
- CALL 0xA00 ;取出喷气延迟
- CLRF PCLATH
- MOVWF SPEED_LEVEL
- LOAD_PZ3_PQYC:
- BSF PZ3_FLAG,PQYC_DELAY_EN ;使能喷气延迟
- MOVF PZ3_PYMK,W ;取出喷油脉宽值
- MOVWF PYMK ;存储喷油脉宽值到PZTIME,由串口送出
- CLRF PZ3_PYMK
- JUDGE_PZ3_PYMK_OVFL:
- MOVF PYMK,W
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_PZ3_PYMK_LEVEL
- MOVLW 0xFD
- MOVWF PYMK
- GET_PZ3_PYMK_LEVEL:
- MOVLW 0xB
- MOVWF PCLATH
- CALL 0xB00
- CLRF PCLATH
- MOVWF PYMK_LEVEL
- GET_PZ3_PQYC:
- CALL GET_PZ_PQYC
- CLRF PCLATH
- MOVWF PQYC ;保存喷气延迟到PQYC,有串口送出
- MOVWF PZ3_PQYC ;喷气延迟保存到延迟寄存器
- EXE_PZ3_PQYC:
- BTFSS PZ3_FLAG,PQYC_DELAY_EN ;判断喷气延迟使能
- GOTO EXE_PZ3_OVER
- DECFSZ PZ3_PQYC,0x1
- GOTO EXE_PZ3_OVER
- BCF PZ3_FLAG,PQYC_DELAY_EN
- BCF PQREG,PQ3
- MOVF PQREG,W
- MOVWF PORTB
- EXE_PZ3_OVER:
- RETURN
- ;===================================================================================
- ;======================计算速度表地址=================================================
- ;===================================================================================
- ;600 2000 7d0 fa 00
- ;700 1714 6b2 d6 01
- ;800 1500 5dc bb 02
- ;900 1333 535 a6 03
- ;1000 1200 4b0 96 04
- ;1200 1000 3e3 7c 05
- ;1400 857 359 6b 06
- ;1600 750 2ee 5d
- ;1800 666 29a 53
- ;2000 600 258 4b
- ;2200 545 221 44
- ;2400 500 1f4 3e
- ;2600 461 1cd 39
- ;2800 428 1ac 35
- ;3000 400 190 32
- ;3500 342 156 2a
- ;4000 300 12c 25
- ;4500 266 10a 21
- ;5000 240 f0 1e
- ;5500 218 da 1b
- ;6000 200 c8 18
- ;6500 184 b8 17
- ;7000 171 ab 15
- ;=====================================================================================
- ;===========判断 检测12V 和 喷嘴12V,没有电压就不喷气,同时熄灭LED==========================
- ;=====================================================================================
- JUDGE_PZ12VBIT_JC12V:
- CALL PAGE0
- CLRWDT
- BTFSC PORTA,PZ12VIN ;喷嘴12V电源有效, 应该低电平有效
- GOTO NO_PZ12VBIT
- BSF PZREG,PZ12VBIT
- GOTO JUDGE_JC12V
- NO_PZ12VBIT:
- ;没有喷嘴电压,不输出喷气脉冲
- BCF PZREG,PZ12VBIT
- BCF PZREG,PZ0BIT
- BCF PZREG,PZ1BIT
- BCF PZREG,PZ2BIT
- BCF PZREG,PZ3BIT
- JUDGE_JC12V:
- BTFSS PORTC,JC12VIN
- GOTO JC12V_OK
- GOTO NO_JC12V
- JC12V_OK:
- BSF JCREG,JC12VBIT
- BSF PORTC,LED
- GOTO JUDGE_PZJC_OVER
- NO_JC12V:
- ;没有检测电压,不输出喷气脉冲,喷气延迟
- BCF PORTC,LED
- BCF PQREG,PQ0
- BCF PQREG,PQ1
- BCF PQREG,PQ2
- BCF PQREG,PQ3
- MOVLW 0x1
- MOVWF PQYC
- JUDGE_PZJC_OVER:
- MOVF PQREG,W
- MOVWF PORTB
- BCF JCREG,JC12VBIT
- RETURN
- ;=====================================================================================
- ;===============================A/D采样================================================
- AD_SAMPLE:
- ;判断是否采样
- BTFSS TIMER_IF,SMP_EN;
- RETURN
- BCF TIMER_IF,SMP_EN
- ;开始采样
- CLRF CNT ;采样计数器清零
- MOVLW AD_ADDR
- MOVWF FSR ;间接寻址采样存储地址
- MOVLW 0x0
- MOVWF ADCON0 ;采样地址清零
- SAMPLE_LOOP:
- CALL PAGE1
- MOVLW 0x0
- MOVWF ADCON1 ;所有PORTA输入为模拟输入
- CALL PAGE0
- BSF ADCON0,ADON
- SAMPLE:
- MOVLW 0x1
- CALL DELAY2
- BSF ADCON0,GO
- ;采样时间
- MOVLW 0x1
- CALL DELAY2
- SMP_OVER:
- BTFSC ADCON0,GO
- GOTO SMP_OVER
- MOVF ADRESH,W ;10位采样值高8位
- MOVWF INDF ;存储采样值
- INCF FSR,0x1 ;存储指针递增
- MOVLW 0x8
- ADDWF ADCON0,0x1 ;采样通道递增
- INCF CNT,0x1
- BTFSS CNT,0x2
- GOTO SAMPLE_LOOP
- CLOSE_AD:
- CALL PAGE1
- MOVLW 0x6
- MOVWF ADCON1 ;所有输入都是数字输入,保护AD
- CALL PAGE0
- ;RETURN
- JUDGE_ZKYL_OVFL:
- MOVF ZKYL,W
- SUBLW 0xFD
- BTFSC STATUS,C
- GOTO GET_ZKYL_LEVEL
- MOVLW 0xFD
- MOVWF ZKYL
- GET_ZKYL_LEVEL:
- BCF INTCON,GIE
- MOVLW 0xF
- MOVWF PCLATH
- ;MOVF ZKYL,W
- CALL 0xF00
- CLRF PCLATH
- MOVWF ZKYL_LEVEL
- BSF INTCON,GIE
- RETURN
- ;===============记忆喷油脉宽==========================================
- ;根据当前压力,速度读出表格中的记忆喷油脉宽值
- ;新喷油脉宽稳定256*16=4096转之后,置忙标志
- ;和表格中的喷油脉宽值比较,相差大于1.6ms,那么写入新值,否则不写
- SAVE_JYMK:
- BCF INTCON,GIE
- CALL GET_REC_JYMK_VALUE ;根据当前压力,速度读出表格中的记忆喷油脉宽值
- CLRF PCLATH
- MOVWF REC_PYMK
- BSF INTCON,GIE
- BTFSS REC_FLAG,REC_BUSY ;检测忙标志
- RETURN
- GOTO GET_JYMK_FLAG
- GET_JYMK_FLAG_OVER:
- BTFSC REC_FLAG,REC_EN
- GOTO JYMK_WR_EXIT
- MOVF REC_PYMK,W
- ANDLW 0xF0 ;得到当前喷右脉宽的高四位,保存到REC_PYMK_HIGH4BIT
- MOVWF REC_JYMK_HIGH4BIT
- MOVF REC_PYMKC,W ;得到前一个喷油脉宽的高四位,存到W中
- ;GOTO JYMK_WR_EXIT
- ANDLW 0xF0
- XORWF REC_JYMK_HIGH4BIT,0x0 ;比较当前喷油脉宽和前一个喷油脉宽高四位是否相同
- BTFSC STATUS,Z
- GOTO SAVE_JYMK_OVER
- BTFSS REC_FLAG,WR_EN ;判断写使能
- GOTO SAVE_JYMK_OVER
- ;得到记忆脉宽的EEP_ADDRH值
- GET_JYMK_EEP_ADDRH:
- BTFSS SPEED_LEVEL,0x4
- GOTO GET_JYMK_EEP_ADDRH8;
- MOVLW 0x9
- MOVWF EEP_ADDRH
- GOTO GET_JYMK_EEP_ADDRH_OVER
- GET_JYMK_EEP_ADDRH8:
- MOVLW 0x8
- MOVWF EEP_ADDRH
- GET_JYMK_EEP_ADDRH_OVER:
- ;得到记忆脉宽的EEP_ADDRL值
- SWAPF SPEED_LEVEL,0x0
- ANDLW 0xF0
- MOVWF EEP_ADDRL
- MOVF ZKYL_LEVEL,W
- ADDLW 0x2
- ADDWF EEP_ADDRL,0x1
- ;赋值给 EEP_DATAL
- MOVF REC_PYMKC,W
- MOVWF EEP_DATAL
- CALL PAGE2
- MOVF EEP_ADDRL,W ;得到4地址
- ANDLW 0xFC
- MOVWF EEADR
- MOVF EEP_ADDRH,W ;
- MOVWF EEADRH
- MOVLW EEP_DATAH0 ;保存数据保存地址
- MOVWF FSR
- CLRF EEP_NUMBER
- ;读出8个数据到EEP_DATAH0---EEP_DATAL3
- JYMK_READ_EEP_LOOP:
- ;读EEPROM
- BSF STATUS, RP0 ;读EEPROM
- BSF EECON1, EEPGD
- BSF EECON1, RD
- NOP
- NOP
- BCF STATUS, RP0
- ;保存数据
- MOVF EEDATH, W
- MOVWF INDF ;保存EEP高8位
- INCF FSR,0x1
- MOVF EEDATA, W
- MOVWF INDF ;保存EEP低8位
- INCF FSR,0x1
- ;地址递增
- INCF EEADR,0x1 ;EEP地址+1
- INCF EEP_NUMBER,0x1 ;EEP读计数器+1
- ;循环判断
- BTFSS EEP_NUMBER,0x2 ;是否读了四个数据
- GOTO JYMK_READ_EEP_LOOP
- JYMK_FRESH_EEP_DATA:
- ;更新EEP_DATAL
- RLF EEP_ADDRL,0x0
- ANDLW 0x6
- ADDLW EEP_DATAL0
- MOVWF FSR ; =>FSR
- MOVF EEP_DATAL,W ;EEP_DATA
- MOVWF INDF ; =>[EEP_ADDR+EEP_ADDR[1:0]]
- ;写循环准备
- MOVLW EEP_DATAH0
- MOVWF FSR ;间接寻址EEP_DATA
- MOVF EEP_ADDRL,W ;ADDRH,ADDRL为首地址
- ANDLW 0xFC
- MOVWF EEADR ;调入低8位地址的4偶地址
- MOVF EEP_ADDRH,W
- MOVWF EEADRH ;调入高8位地址
- CLRF EEP_NUMBER ;写入数据计数清零
- BCF INTCON,GIE
- JYMK_WRITE_EEP_LOOP:
- CLRWDT
- ;调入数据
- ;MOVLW 0x34
- MOVF INDF,W
- MOVWF EEDATH ;存入数据高字节
- INCF FSR,0x1
- MOVF INDF,W
- MOVWF EEDATA ;存入数据低字节
- INCF FSR,0x1
- ;保存数据到EEPROM
- BSF STATUS,RP0
- BSF EECON1,EEPGD
- BSF EECON1,WREN
- MOVLW 0x55
- MOVWF EECON2
- MOVLW 0xaa
- MOVWF EECON2
- BSF EECON1,WR
- NOP
- NOP
- BCF EECON1,WREN
- BCF STATUS,RP0
- ;地址递增
- INCF EEP_NUMBER,0x1
- INCF EEADR,0x1
- BTFSS EEP_NUMBER,0x2
- GOTO JYMK_WRITE_EEP_LOOP
- BSF INTCON,GIE
- CALL PAGE0
- ;======================回送更改值========================
- MOVF REC_PYMKC,W ;真空压力
- ANDLW 0x0F
- IORLW 0x30
- CALL UART_SEND
- SWAPF REC_PYMKC,0x0
- ANDLW 0x0F
- IORLW 0x40
- CALL UART_SEND
- MOVLW 0x93
- CALL UART_SEND
- JYMK_WR_EXIT:
- SAVE_JYMK_OVER:
- CALL PAGE0
- BCF REC_FLAG,REC_BUSY
- RETURN
- PAGE0: BCF STATUS,RP0
- BCF STATUS,RP1
- RETURN
- PAGE1: BSF STATUS,RP0
- BCF STATUS,RP1
- RETURN
- PAGE2: BCF STATUS,RP0
- BSF STATUS,RP1
- RETURN
- PAGE3: BSF STATUS,RP0
- BSF STATUS,RP1
- RETURN
- INI_COM:
- CALL PAGE1
- MOVLW 0x20
- MOVWF BRG
- BSF TXSTA,BRGH ;HIGH SPEED
- CALL PAGE0
- BSF RCSTA,SPEN ;SET SPEN
- CALL PAGE1
- BCF TXSTA,SYNC
- BCF TXSTA,TX9 ;8BIT TRANSMISSION
- BSF TXSTA,TXEN
- CALL PAGE0
- BSF RCSTA,CREN ;DISABEL CONTINUOUS RECIEVE
- RETURN
- ;SET TRANSMISSION CONTROL,8BIT,AYSYN,HIGH SPEED
- CALL PAGE1
- BSF PORTC,0x6 ;TX
- BSF PORTC,0x7 ;RX
- CALL PAGE0
- BCF RCSTA,RX9 ;8BIT RECIEVE
- BCF RCSTA,ADDEN ;DISABLE ADDRESS DETECT,ALL BYTES ARE RECIEVED
- BCF RCSTA,FERR
- BCF RCSTA,OERR
- BSF RCSTA,SPEN ;SET SPEN
- BSF RCSTA,CREN ;DISABEL CONTINUOUS RECIEVE
- ;BSF RCSTA,CREN ;DISABEL CONTINUOUS RECIEVE
- CALL PAGE1
- ;MOVLW 0xC
- ;MOVLW 0x33
- ;MOVLW 0x81
- MOVLW 0x20
- MOVWF BRG ;SET BAUD RATE 9600BPS
- BCF TXSTA,TX9 ;8BIT TRANSMISSION
- BCF TXSTA,SYNC ;CLEAR SYNC ;ASYNCHRONOUS MODE
- BSF TXSTA,BRGH ;HIGH SPEED
- BSF TXSTA,TX9D ;ALWAYS ENABLE TX9D AND 9BIT TRANSMISION FOR POSSIBLE TIMING CONFLICT
- BSF TXSTA,TXEN
- CALL PAGE0
- RETURN
- ;==================================得到记忆标志==========================================
- GET_JYMK_FLAG:
- CLRWDT
- CALL PAGE0
- MOVF ZKYL_LEVEL,W
- CALL PAGE1
- MOVWF ZKYL_LEVEL1 ;保存压力分级
- CALL PAGE0
- MOVF SPEED_LEVEL,W
- CALL PAGE1
- MOVWF SPEED_LEVEL1 ;保存速度分级
- RLF ZKYL_LEVEL1,1
- RLF ZKYL_LEVEL1,0
- ANDLW 0x3C
- MOVWF JYMK_FLAG_ADDRA ;得到标志表的压力寻址值
- MOVLW 0x07
- ANDWF SPEED_LEVEL1,0
- MOVWF JYMK_FLAG_ADDRB ;得到标志位的寻址
- RRF SPEED_LEVEL1,1
- RRF SPEED_LEVEL1,1
- RRF SPEED_LEVEL1,0
- ANDLW 0x03 ;得到转速字节寻址,选定一行四个字节中的一个标志字节
- IORWF JYMK_FLAG_ADDRA,0x1 ;得到标志字节寻址
- MOVLW 0xB0
- ADDWF JYMK_FLAG_ADDRA,0x0
- MOVWF FSR ;得到标志字节的绝对地址,给FSR
- MOVLW 0x00
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG0
- MOVLW 0x01
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG1
- MOVLW 0x02
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG2
- MOVLW 0x03
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG3
- MOVLW 0x04
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG4
- MOVLW 0x05
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG5
- MOVLW 0x06
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG6
- MOVLW 0x07
- XORWF JYMK_FLAG_ADDRB,0
- BTFSC STATUS,Z
- GOTO JUDGE_FLAG7
- JUDGE_FLAG0:
- BTFSC INDF,0x00
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x00
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG1:
- BTFSC INDF,0x01
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x01
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG2:
- BTFSC INDF,0x02
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x02
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG3:
- BTFSC INDF,0x03
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x03
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG4:
- BTFSC INDF,0x04
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x04
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG5:
- BTFSC INDF,0x05
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x05
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG6:
- BTFSC INDF,0x06
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x06
- GOTO JYMK_FLAG_SET
- JUDGE_FLAG7:
- BTFSC INDF,0x07
- GOTO JYMK_FLAG_EXIT
- BSF INDF,0x07
- GOTO JYMK_FLAG_SET
- JYMK_FLAG_EXIT:
- CALL PAGE0
- BCF REC_FLAG,REC_EN
- GOTO GET_JYMK_FLAG_OVER
- JYMK_FLAG_SET:
- CALL PAGE0
- BSF REC_FLAG,REC_EN
- GOTO GET_JYMK_FLAG_OVER
- ;=========================================
- GET_REC_JYMK_VALUE:
- MOVLW 0x6
- MOVWF PCLATH
- MOVF SPEED_LEVEL,W
- MOVWF TMP_LEVEL
- RLF TMP_LEVEL,0x1
- RLF TMP_LEVEL,0x0
- ANDLW 0xFC
- ;CLRF STATUS
- ;RRF SPEED_LEVEL,0x1
- GOTO GET_REC_PYMK_VLAUE0
- ORG H'680'
- GET_REC_PYMK_VLAUE0:
- ADDWF PCL,0x1
- GET_REC_PYMK_SPEED0_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x800
- RETURN
- GET_REC_PYMK_SPEED1_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x810
- RETURN
- GET_REC_PYMK_SPEED2_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x820
- RETURN
- GET_REC_PYMK_SPEED3_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x830
- RETURN
- GET_REC_PYMK_SPEED4_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x840
- RETURN
- GET_REC_PYMK_SPEED5_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x850
- RETURN
- GET_REC_PYMK_SPEED6_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x860
- RETURN
- GET_REC_PYMK_SPEED7_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x870
- RETURN
- GET_REC_PYMK_SPEED8_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x880
- RETURN
- GET_REC_PYMK_SPEED9_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x890
- RETURN
- GET_REC_PYMK_SPEEDA_JYMK: MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8A0
- RETURN
- GET_REC_PYMK_SPEEDB_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8B0
- RETURN
- GET_REC_PYMK_SPEEDC_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8C0
- RETURN
- GET_REC_PYMK_SPEEDD_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8D0
- RETURN
- GET_REC_PYMK_SPEEDE_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8E0
- RETURN
- GET_REC_PYMK_SPEEDF_JYMK:
- MOVLW 0x8
- MOVWF PCLATH
- CALL 0x8F0
- RETURN
- GET_REC_PYMK_SPEED10_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x900
- RETURN
- GET_REC_PYMK_SPEED11_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x910
- RETURN
- GET_REC_PYMK_SPEED12_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x920
- RETURN
- GET_REC_PYMK_SPEED13_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x930
- RETURN
- GET_REC_PYMK_SPEED14_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x940
- RETURN
- GET_REC_PYMK_SPEED15_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x950
- RETURN
- GET_REC_PYMK_SPEED16_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x960
- RETURN
- GET_REC_PYMK_SPEED17_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x970
- RETURN
- GET_REC_PYMK_SPEED18_JYMK:
- MOVLW 0x9
- MOVWF PCLATH
- CALL 0x970
- RETURN
- GET_REC_PYMK_VAL_OVER: CLRF PCLATH
- RETURN
- GET_PZ_PQYC:
- MOVLW 0x7
- MOVWF PCLATH
- MOVF SPEED_LEVEL,W
- MOVWF TMP_LEVEL
- RLF TMP_LEVEL,0x1
- RLF TMP_LEVEL,0x0
- ANDLW 0xFC
- GOTO GET_PQYC0
- ORG H'780'
- GET_PQYC0:
- ADDWF PCL,0x1
- GET_PZ0_SPEED0_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xC00
- RETURN
- GET_PZ0_SPEED1_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xC20
- RETURN
- GET_PZ0_SPEED2_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xC40
- RETURN
- GET_PZ0_SPEED3_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xC60
- RETURN
- GET_PZ0_SPEED4_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xC80
- RETURN
- GET_PZ0_SPEED5_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xCA0
- RETURN
- GET_PZ0_SPEED6_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xCC0
- RETURN
- GET_PZ0_SPEED7_PQYC: MOVLW 0xC
- MOVWF PCLATH
- CALL 0xCE0
- RETURN
- GET_PZ0_SPEED8_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xD00
- RETURN
- GET_PZ0_SPEED9_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xD20
- RETURN
- GET_PZ0_SPEEDA_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xD40
- RETURN
- GET_PZ0_SPEEDB_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xD60
- RETURN
- GET_PZ0_SPEEDC_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xD80
- RETURN
- GET_PZ0_SPEEDD_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xDA0
- RETURN
- GET_PZ0_SPEEDE_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xDC0
- RETURN
- GET_PZ0_SPEEDF_PQYC: MOVLW 0xD
- MOVWF PCLATH
- CALL 0xDE0
- RETURN
- GET_PZ0_SPEED10_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xE00
- RETURN
- GET_PZ0_SPEED11_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xE20
- RETURN
- GET_PZ0_SPEED12_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xE40
- RETURN
- GET_PZ0_SPEED13_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xE60
- RETURN
- GET_PZ0_SPEED14_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xE80
- RETURN
- GET_PZ0_SPEED15_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xEA0
- RETURN
- GET_PZ0_SPEED16_PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xEC0
- RETURN
- GET_PZ0_SPEED17PQYC: MOVLW 0xE
- MOVWF PCLATH
- CALL 0xEE0
- RETURN
- GET_PZ0_PQYC_OVER: CLRF PCLATH
- MOVWF PQYC
- MOVWF PZ0_PQYC
- RETURN
- ;=====================================================================================================
- ;============================================压力-转速-喷油脉宽记忆表================================================
- ;====================================================================================================
- ZKYL_SPEED00:
- ORG H'0800'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x00 ;00
- RETLW 0x00 ;01
- RETLW 0x00 ;02
- RETLW 0x00 ;03
- RETLW 0x00 ;04
- RETLW 0x00 ;05
- RETLW 0x00 ;06
- RETLW 0x00 ;07
- RETLW 0x00 ;08
- RETLW 0x00 ;09
- RETLW 0x00 ;0a
- RETLW 0x00 ;0b
- RETLW 0x00 ;0c
- RETLW 0x00 ;0d
- ZKYL_SPEED01:
- ORG H'0810'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x01 ;00
- RETLW 0x01 ;01
- RETLW 0x01 ;02
- RETLW 0x01 ;03
- RETLW 0x01 ;04
- RETLW 0x01 ;05
- RETLW 0x01 ;06
- RETLW 0x01 ;07
- RETLW 0x01 ;08
- RETLW 0x01 ;09
- RETLW 0x01 ;0a
- RETLW 0x01 ;0b
- RETLW 0x01 ;0c
- RETLW 0x01 ;0d
- ZKYL_SPEED02:
- ORG H'0820'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x02 ;00
- RETLW 0x02 ;01
- RETLW 0x02 ;02
- RETLW 0x02 ;03
- RETLW 0x02 ;04
- RETLW 0x02 ;05
- RETLW 0x02 ;06
- RETLW 0x02 ;07
- RETLW 0x02 ;08
- RETLW 0x02 ;09
- RETLW 0x02 ;0a
- RETLW 0x02 ;0b
- RETLW 0x02 ;0c
- RETLW 0x02 ;0d
- ZKYL_SPEED03:
- ORG H'0830'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x03 ;00
- RETLW 0x03 ;01
- RETLW 0x03 ;02
- RETLW 0x03 ;03
- RETLW 0x03 ;04
- RETLW 0x03 ;05
- RETLW 0x03 ;06
- RETLW 0x03 ;07
- RETLW 0x03 ;08
- RETLW 0x03 ;09
- RETLW 0x03 ;0a
- RETLW 0x03 ;0b
- RETLW 0x03 ;0c
- RETLW 0x03 ;0d
- ZKYL_SPEED04:
- ORG H'0840'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x04 ;00
- RETLW 0x04 ;01
- RETLW 0x04 ;02
- RETLW 0x04 ;03
- RETLW 0x04 ;04
- RETLW 0x04 ;05
- RETLW 0x04 ;06
- RETLW 0x04 ;07
- RETLW 0x04 ;08
- RETLW 0x04 ;09
- RETLW 0x04 ;0a
- RETLW 0x04 ;0b
- RETLW 0x04 ;0c
- RETLW 0x04 ;0d
- ZKYL_SPEED05:
- ORG H'0850'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x05 ;00
- RETLW 0x05 ;01
- RETLW 0x05 ;02
- RETLW 0x05 ;03
- RETLW 0x05 ;04
- RETLW 0x05 ;05
- RETLW 0x05 ;06
- RETLW 0x05 ;07
- RETLW 0x05 ;08
- RETLW 0x05 ;09
- RETLW 0x05 ;0a
- RETLW 0x05 ;0b
- RETLW 0x05 ;0c
- RETLW 0x05 ;0d
- ZKYL_SPEED06:
- ORG H'0860'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x06 ;00
- RETLW 0x06 ;01
- RETLW 0x06 ;02
- RETLW 0x06 ;03
- RETLW 0x06 ;04
- RETLW 0x06 ;05
- RETLW 0x06 ;06
- RETLW 0x06 ;07
- RETLW 0x06 ;08
- RETLW 0x06 ;09
- RETLW 0x06 ;0a
- RETLW 0x06 ;0b
- RETLW 0x06 ;0c
- RETLW 0x06 ;0d
- ZKYL_SPEED07:
- ORG H'0870'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x07 ;00
- RETLW 0x07 ;01
- RETLW 0x07 ;02
- RETLW 0x07 ;03
- RETLW 0x07 ;04
- RETLW 0x07 ;05
- RETLW 0x07 ;06
- RETLW 0x07 ;07
- RETLW 0x07 ;08
- RETLW 0x07 ;09
- RETLW 0x07 ;0a
- RETLW 0x07 ;0b
- RETLW 0x07 ;0c
- RETLW 0x07 ;0d
- ZKYL_SPEED08:
- ORG H'0880'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x08 ;00
- RETLW 0x08 ;01
- RETLW 0x08 ;02
- RETLW 0x08 ;03
- RETLW 0x08 ;04
- RETLW 0x08 ;05
- RETLW 0x08 ;06
- RETLW 0x08 ;07
- RETLW 0x08 ;08
- RETLW 0x08 ;09
- RETLW 0x08 ;0a
- RETLW 0x08 ;0b
- RETLW 0x08 ;0c
- RETLW 0x08 ;0d
- ZKYL_SPEED09:
- ORG H'0890'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x09 ;00
- RETLW 0x09 ;01
- RETLW 0x09 ;02
- RETLW 0x09 ;03
- RETLW 0x09 ;04
- RETLW 0x09 ;05
- RETLW 0x09 ;06
- RETLW 0x09 ;07
- RETLW 0x09 ;08
- RETLW 0x09 ;09
- RETLW 0x09 ;0a
- RETLW 0x09 ;0b
- RETLW 0x09 ;0c
- RETLW 0x09 ;0d
- ZKYL_SPEED0A:
- ORG H'08A0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0A ;00
- RETLW 0x0A ;01
- RETLW 0x0A ;02
- RETLW 0x0A ;03
- RETLW 0x0A ;04
- RETLW 0x0A ;05
- RETLW 0x0A ;06
- RETLW 0x0A ;07
- RETLW 0x0A ;08
- RETLW 0x0A ;09
- RETLW 0x0A ;0a
- RETLW 0x0A ;0b
- RETLW 0x0A ;0c
- RETLW 0x0A ;0d
- ZKYL_SPEED0B:
- ORG H'08B0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0B ;00
- RETLW 0x0B ;01
- RETLW 0x0B ;02
- RETLW 0x0B ;03
- RETLW 0x0B ;04
- RETLW 0x0B ;05
- RETLW 0x0B ;06
- RETLW 0x0B ;07
- RETLW 0x0B ;08
- RETLW 0x0B ;09
- RETLW 0x0B ;0a
- RETLW 0x0B ;0b
- RETLW 0x0B ;0c
- RETLW 0x0B ;0d
- ZKYL_SPEED0C:
- ORG H'08C0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0C ;00
- RETLW 0x0C ;01
- RETLW 0x0C ;02
- RETLW 0x0C ;03
- RETLW 0x0C ;04
- RETLW 0x0C ;05
- RETLW 0x0C ;06
- RETLW 0x0C ;07
- RETLW 0x0C ;08
- RETLW 0x0C ;09
- RETLW 0x0C ;0a
- RETLW 0x0C ;0b
- RETLW 0x0C ;0c
- RETLW 0x0C ;0d
- ZKYL_SPEED0D:
- ORG H'08D0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0D ;00
- RETLW 0x0D ;01
- RETLW 0x0D ;02
- RETLW 0x0D ;03
- RETLW 0x0D ;04
- RETLW 0x0D ;05
- RETLW 0x0D ;06
- RETLW 0x0D ;07
- RETLW 0x0D ;08
- RETLW 0x0D ;09
- RETLW 0x0D ;0a
- RETLW 0x0D ;0b
- RETLW 0x0D ;0c
- RETLW 0x0D ;0d
- ZKYL_SPEEDOE:
- ORG H'08E0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x6E ;00
- RETLW 0x6E ;01
- RETLW 0x6E ;02
- RETLW 0x6E ;03
- RETLW 0x6E ;04
- RETLW 0x6E ;05
- RETLW 0x6E ;06
- RETLW 0x6E ;07
- RETLW 0x6E ;08
- RETLW 0x6E ;09
- RETLW 0x6E ;0a
- RETLW 0x6E ;0b
- RETLW 0x6E ;0c
- RETLW 0x6E ;0d
- ZKYL_SPEED0F:
- ORG H'08F0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0F ;00
- RETLW 0x0F ;01
- RETLW 0x0F ;02
- RETLW 0x0F ;03
- RETLW 0x0F ;04
- RETLW 0x0F ;05
- RETLW 0x0F ;06
- RETLW 0x0F ;07
- RETLW 0x0F ;08
- RETLW 0x0F ;09
- RETLW 0x0F ;0a
- RETLW 0x0F ;0b
- RETLW 0x0F ;0c
- RETLW 0x0F ;0d
- ZKYL_SPEED10:
- ORG H'0900'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x00 ;00
- RETLW 0x00 ;01
- RETLW 0x00 ;02
- RETLW 0x00 ;03
- RETLW 0x00 ;04
- RETLW 0x00 ;05
- RETLW 0x00 ;06
- RETLW 0x00 ;07
- RETLW 0x00 ;08
- RETLW 0x00 ;09
- RETLW 0x00 ;0a
- RETLW 0x00 ;0b
- RETLW 0x00 ;0c
- RETLW 0x00 ;0d
- ZKYL_SPEED11:
- ORG H'0910'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x01 ;00
- RETLW 0x01 ;01
- RETLW 0x01 ;02
- RETLW 0x01 ;03
- RETLW 0x01 ;04
- RETLW 0x01 ;05
- RETLW 0x01 ;06
- RETLW 0x01 ;07
- RETLW 0x01 ;08
- RETLW 0x01 ;09
- RETLW 0x01 ;0a
- RETLW 0x01 ;0b
- RETLW 0x01 ;0c
- RETLW 0x01 ;0d
- ZKYL_SPEED12:
- ORG H'0920'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x02 ;00
- RETLW 0x02 ;01
- RETLW 0x02 ;02
- RETLW 0x02 ;03
- RETLW 0x02 ;04
- RETLW 0x02 ;05
- RETLW 0x02 ;06
- RETLW 0x02 ;07
- RETLW 0x02 ;08
- RETLW 0x02 ;09
- RETLW 0x02 ;0a
- RETLW 0x02 ;0b
- RETLW 0x02 ;0c
- RETLW 0x02 ;0d
- ZKYL_SPEED13:
- ORG H'0930'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x03 ;00
- RETLW 0x03 ;01
- RETLW 0x03 ;02
- RETLW 0x03 ;03
- RETLW 0x03 ;04
- RETLW 0x03 ;05
- RETLW 0x03 ;06
- RETLW 0x03 ;07
- RETLW 0x03 ;08
- RETLW 0x03 ;09
- RETLW 0x03 ;0a
- RETLW 0x03 ;0b
- RETLW 0x03 ;0c
- RETLW 0x03 ;0d
- ZKYL_SPEED14:
- ORG H'0940'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x04 ;00
- RETLW 0x04 ;01
- RETLW 0x04 ;02
- RETLW 0x04 ;03
- RETLW 0x04 ;04
- RETLW 0x04 ;05
- RETLW 0x04 ;06
- RETLW 0x04 ;07
- RETLW 0x04 ;08
- RETLW 0x04 ;09
- RETLW 0x04 ;0a
- RETLW 0x04 ;0b
- RETLW 0x04 ;0c
- RETLW 0x04 ;0d
- ZKYL_SPEED15:
- ORG H'0950'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x05 ;00
- RETLW 0x05 ;01
- RETLW 0x05 ;02
- RETLW 0x05 ;03
- RETLW 0x05 ;04
- RETLW 0x05 ;05
- RETLW 0x05 ;06
- RETLW 0x05 ;07
- RETLW 0x05 ;08
- RETLW 0x05 ;09
- RETLW 0x05 ;0a
- RETLW 0x05 ;0b
- RETLW 0x05 ;0c
- RETLW 0x05 ;0d
- ZKYL_SPEED16:
- ORG H'0960'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x06 ;00
- RETLW 0x06 ;01
- RETLW 0x06 ;02
- RETLW 0x06 ;03
- RETLW 0x06 ;04
- RETLW 0x06 ;05
- RETLW 0x06 ;06
- RETLW 0x06 ;07
- RETLW 0x06 ;08
- RETLW 0x06 ;09
- RETLW 0x06 ;0a
- RETLW 0x06 ;0b
- RETLW 0x06 ;0c
- RETLW 0x06 ;0d
- ZKYL_SPEED17:
- ORG H'0970'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x07 ;00
- RETLW 0x07 ;01
- RETLW 0x07 ;02
- RETLW 0x07 ;03
- RETLW 0x07 ;04
- RETLW 0x07 ;05
- RETLW 0x07 ;06
- RETLW 0x07 ;07
- RETLW 0x07 ;08
- RETLW 0x07 ;09
- RETLW 0x07 ;0a
- RETLW 0x07 ;0b
- RETLW 0x07 ;0c
- RETLW 0x07 ;0d
- ZKYL_SPEED18:
- ORG H'0980'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x08 ;00
- RETLW 0x08 ;01
- RETLW 0x08 ;02
- RETLW 0x08 ;03
- RETLW 0x08 ;04
- RETLW 0x08 ;05
- RETLW 0x08 ;06
- RETLW 0x08 ;07
- RETLW 0x08 ;08
- RETLW 0x08 ;09
- RETLW 0x08 ;0a
- RETLW 0x08 ;0b
- RETLW 0x08 ;0c
- RETLW 0x08 ;0d
- ZKYL_SPEED19:
- ORG H'0990'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x09 ;00
- RETLW 0x09 ;01
- RETLW 0x09 ;02
- RETLW 0x09 ;03
- RETLW 0x09 ;04
- RETLW 0x09 ;05
- RETLW 0x09 ;06
- RETLW 0x09 ;07
- RETLW 0x09 ;08
- RETLW 0x09 ;09
- RETLW 0x09 ;0a
- RETLW 0x09 ;0b
- RETLW 0x09 ;0c
- RETLW 0x09 ;0d
- ZKYL_SPEED1A:
- ORG H'09A0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0A ;00
- RETLW 0x0A ;01
- RETLW 0x0A ;02
- RETLW 0x0A ;03
- RETLW 0x0A ;04
- RETLW 0x0A ;05
- RETLW 0x0A ;06
- RETLW 0x0A ;07
- RETLW 0x0A ;08
- RETLW 0x0A ;09
- RETLW 0x0A ;0a
- RETLW 0x0A ;0b
- RETLW 0x0A ;0c
- RETLW 0x0A ;0d
- ZKYL_SPEED1B:
- ORG H'09B0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0B ;00
- RETLW 0x0B ;01
- RETLW 0x0B ;02
- RETLW 0x0B ;03
- RETLW 0x0B ;04
- RETLW 0x0B ;05
- RETLW 0x0B ;06
- RETLW 0x0B ;07
- RETLW 0x0B ;08
- RETLW 0x0B ;09
- RETLW 0x0B ;0a
- RETLW 0x0B ;0b
- RETLW 0x0B ;0c
- RETLW 0x0B ;0d
- ZKYL_SPEED1C:
- ORG H'09C0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0C ;00
- RETLW 0x0C ;01
- RETLW 0x0C ;02
- RETLW 0x0C ;03
- RETLW 0x0C ;04
- RETLW 0x0C ;05
- RETLW 0x0C ;06
- RETLW 0x0C ;07
- RETLW 0x0C ;08
- RETLW 0x0C ;09
- RETLW 0x0C ;0a
- RETLW 0x0C ;0b
- RETLW 0x0C ;0c
- RETLW 0x0C ;0d
- ZKYL_SPEED1D:
- ORG H'09D0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0D ;00
- RETLW 0x0D ;01
- RETLW 0x0D ;02
- RETLW 0x0D ;03
- RETLW 0x0D ;04
- RETLW 0x0D ;05
- RETLW 0x0D ;06
- RETLW 0x0D ;07
- RETLW 0x0D ;08
- RETLW 0x0D ;09
- RETLW 0x0D ;0a
- RETLW 0x0D ;0b
- RETLW 0x0D ;0c
- RETLW 0x0D ;0d
- ZKYL_SPEED1E:
- ORG H'09E0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0E ;00
- RETLW 0x0E ;01
- RETLW 0x0E ;02
- RETLW 0x0E ;03
- RETLW 0x0E ;04
- RETLW 0x0E ;05
- RETLW 0x0E ;06
- RETLW 0x0E ;07
- RETLW 0x0E ;08
- RETLW 0x0E ;09
- RETLW 0x0E ;0a
- RETLW 0x0E ;0b
- RETLW 0x0E ;0c
- RETLW 0x0E ;0d
- ZKYL_SPEED1F:
- ORG H'09F0'
- MOVF ZKYL_LEVEL,W
- ADDWF PCL,0x01
- RETLW 0x0F ;00
- RETLW 0x0F ;01
- RETLW 0x0F ;02
- RETLW 0x0F ;03
- RETLW 0x0F ;04
- RETLW 0x0F ;05
- RETLW 0x0F ;06
- RETLW 0x0F ;07
- RETLW 0x0F ;08
- RETLW 0x0F ;09
- RETLW 0x0F ;0a
- RETLW 0x0F ;0b
- RETLW 0x0F ;0c
- RETLW 0x0F ;0d
- ;=========================SPEED ADDRESS FIND TABLE===========================
- ;========速度查找表,用来查找速度分隔,确定在转速==================================
- ;============================================================================
- ORG H'A00'
- MOVF PERIOD_ADDR,W
- ADDWF PCL, 0x01
- RETLW 0x17 ;00
- RETLW 0x17 ;01
- RETLW 0x17 ;02
- RETLW 0x17 ;03
- RETLW 0x17 ;04
- RETLW 0x17 ;05
- RETLW 0x17 ;06
- RETLW 0x17 ;07
- RETLW 0x17 ;08
- RETLW 0x17 ;09
- RETLW 0x17 ;0a
- RETLW 0x17 ;0b
- RETLW 0x17 ;0c
- RETLW 0x17 ;0d
- RETLW 0x17 ;0e
- RETLW 0x17 ;0f
- RETLW 0x17 ;10
- RETLW 0x17 ;11
- RETLW 0x17 ;12
- RETLW 0x17 ;13
- RETLW 0x17 ;14
- RETLW 0x17 ;15 ;7000 171 ab 15 ;16
- RETLW 0x17 ;16
- RETLW 0x16 ;17 ;6500 184 b8 17 ;15
- RETLW 0x15 ;18 ;6000 200 c8 18 ;14
- RETLW 0x15 ;19
- RETLW 0x14 ;1a
- RETLW 0x14 ;1b ;5500 218 da 1b ;13
- RETLW 0x14 ;1c
- RETLW 0x13 ;1d
- RETLW 0x13 ;1e ;5000 240 f0 1e ;12
- RETLW 0x13 ;1f
- RETLW 0x12 ;20
- RETLW 0x12 ;21 ;4500 266 10a 21 ;11
- RETLW 0x12 ;22
- RETLW 0x12 ;23
- RETLW 0x11 ;24
- RETLW 0x11 ;25 ;4000 300 12c 25 ;10
- RETLW 0x11 ;26
- RETLW 0x11 ;27
- RETLW 0x10 ;28
- RETLW 0x10 ;29
- RETLW 0x10 ;2a ;3500 342 156 2a ;0f
- RETLW 0x10 ;2b
- RETLW 0x10 ;2c
- RETLW 0x10 ;2d
- RETLW 0x0f ;2e
- RETLW 0x0f ;2f
- RETLW 0x0f ;30
- RETLW 0x0f ;31
- RETLW 0x0f ;32 ;3000 400 190 32 ;0e
- RETLW 0x0f ;33
- RETLW 0x0e ;34
- RETLW 0x0e ;35 ;2800 428 1ac 35 ;0d
- RETLW 0x0e ;36
- RETLW 0x0e ;37
- RETLW 0x0d ;38
- RETLW 0x0d ;39 ;2600 461 1cd 39 ;0c
- RETLW 0x0d ;3a
- RETLW 0x0d ;3b
- RETLW 0x0c ;3c
- RETLW 0x0c ;3d
- RETLW 0xc ;3e ;2400 500 1f4 3e ;0b
- RETLW 0xc ;3f
- RETLW 0xc ;40
- RETLW 0xb ;41
- RETLW 0xb ;42
- RETLW 0xb ;43
- RETLW 0x0b ;44 ;2200 545 221 44 ;0a
- RETLW 0x0b ;45
- RETLW 0x0b ;46
- RETLW 0x0b ;47
- RETLW 0x0a ;48
- RETLW 0x0a ;49
- RETLW 0x0a ;4a
- RETLW 0x0a ;4b ;2000 600 258 4b ;09
- RETLW 0x0a ;4c
- RETLW 0x0a ;4d
- RETLW 0x0a ;4e
- RETLW 0x0a ;4f
- RETLW 0x09 ;50
- RETLW 0x09 ;51
- RETLW 0x09 ;52
- RETLW 0x09 ;53 ;1800 666 29a 53 ;08
- RETLW 0x09 ;54
- RETLW 0x09 ;55
- RETLW 0x09 ;56
- RETLW 0x09 ;57
- RETLW 0x09 ;58
- RETLW 0x08 ;59
- RETLW 0x08 ;5a
- RETLW 0x08 ;5b
- RETLW 0x08 ;5c
- RETLW 0x8 ;5d ;1600 750 2ee 5d ;07
- RETLW 0x8 ;5e
- RETLW 0x8 ;5f
- RETLW 0x08 ;60
- RETLW 0x08 ;61
- RETLW 0x08 ;62
- RETLW 0x08 ;63
- RETLW 0x08 ;64
- RETLW 0x07 ;65
- RETLW 0x07 ;66
- RETLW 0x07 ;67
- RETLW 0x07 ;68
- RETLW 0x07 ;69
- RETLW 0x07 ;6a
- RETLW 0x07 ;6b ;1400 857 359 6b ;06
- RETLW 0x07 ;6c
- RETLW 0x07 ;6d
- RETLW 0x07 ;6e
- RETLW 0x07 ;6f
- RETLW 0x07 ;70
- RETLW 0x07 ;71
- RETLW 0x07 ;72
- RETLW 0x07 ;73
- RETLW 0x06 ;74
- RETLW 0x06 ;75
- RETLW 0x06 ;76
- RETLW 0x06 ;77
- RETLW 0x06 ;78
- RETLW 0x06 ;79
- RETLW 0x06 ;7a
- RETLW 0x06 ;7b
- RETLW 0x06 ;7c ;1200 1000 3e3 7c ;05
- RETLW 0x06 ;7d
- RETLW 0x06 ;7e
- RETLW 0x06 ;7f
- RETLW 0x06 ;80
- RETLW 0x06 ;81
- RETLW 0x06 ;82
- RETLW 0x06 ;83
- RETLW 0x06 ;84
- RETLW 0x06 ;85
- RETLW 0x06 ;86
- RETLW 0x06 ;87
- RETLW 0x06 ;88
- RETLW 0x05 ;89
- RETLW 0x05 ;8a
- RETLW 0x05 ;8b
- RETLW 0x05 ;8c
- RETLW 0x05 ;8d
- RETLW 0x05 ;8e
- RETLW 0x05 ;8f
- RETLW 0x05 ;90
- RETLW 0x05 ;91
- RETLW 0x05 ;92
- RETLW 0x05 ;93
- RETLW 0x05 ;94
- RETLW 0x05 ;95
- RETLW 0x05 ;96 ;1000 1200 4b0 96 ;04
- RETLW 0x05 ;97
- RETLW 0x05 ;98
- RETLW 0x05 ;99
- RETLW 0x05 ;9a
- RETLW 0x05 ;9b
- RETLW 0x05 ;9c
- RETLW 0x05 ;9d
- RETLW 0x05 ;9e
- RETLW 0x04 ;9f
- RETLW 0x04 ;a0
- RETLW 0x04 ;a1
- RETLW 0x04 ;a2
- RETLW 0x04 ;a3
- RETLW 0x04 ;a4
- RETLW 0x04 ;a5
- RETLW 0x04 ;a6 ;900 1333 535 a6 ;03
- RETLW 0x04 ;a7
- RETLW 0x04 ;a8
- RETLW 0x04 ;a9
- RETLW 0x04 ;aa
- RETLW 0x04 ;ab
- RETLW 0x04 ;ac
- RETLW 0x04 ;ad
- RETLW 0x04 ;ae
- RETLW 0x04 ;af
- RETLW 0x04 ;b0
- RETLW 0x03 ;b1
- RETLW 0x03 ;b2
- RETLW 0x03 ;b3
- RETLW 0x03 ;b4
- RETLW 0x03 ;b5
- RETLW 0x03 ;b6
- RETLW 0x03 ;b7
- RETLW 0x03 ;b8
- RETLW 0x03 ;b9
- RETLW 0x03 ;ba
- RETLW 0x03 ;bb ;800 1500 5dc bb ;02
- RETLW 0x03 ;bc
- RETLW 0x03 ;bd
- RETLW 0x03 ;be
- RETLW 0x03 ;bf
- RETLW 0x03 ;c0
- RETLW 0x03 ;c1
- RETLW 0x03 ;c2
- RETLW 0x03 ;c3
- RETLW 0x03 ;c4
- RETLW 0x03 ;c5
- RETLW 0x03 ;c6
- RETLW 0x03 ;c7
- RETLW 0x03 ;c8
- RETLW 0x02 ;c9
- RETLW 0x02 ;ca
- RETLW 0x02 ;cb
- RETLW 0x02 ;cc
- RETLW 0x02 ;cd
- RETLW 0x02 ;ce
- RETLW 0x02 ;cf
- RETLW 0x02 ;d0
- RETLW 0x02 ;d1
- RETLW 0x02 ;d2
- RETLW 0x02 ;d3
- RETLW 0x02 ;d4
- RETLW 0x02 ;d5
- RETLW 0x2 ;d6 ;700 1714 6b2 d6 ;01
- RETLW 0x2 ;d7
- RETLW 0x2 ;d8
- RETLW 0x2 ;d9
- RETLW 0x2 ;da
- RETLW 0x2 ;db
- RETLW 0x2 ;dc
- RETLW 0x2 ;dd
- RETLW 0x2 ;de
- RETLW 0x2 ;df
- RETLW 0x2 ;e0
- RETLW 0x2 ;e1
- RETLW 0x2 ;e2
- RETLW 0x2 ;e3
- RETLW 0x2 ;e4
- RETLW 0x2 ;e5
- RETLW 0x2 ;e6
- RETLW 0x2 ;e7
- RETLW 0x2 ;e8
- RETLW 0x1 ;e9
- RETLW 0x1 ;ea
- RETLW 0x1 ;eb
- RETLW 0x1 ;ec
- RETLW 0x1 ;ed
- RETLW 0x1 ;ee
- RETLW 0x1 ;ef
- RETLW 0x1 ;f0
- RETLW 0x1 ;f1
- RETLW 0x1 ;f2
- RETLW 0x1 ;f3
- RETLW 0x1 ;f4
- RETLW 0x1 ;f5
- RETLW 0x1 ;f6
- RETLW 0x1 ;f7
- RETLW 0x1 ;f8
- RETLW 0x1 ;f9
- RETLW 0x1 ;fa ;600 2000 7d0 fa ;00
- RETLW 0x0 ;fb
- RETLW 0x0 ;fc
- RETLW 0x0 ;fd
- ;==========================================================================
- ;==========喷油脉款分级查找表=================================================
- ;==========================================================================
- ORG H'B00'
- PYMK_LEVEL_TABLE:
- MOVF PYMK,W ;
- ADDWF PCL,0x01;
- RETLW 0x00 ;00
- RETLW 0x00 ;01
- RETLW 0x00 ;02
- RETLW 0x00 ;03
- RETLW 0x00 ;04
- RETLW 0x00 ;05
- RETLW 0x00 ;06
- RETLW 0x00 ;07
- RETLW 0x00 ;08
- RETLW 0x00 ;09
- RETLW 0x00 ;0a
- RETLW 0x00 ;0b
- RETLW 0x00 ;0c
- RETLW 0x00 ;0d
- RETLW 0x01 ;0e
- RETLW 0x01 ;0f ;1.5MS IS 0
- RETLW 0x01 ;10
- RETLW 0x02 ;11
- RETLW 0x02 ;12 ;1.8 IS 1
- RETLW 0x02 ;13
- RETLW 0x3 ;14
- RETLW 0x3 ;15 ;2.1 IS 2
- RETLW 0x3 ;16
- RETLW 0x4 ;17
- RETLW 0x4 ;18 ;2.4 IS 3
- RETLW 0x4 ;19
- RETLW 0x5 ;1a
- RETLW 0x5 ;1b ;2.7 IS 4
- RETLW 0x5 ;1c
- RETLW 0x6 ;1d
- RETLW 0x6 ;1e ;3.0 IS 5
- RETLW 0x6 ;1f
- RETLW 0x6 ;20
- RETLW 0x7 ;21
- RETLW 0x7 ;22
- RETLW 0x7 ;23 ;35 IS 6
- RETLW 0x7 ;24
- RETLW 0x7 ;25
- RETLW 0x8 ;26
- RETLW 0x8 ;27
- RETLW 0x8 ;28 ;40 IS 7
- RETLW 0x8 ;29
- RETLW 0x8 ;2a
- RETLW 0x9 ;2b
- RETLW 0x09 ;2c
- RETLW 0x09 ;2d ;45 IS 8
- RETLW 0x09 ;2e
- RETLW 0x09 ;2f
- RETLW 0x0a ;30
- RETLW 0x0a ;31
- RETLW 0x0a ;32 ;50 IS 9
- RETLW 0x0a ;33
- RETLW 0x0a ;34
- RETLW 0x0a ;35
- RETLW 0x0a ;36
- RETLW 0x0a ;37
- RETLW 0x0b ;38
- RETLW 0x0b ;39
- RETLW 0x0b ;3a
- RETLW 0x0b ;3b
- RETLW 0x0b ;3c ;60 IS A
- RETLW 0xb ;3d
- RETLW 0xb ;3e
- RETLW 0xb ;3f
- RETLW 0xb ;40
- RETLW 0xb ;41
- RETLW 0xc ;42
- RETLW 0x0c ;43
- RETLW 0x0c ;44
- RETLW 0x0c ;45
- RETLW 0x0c ;46 ;70 IS B
- RETLW 0x0c ;47
- RETLW 0x0c ;48
- RETLW 0x0c ;49
- RETLW 0x0c ;4a
- RETLW 0x0c ;4b
- RETLW 0x0d ;4c
- RETLW 0x0d ;4d
- RETLW 0x0d ;4e
- RETLW 0x0d ;4f
- RETLW 0x0d ;50 ;80 IS C
- RETLW 0x0d ;51
- RETLW 0x0d ;52
- RETLW 0x0d ;53
- RETLW 0x0d ;54
- RETLW 0x0d ;55
- RETLW 0x0e ;56
- RETLW 0x0e ;57
- RETLW 0x0e ;58
- RETLW 0x0e ;59
- RETLW 0x0e ;5a ;90 IS D
- RETLW 0x0e ;5b
- RETLW 0xe ;5c
- RETLW 0xe ;5d
- RETLW 0xe ;5e
- RETLW 0x0e ;5f
- RETLW 0x0f ;60
- RETLW 0x0f ;61
- RETLW 0x0f ;62
- RETLW 0x0f ;63
- RETLW 0x0f ;64 ;100 IS E
- RETLW 0x0f ;65
- RETLW 0x0f ;66
- RETLW 0x0f ;67
- RETLW 0x0f ;68
- RETLW 0x0f ;69
- RETLW 0x10 ;6a
- RETLW 0x10 ;6b
- RETLW 0x10 ;6c
- RETLW 0x10 ;6d
- RETLW 0x10 ;6e ;110 IS F
- RETLW 0x10 ;6f
- RETLW 0x10 ;70
- RETLW 0x10 ;71
- RETLW 0x10 ;72
- RETLW 0x10 ;73
- RETLW 0x11 ;74
- RETLW 0x11 ;75
- RETLW 0x11 ;76
- RETLW 0x11 ;77
- RETLW 0x11 ;78 ;120 IS 10
- RETLW 0x11 ;79
- RETLW 0x11 ;7a
- RETLW 0x11 ;7b
- RETLW 0x11 ;7c
- RETLW 0x11 ;7d
- RETLW 0x11 ;7e
- RETLW 0x11 ;7f
- RETLW 0x11 ;80
- RETLW 0x11 ;81
- RETLW 0x12 ;82
- RETLW 0x12 ;83
- RETLW 0x12 ;84
- RETLW 0x12 ;85
- RETLW 0x12 ;86
- RETLW 0x12 ;87
- RETLW 0x12 ;88
- RETLW 0x12 ;89
- RETLW 0x12 ;8a
- RETLW 0x12 ;8b
- RETLW 0x12 ;8c ;140 IS 11
- RETLW 0x12 ;8d
- RETLW 0x12 ;8e
- RETLW 0x12 ;8f
- RETLW 0x12 ;90
- RETLW 0x12 ;91
- RETLW 0x12 ;92
- RETLW 0x12 ;93
- RETLW 0x12 ;94
- RETLW 0x12 ;95
- RETLW 0x12 ;96
- RETLW 0x13 ;97
- RETLW 0x13 ;98
- RETLW 0x13 ;99
- RETLW 0x13 ;9a
- RETLW 0x13 ;9b
- RETLW 0x13 ;9c
- RETLW 0x13 ;9d
- RETLW 0x13 ;9e
- RETLW 0x13 ;9f
- RETLW 0x13 ;a0 ;160 IS 12
- RETLW 0x13 ;a1
- RETLW 0x13 ;a2
- RETLW 0x13 ;a3
- RETLW 0x13 ;a4
- RETLW 0x13 ;a5
- RETLW 0x13 ;a6
- RETLW 0x13 ;a7
- RETLW 0x13 ;a8
- RETLW 0x13 ;a9
- RETLW 0x13 ;aa
- RETLW 0x14 ;ab
- RETLW 0x14 ;ac
- RETLW 0x14 ;ad
- RETLW 0x14 ;ae
- RETLW 0x14 ;af
- RETLW 0x14 ;b0
- RETLW 0x14 ;b1
- RETLW 0x14 ;b2
- RETLW 0x14 ;b3
- RETLW 0x14 ;b4 ;180 is 13
- RETLW 0x14 ;b5
- RETLW 0x14 ;b6
- RETLW 0x14 ;b7
- RETLW 0x14 ;b8
- RETLW 0x14 ;b9
- RETLW 0x14 ;ba
- RETLW 0x14 ;bb
- RETLW 0x14 ;bc
- RETLW 0x14 ;bd
- RETLW 0x14 ;be
- RETLW 0x14 ;bf
- RETLW 0x14 ;c0
- RETLW 0x14 ;c1
- RETLW 0x14 ;c2
- RETLW 0x14 ;c3
- RETLW 0x14 ;c4
- RETLW 0x14 ;c5
- RETLW 0x14 ;c6
- RETLW 0x14 ;c7
- RETLW 0x14 ;c8
- RETLW 0x14 ;c9
- RETLW 0x14 ;ca
- RETLW 0x14 ;cb
- RETLW 0x14 ;cc
- RETLW 0x14 ;cd
- RETLW 0x14 ;ce
- RETLW 0x14 ;cf
- RETLW 0x14 ;d0
- RETLW 0x14 ;d1
- RETLW 0x14 ;d2
- RETLW 0x14 ;d3
- RETLW 0x14 ;d4
- RETLW 0x14 ;d5
- RETLW 0x14 ;d6
- RETLW 0x14 ;d7
- RETLW 0x14 ;d8
- RETLW 0x14 ;d9
- RETLW 0x14 ;da
- RETLW 0x14 ;db
- RETLW 0x14 ;dc
- RETLW 0x14 ;dd
- RETLW 0x14 ;de
- RETLW 0x14 ;df
- RETLW 0x14 ;e0
- RETLW 0x14 ;e1
- RETLW 0x14 ;e2
- RETLW 0x14 ;e3
- RETLW 0x14 ;e4
- RETLW 0x14 ;e5
- RETLW 0x14 ;e6
- RETLW 0x14 ;e7
- RETLW 0x14 ;e8
- RETLW 0x14 ;e9
- RETLW 0x14 ;ea
- RETLW 0x14 ;eb
- RETLW 0x14 ;ec
- RETLW 0x14 ;ed
- RETLW 0x14 ;ee
- RETLW 0x14 ;ef
- RETLW 0x14 ;f0
- RETLW 0x14 ;f1
- RETLW 0x14 ;f2
- RETLW 0x14 ;f3
- RETLW 0x14 ;f4
- RETLW 0x14 ;f5
- RETLW 0x14 ;f6
- RETLW 0x14 ;f7
- RETLW 0x14 ;f8
- RETLW 0x14 ;f9
- RETLW 0x14 ;fa
- RETLW 0x14 ;fb
- RETLW 0x14 ;fc
- RETLW 0x14 ;fd
- ;==========================================================================
- ;===========转速-脉宽-延迟===================================================
- ;==========================================================================
- ORG H'0C00'
- SPEED00:MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0xaa ;02
- RETLW 0x13 ;03
- RETLW 0x14 ;04
- RETLW 0x15 ;05
- RETLW 0x01 ;06
- RETLW 0x17 ;07
- RETLW 0x18 ;08
- RETLW 0x19 ;09
- RETLW 0x1a ;0a
- RETLW 0x1b ;0b
- RETLW 0x1c ;0c
- RETLW 0x1d ;0d
- RETLW 0x1e ;0e
- RETLW 0x1f ;0f
- RETLW 0x20 ;10
- RETLW 0x21 ;11
- RETLW 0x22 ;12
- RETLW 0x23 ;13
- RETLW 0x24 ;14
- RETLW 0x25 ;15
- RETLW 0x26 ;16
- RETLW 0x27 ;17
- RETLW 0x28 ;18
- RETLW 0x29 ;19
- RETLW 0x2a ;1a
- RETLW 0x2b ;1b
- RETLW 0x2c ;1c
- RETLW 0x2d ;1d
- RETLW 0x2e ;1e
- RETLW 0x2f ;1f
- ORG H'0C20'
- SPEED01:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x01 ;02
- RETLW 0x01 ;03
- RETLW 0x01 ;04
- RETLW 0x01 ;05
- RETLW 0x01 ;06
- RETLW 0x01 ;07
- RETLW 0x01 ;08
- RETLW 0x01 ;09
- RETLW 0x01 ;0a
- RETLW 0x01 ;0b
- RETLW 0x01 ;0c
- RETLW 0x01 ;0d
- RETLW 0x01 ;0e
- RETLW 0x01 ;0f
- RETLW 0x01 ;10
- RETLW 0x01 ;11
- RETLW 0x01 ;12
- RETLW 0x01 ;13
- RETLW 0x01 ;14
- RETLW 0x01 ;15
- RETLW 0x01 ;16
- RETLW 0x01 ;17
- RETLW 0x01 ;18
- RETLW 0x01 ;19
- RETLW 0x01 ;1a
- RETLW 0x01 ;1b
- RETLW 0x01 ;1c
- RETLW 0x01 ;1d
- RETLW 0x01 ;1e
- RETLW 0x01 ;1f
- ORG H'0C40'
- SPEED02:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x02 ;02
- RETLW 0x02 ;03
- RETLW 0x02 ;04
- RETLW 0x02 ;05
- RETLW 0x02 ;06
- RETLW 0x02 ;07
- RETLW 0x02 ;08
- RETLW 0x02 ;09
- RETLW 0x02 ;0a
- RETLW 0x02 ;0b
- RETLW 0x02 ;0c
- RETLW 0x02 ;0d
- RETLW 0x02 ;0e
- RETLW 0x02 ;0f
- RETLW 0x02 ;10
- RETLW 0x02 ;11
- RETLW 0x02 ;12
- RETLW 0x02 ;13
- RETLW 0x02 ;14
- RETLW 0x02 ;15
- RETLW 0x02 ;16
- RETLW 0x02 ;17
- RETLW 0x02 ;18
- RETLW 0x02 ;19
- RETLW 0x02 ;1a
- RETLW 0x02 ;1b
- RETLW 0x02 ;1c
- RETLW 0x02 ;1d
- RETLW 0x02 ;1e
- RETLW 0x02 ;1f
- ORG H'0C60'
- SPEED03:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x03 ;02
- RETLW 0x03 ;03
- RETLW 0x03 ;04
- RETLW 0x03 ;05
- RETLW 0x03 ;06
- RETLW 0x03 ;07
- RETLW 0x03 ;08
- RETLW 0x03 ;09
- RETLW 0x03 ;0a
- RETLW 0x03 ;0b
- RETLW 0x03 ;0c
- RETLW 0x03 ;0d
- RETLW 0x03 ;0e
- RETLW 0x03 ;0f
- RETLW 0x03 ;10
- RETLW 0x03 ;11
- RETLW 0x03 ;12
- RETLW 0x03 ;13
- RETLW 0x03 ;14
- RETLW 0x03 ;15
- RETLW 0x03 ;16
- RETLW 0x03 ;17
- RETLW 0x03 ;18
- RETLW 0x03 ;19
- RETLW 0x03 ;1a
- RETLW 0x03 ;1b
- RETLW 0x03 ;1c
- RETLW 0x03 ;1d
- RETLW 0x03 ;1e
- RETLW 0x03 ;1f
- ORG H'0C80'
- SPEED04:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x04 ;02
- RETLW 0x04 ;03
- RETLW 0x04 ;04
- RETLW 0x04 ;05
- RETLW 0x04 ;06
- RETLW 0x04 ;07
- RETLW 0x04 ;08
- RETLW 0x04 ;09
- RETLW 0x04 ;0a
- RETLW 0x04 ;0b
- RETLW 0x04 ;0c
- RETLW 0x04 ;0d
- RETLW 0x04 ;0e
- RETLW 0x04 ;0f
- RETLW 0x04 ;10
- RETLW 0x04 ;11
- RETLW 0x04 ;12
- RETLW 0x04 ;13
- RETLW 0x04 ;14
- RETLW 0x04 ;15
- RETLW 0x04 ;16
- RETLW 0x04 ;17
- RETLW 0x04 ;18
- RETLW 0x04 ;19
- RETLW 0x04 ;1a
- RETLW 0x04 ;1b
- RETLW 0x04 ;1c
- RETLW 0x04 ;1d
- RETLW 0x04 ;1e
- RETLW 0x04 ;1f
- SPEED05:
- ORG H'0CA0'
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x05 ;02
- RETLW 0x05 ;03
- RETLW 0x05 ;04
- RETLW 0x05 ;05
- RETLW 0x05 ;06
- RETLW 0x05 ;07
- RETLW 0x05 ;08
- RETLW 0x05 ;09
- RETLW 0x05 ;0a
- RETLW 0x05 ;0b
- RETLW 0x05 ;0c
- RETLW 0x05 ;0d
- RETLW 0x05 ;0e
- RETLW 0x05 ;0f
- RETLW 0x05 ;10
- RETLW 0x05 ;11
- RETLW 0x05 ;12
- RETLW 0x05 ;13
- RETLW 0x05 ;14
- RETLW 0x05 ;15
- RETLW 0x05 ;16
- RETLW 0x05 ;17
- RETLW 0x05 ;18
- RETLW 0x05 ;19
- RETLW 0x05 ;1a
- RETLW 0x05 ;1b
- RETLW 0x05 ;1c
- RETLW 0x05 ;1d
- RETLW 0x05 ;1e
- RETLW 0x05 ;1f
- ORG H'CC0'
- SPEED06:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x06 ;02
- RETLW 0x06 ;03
- RETLW 0x06 ;04
- RETLW 0x06 ;05
- RETLW 0x06 ;06
- RETLW 0x06 ;07
- RETLW 0x06 ;08
- RETLW 0x06 ;09
- RETLW 0x06 ;0a
- RETLW 0x06 ;0b
- RETLW 0x06 ;0c
- RETLW 0x06 ;0d
- RETLW 0x06 ;0e
- RETLW 0x06 ;0f
- RETLW 0x06 ;10
- RETLW 0x06 ;11
- RETLW 0x06 ;12
- RETLW 0x06 ;13
- RETLW 0x06 ;14
- RETLW 0x06 ;15
- RETLW 0x06 ;16
- RETLW 0x06 ;17
- RETLW 0x06 ;18
- RETLW 0x06 ;19
- RETLW 0x06 ;1a
- RETLW 0x06 ;1b
- RETLW 0x06 ;1c
- RETLW 0x06 ;1d
- RETLW 0x06 ;1e
- RETLW 0x06 ;1f
- ORG H'CE0'
- SPEED07:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x07 ;02
- RETLW 0x07 ;03
- RETLW 0x07 ;04
- RETLW 0x07 ;05
- RETLW 0x07 ;06
- RETLW 0x07 ;07
- RETLW 0x07 ;08
- RETLW 0x07 ;09
- RETLW 0x07 ;0a
- RETLW 0x07 ;0b
- RETLW 0x07 ;0c
- RETLW 0x07 ;0d
- RETLW 0x07 ;0e
- RETLW 0x07 ;0f
- RETLW 0x07 ;10
- RETLW 0x07 ;11
- RETLW 0x07 ;12
- RETLW 0x07 ;13
- RETLW 0x07 ;14
- RETLW 0x07 ;15
- RETLW 0x07 ;16
- RETLW 0x07 ;17
- RETLW 0x07 ;18
- RETLW 0x07 ;19
- RETLW 0x07 ;1a
- RETLW 0x07 ;1b
- RETLW 0x07 ;1c
- RETLW 0x07 ;1d
- RETLW 0x07 ;1e
- RETLW 0x07 ;1f
- ORG H'D00'
- SPEED08:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x08 ;02
- RETLW 0x08 ;03
- RETLW 0x08 ;04
- RETLW 0x08 ;05
- RETLW 0x08 ;06
- RETLW 0x08 ;07
- RETLW 0x08 ;08
- RETLW 0x08 ;09
- RETLW 0x08 ;0a
- RETLW 0x08 ;0b
- RETLW 0x08 ;0c
- RETLW 0x08 ;0d
- RETLW 0x08 ;0e
- RETLW 0x08 ;0f
- RETLW 0x08 ;10
- RETLW 0x08 ;11
- RETLW 0x08 ;12
- RETLW 0x08 ;13
- RETLW 0x08 ;14
- RETLW 0x08 ;15
- RETLW 0x08 ;16
- RETLW 0x08 ;17
- RETLW 0x08 ;18
- RETLW 0x08 ;19
- RETLW 0x08 ;1a
- RETLW 0x08 ;1b
- RETLW 0x08 ;1c
- RETLW 0x08 ;1d
- RETLW 0x08 ;1e
- RETLW 0x08 ;1f
- ORG H'D20'
- SPEED09:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x09 ;02
- RETLW 0x09 ;03
- RETLW 0x09 ;04
- RETLW 0x09 ;05
- RETLW 0x09 ;06
- RETLW 0x09 ;07
- RETLW 0x09 ;08
- RETLW 0x09 ;09
- RETLW 0x09 ;0a
- RETLW 0x09 ;0b
- RETLW 0x09 ;0c
- RETLW 0x09 ;0d
- RETLW 0x09 ;0e
- RETLW 0x09 ;0f
- RETLW 0x09 ;10
- RETLW 0x09 ;11
- RETLW 0x09 ;12
- RETLW 0x09 ;13
- RETLW 0x09 ;14
- RETLW 0x09 ;15
- RETLW 0x09 ;16
- RETLW 0x09 ;17
- RETLW 0x09 ;18
- RETLW 0x09 ;19
- RETLW 0x09 ;1a
- RETLW 0x09 ;1b
- RETLW 0x09 ;1c
- RETLW 0x09 ;1d
- RETLW 0x09 ;1e
- RETLW 0x09 ;1f
- ORG H'D40'
- SPEED0A:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0A ;02
- RETLW 0x0A ;03
- RETLW 0x0A ;04
- RETLW 0x0A ;05
- RETLW 0x0A ;06
- RETLW 0x0A ;07
- RETLW 0x0A ;08
- RETLW 0x0A ;09
- RETLW 0x0A ;0a
- RETLW 0x0A ;0b
- RETLW 0x0A ;0c
- RETLW 0x0A ;0d
- RETLW 0x0A ;0e
- RETLW 0x0A ;0f
- RETLW 0x0A ;10
- RETLW 0x0A ;11
- RETLW 0x0A ;12
- RETLW 0x0A ;13
- RETLW 0x0A ;14
- RETLW 0x0A ;15
- RETLW 0x0A ;16
- RETLW 0x0A ;17
- RETLW 0x0A ;18
- RETLW 0x0A ;19
- RETLW 0x0A ;1a
- RETLW 0x0A ;1b
- RETLW 0x0A ;1c
- RETLW 0x0A ;1d
- RETLW 0x0A ;1e
- RETLW 0x0A ;1f
- ORG H'D60'
- SPEED0B:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0B ;02
- RETLW 0x0B ;03
- RETLW 0x0B ;04
- RETLW 0x0B ;05
- RETLW 0x0B ;06
- RETLW 0x0B ;07
- RETLW 0x0B ;08
- RETLW 0x0B ;09
- RETLW 0x0B ;0a
- RETLW 0x0B ;0b
- RETLW 0x0B ;0c
- RETLW 0x0B ;0d
- RETLW 0x0B ;0e
- RETLW 0x0B ;0f
- RETLW 0x0B ;10
- RETLW 0x0B ;11
- RETLW 0x0B ;12
- RETLW 0x0B ;13
- RETLW 0x0B ;14
- RETLW 0x0B ;15
- RETLW 0x0B ;16
- RETLW 0x0B ;17
- RETLW 0x0B ;18
- RETLW 0x0B ;19
- RETLW 0x0B ;1a
- RETLW 0x0B ;1b
- RETLW 0x0B ;1c
- RETLW 0x0B ;1d
- RETLW 0x0B ;1e
- RETLW 0x0B ;1f
- ORG H'D80'
- SPEED0C:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0C ;02
- RETLW 0x0C ;03
- RETLW 0x0C ;04
- RETLW 0x0C ;05
- RETLW 0x0C ;06
- RETLW 0x0C ;07
- RETLW 0x0C ;08
- RETLW 0x0C ;09
- RETLW 0x0C ;0a
- RETLW 0x0C ;0b
- RETLW 0x0C ;0c
- RETLW 0x0C ;0d
- RETLW 0x0C ;0e
- RETLW 0x0C ;0f
- RETLW 0x0C ;10
- RETLW 0x0C ;11
- RETLW 0x0C ;12
- RETLW 0x0C ;13
- RETLW 0x0C ;14
- RETLW 0x0C ;15
- RETLW 0x0C ;16
- RETLW 0x0C ;17
- RETLW 0x0C ;18
- RETLW 0x0C ;19
- RETLW 0x0C ;1a
- RETLW 0x0C ;1b
- RETLW 0x0C ;1c
- RETLW 0x0C ;1d
- RETLW 0x0C ;1e
- RETLW 0x0C ;1f
- ORG H'DA0'
- SPEED0D:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0D ;02
- RETLW 0x0D ;03
- RETLW 0x0D ;04
- RETLW 0x0D ;05
- RETLW 0x0D ;06
- RETLW 0x0D ;07
- RETLW 0x0D ;08
- RETLW 0x0D ;09
- RETLW 0x0D ;0a
- RETLW 0x0D ;0b
- RETLW 0x0D ;0c
- RETLW 0x0D ;0d
- RETLW 0x0D ;0e
- RETLW 0x0D ;0f
- RETLW 0x0D ;10
- RETLW 0x0D ;11
- RETLW 0x0D ;12
- RETLW 0x0D ;13
- RETLW 0x0D ;14
- RETLW 0x0D ;15
- RETLW 0x0D ;16
- RETLW 0x0D ;17
- RETLW 0x0D ;18
- RETLW 0x0D ;19
- RETLW 0x0D ;1a
- RETLW 0x0D ;1b
- RETLW 0x0D ;1c
- RETLW 0x0D ;1d
- RETLW 0x0D ;1e
- RETLW 0x0D ;1f
- ORG H'DC0'
- SPEEED0E:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0E ;02
- RETLW 0x0E ;03
- RETLW 0x0E ;04
- RETLW 0x0E ;05
- RETLW 0x0E ;06
- RETLW 0x0E ;07
- RETLW 0x0E ;08
- RETLW 0x0E ;09
- RETLW 0x0E ;0a
- RETLW 0x0E ;0b
- RETLW 0x0E ;0c
- RETLW 0x0E ;0d
- RETLW 0x0E ;0e
- RETLW 0x0E ;0f
- RETLW 0x0E ;10
- RETLW 0x0E ;11
- RETLW 0x0E ;12
- RETLW 0x0E ;13
- RETLW 0x0E ;14
- RETLW 0x0E ;15
- RETLW 0x0E ;16
- RETLW 0x0E ;17
- RETLW 0x0E ;18
- RETLW 0x0E ;19
- RETLW 0x0E ;1a
- RETLW 0x0E ;1b
- RETLW 0x0E ;1c
- RETLW 0x0E ;1d
- RETLW 0x0E ;1e
- RETLW 0x0E ;1f
- ORG H'DE0'
- SPEED0F:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x0F ;02
- RETLW 0x0F ;03
- RETLW 0x0F ;04
- RETLW 0x0F ;05
- RETLW 0x0F ;06
- RETLW 0x0F ;07
- RETLW 0x0F ;08
- RETLW 0x0F ;09
- RETLW 0x0F ;0a
- RETLW 0x0F ;0b
- RETLW 0x0F ;0c
- RETLW 0x0F ;0d
- RETLW 0x0F ;0e
- RETLW 0x0F ;0f
- RETLW 0x0F ;10
- RETLW 0x0F ;11
- RETLW 0x0F ;12
- RETLW 0x0F ;13
- RETLW 0x0F ;14
- RETLW 0x0F ;15
- RETLW 0x0F ;16
- RETLW 0x0F ;17
- RETLW 0x0F ;18
- RETLW 0x0F ;19
- RETLW 0x0F ;1a
- RETLW 0x0F ;1b
- RETLW 0x0F ;1c
- RETLW 0x0F ;1d
- RETLW 0x0F ;1e
- RETLW 0x0F ;1f
- ORG H'E00'
- SPEED10:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x10 ;02
- RETLW 0x10 ;03
- RETLW 0x10 ;04
- RETLW 0x10 ;05
- RETLW 0x10 ;06
- RETLW 0x10 ;07
- RETLW 0x10 ;08
- RETLW 0x10 ;09
- RETLW 0x10 ;0a
- RETLW 0x10 ;0b
- RETLW 0x10 ;0c
- RETLW 0x10 ;0d
- RETLW 0x10 ;0e
- RETLW 0x10 ;0f
- RETLW 0x10 ;10
- RETLW 0x10 ;11
- RETLW 0x10 ;12
- RETLW 0x10 ;13
- RETLW 0x10 ;14
- RETLW 0x10 ;15
- RETLW 0x10 ;16
- RETLW 0x10 ;17
- RETLW 0x10 ;18
- RETLW 0x10 ;19
- RETLW 0x10 ;1a
- RETLW 0x10 ;1b
- RETLW 0x10 ;1c
- RETLW 0x10 ;1d
- RETLW 0x10 ;1e
- RETLW 0x10 ;1f
- ORG H'E20'
- SPEED11:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x11 ;02
- RETLW 0x11 ;03
- RETLW 0x11 ;04
- RETLW 0x11 ;05
- RETLW 0x11 ;06
- RETLW 0x11 ;07
- RETLW 0x11 ;08
- RETLW 0x11 ;09
- RETLW 0x11 ;0a
- RETLW 0x11 ;0b
- RETLW 0x11 ;0c
- RETLW 0x11 ;0d
- RETLW 0x11 ;0e
- RETLW 0x11 ;0f
- RETLW 0x11 ;10
- RETLW 0x11 ;11
- RETLW 0x11 ;12
- RETLW 0x11 ;13
- RETLW 0x11 ;14
- RETLW 0x11 ;15
- RETLW 0x11 ;16
- RETLW 0x11 ;17
- RETLW 0x11 ;18
- RETLW 0x11 ;19
- RETLW 0x11 ;1a
- RETLW 0x11 ;1b
- RETLW 0x11 ;1c
- RETLW 0x11 ;1d
- RETLW 0x11 ;1e
- RETLW 0x11 ;1f
- ORG H'E40'
- SPEED12:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x12 ;02
- RETLW 0x12 ;03
- RETLW 0x12 ;04
- RETLW 0x12 ;05
- RETLW 0x12 ;06
- RETLW 0x12 ;07
- RETLW 0x12 ;08
- RETLW 0x12 ;09
- RETLW 0x12 ;0a
- RETLW 0x12 ;0b
- RETLW 0x12 ;0c
- RETLW 0x12 ;0d
- RETLW 0x12 ;0e
- RETLW 0x12 ;0f
- RETLW 0x12 ;10
- RETLW 0x12 ;11
- RETLW 0x12 ;12
- RETLW 0x12 ;13
- RETLW 0x12 ;14
- RETLW 0x12 ;15
- RETLW 0x12 ;16
- RETLW 0x12 ;17
- RETLW 0x12 ;18
- RETLW 0x12 ;19
- RETLW 0x12 ;1a
- RETLW 0x12 ;1b
- RETLW 0x12 ;1c
- RETLW 0x12 ;1d
- RETLW 0x12 ;1e
- RETLW 0x12 ;1f
- ORG H'E60'
- SPEED13:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x13 ;02
- RETLW 0x13 ;03
- RETLW 0x13 ;04
- RETLW 0x13 ;05
- RETLW 0x13 ;06
- RETLW 0x13 ;07
- RETLW 0x13 ;08
- RETLW 0x13 ;09
- RETLW 0x13 ;0a
- RETLW 0x13 ;0b
- RETLW 0x13 ;0c
- RETLW 0x13 ;0d
- RETLW 0x13 ;0e
- RETLW 0x13 ;0f
- RETLW 0x13 ;10
- RETLW 0x13 ;11
- RETLW 0x13 ;12
- RETLW 0x13 ;13
- RETLW 0x13 ;14
- RETLW 0x13 ;15
- RETLW 0x13 ;16
- RETLW 0x13 ;17
- RETLW 0x13 ;18
- RETLW 0x13 ;19
- RETLW 0x13 ;1a
- RETLW 0x13 ;1b
- RETLW 0x13 ;1c
- RETLW 0x13 ;1d
- RETLW 0x13 ;1e
- RETLW 0x13 ;1f
- ORG H'E80'
- SPEED14:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x14 ;02
- RETLW 0x14 ;03
- RETLW 0x14 ;04
- RETLW 0x14 ;05
- RETLW 0x14 ;06
- RETLW 0x14 ;07
- RETLW 0x14 ;08
- RETLW 0x14 ;09
- RETLW 0x14 ;0a
- RETLW 0x14 ;0b
- RETLW 0x14 ;0c
- RETLW 0x14 ;0d
- RETLW 0x14 ;0e
- RETLW 0x14 ;0f
- RETLW 0x14 ;10
- RETLW 0x14 ;11
- RETLW 0x14 ;12
- RETLW 0x14 ;13
- RETLW 0x14 ;14
- RETLW 0x14 ;15
- RETLW 0x14 ;16
- RETLW 0x14 ;17
- RETLW 0x14 ;18
- RETLW 0x14 ;19
- RETLW 0x14 ;1a
- RETLW 0x14 ;1b
- RETLW 0x14 ;1c
- RETLW 0x14 ;1d
- RETLW 0x14 ;1e
- RETLW 0x14 ;1f
- ORG H'EA0'
- SPEED15:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x15 ;02
- RETLW 0x15 ;03
- RETLW 0x15 ;04
- RETLW 0x15 ;05
- RETLW 0x15 ;06
- RETLW 0x15 ;07
- RETLW 0x15 ;08
- RETLW 0x15 ;09
- RETLW 0x15 ;0a
- RETLW 0x15 ;0b
- RETLW 0x15 ;0c
- RETLW 0x15 ;0d
- RETLW 0x15 ;0e
- RETLW 0x15 ;0f
- RETLW 0x15 ;10
- RETLW 0x15 ;11
- RETLW 0x15 ;12
- RETLW 0x15 ;13
- RETLW 0x15 ;14
- RETLW 0x15 ;15
- RETLW 0x15 ;16
- RETLW 0x15 ;17
- RETLW 0x15 ;18
- RETLW 0x15 ;19
- RETLW 0x15 ;1a
- RETLW 0x15 ;1b
- RETLW 0x15 ;1c
- RETLW 0x15 ;1d
- RETLW 0x15 ;1e
- RETLW 0x15 ;1f
- ORG H'EC0'
- SPEED16:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x11 ;00
- RETLW 0x1a ;01
- RETLW 0x1a ;02
- RETLW 0x1a ;03
- RETLW 0x1a ;04
- RETLW 0x1a ;05
- RETLW 0x1a ;06
- RETLW 0x1a ;07
- RETLW 0x1a ;08
- RETLW 0x1a ;09
- RETLW 0x1a ;0A
- RETLW 0x1a ;0B
- RETLW 0x1a ;0C
- RETLW 0x1a ;0D
- RETLW 0x1a ;0E
- RETLW 0x1a ;0F
- RETLW 0x1a ;10
- RETLW 0x1a ;11
- RETLW 0x4a ;12
- RETLW 0x5a ;13
- RETLW 0x6a ;14
- RETLW 0x1a ;15
- RETLW 0x1a ;18
- RETLW 0x1a ;19
- RETLW 0x1a ;1a
- RETLW 0x1a ;1b
- RETLW 0x1a ;1c
- RETLW 0x1a ;1d
- ORG H'EE0'
- SPEED17:
- MOVF PYMK_LEVEL,W
- ADDWF PCL ,0x1
- RETLW 0x1b ;00
- RETLW 0x1b ;01
- RETLW 0x1b ;02
- RETLW 0x1b ;03
- RETLW 0x1b ;04
- RETLW 0x1b ;05
- RETLW 0x1b ;06
- RETLW 0x1b ;07
- RETLW 0x1b ;08
- RETLW 0x1b ;09
- RETLW 0x1b ;0A
- RETLW 0x1b ;0B
- RETLW 0x1b ;0C
- RETLW 0x1b ;0D
- RETLW 0x1b ;0E
- RETLW 0x1b ;0F
- RETLW 0x1b ;10
- RETLW 0x1b ;11
- RETLW 0x4b ;12
- RETLW 0x5b ;13
- RETLW 0x6b ;14
- RETLW 0x1b ;15
- RETLW 0x1b ;18
- RETLW 0x1b ;19
- RETLW 0x1b ;1a
- RETLW 0x1b ;1b
- RETLW 0x1b ;1c
- RETLW 0x1b ;1d
- ;==========================================================================
- ;==========真空压力分级查找表=================================================
- ;最小5KPa,以30KPa为中心,每五千帕分隔,其他为10KPa分隔,共13个分级
- ;==========================================================================
- ;100kpa ->96
- ;95kpa ->91
- ;90kpa ->86 ??
- ;85kpa ->81
- ;80kpa ->76
- ;75kpa ->71
- ;70hpa ->67
- ;65kpa ->62
- ;60kpa ->56
- ;55kpa ->52 ???
- ;50kpa ->48
- ;45kpa ->43
- ;40kpa ->39
- ;35kpa ->33
- ;30kpa ->28
- ;25kpa ->24
- ;20kpa ->19
- ;15kpa ->14
- ;10kpa ->9
- ;5kpa ->4
- ZKYL_LEVEL_TABLE:
- ORG H'0F00'
- MOVF ZKYL,W
- ADDWF PCL,0x01
- RETLW 0x0 ;0
- RETLW 0x0 ;1
- RETLW 0x0 ;2
- RETLW 0x0 ;3
- RETLW 0x0 ;4
- RETLW 0x0 ;5
- RETLW 0x0 ;6
- RETLW 0x0 ;7
- RETLW 0x0 ;8
- RETLW 0x0 ;9 10kpa 9
- RETLW 0x0 ;10
- RETLW 0x0 ;11
- RETLW 0x0 ;12
- RETLW 0x0 ;13
- RETLW 0x01 ;14
- RETLW 0x01 ;15
- RETLW 0x01 ;16
- RETLW 0x01 ;17
- RETLW 0x01 ;18
- RETLW 0x01 ;19 20kp 19
- RETLW 0x01 ;20
- RETLW 0x1 ;21
- RETLW 0x1 ;22
- RETLW 0x1 ;23
- RETLW 0x2 ;24
- RETLW 0x2 ;25
- RETLW 0x2 ;26
- RETLW 0x2 ;27
- RETLW 0x2 ;28 30kpa 28
- RETLW 0x2 ;29
- RETLW 0x2 ;30
- RETLW 0x2 ;31
- RETLW 0x2 ;32
- RETLW 0x2 ;33
- RETLW 0x3 ;34
- RETLW 0x3 ;35
- RETLW 0x3 ;36
- RETLW 0x3 ;37
- RETLW 0x3 ;38
- RETLW 0x3 ;39 40kp 39
- RETLW 0x3 ;40
- RETLW 0x3 ;41
- RETLW 0x3 ;42
- RETLW 0x3 ;43
- RETLW 0x4 ;44
- RETLW 0x04 ;45
- RETLW 0x04 ;46
- RETLW 0x04 ;47
- RETLW 0x04 ;48 50kpa 48
- RETLW 0x04 ;49
- RETLW 0x04 ;50
- RETLW 0x04 ;51
- RETLW 0x04 ;52
- RETLW 0x05 ;53
- RETLW 0x05 ;54
- RETLW 0x05 ;55
- RETLW 0x05 ;56 60kpa 56
- RETLW 0x05 ;57
- RETLW 0x05 ;58
- RETLW 0x05 ;59
- RETLW 0x05 ;60
- RETLW 0x05 ;61
- RETLW 0x6 ;62
- RETLW 0x6 ;63
- RETLW 0x6 ;64
- RETLW 0x6 ;65
- RETLW 0x6 ;66
- RETLW 0x6 ;67 70kpa 67
- RETLW 0x06 ;68
- RETLW 0x06 ;69
- RETLW 0x06 ;70
- RETLW 0x06 ;71
- RETLW 0x07 ;72
- RETLW 0x07 ;73
- RETLW 0x07 ;74
- RETLW 0x07 ;75
- RETLW 0x07 ;76 80kpa 76
- RETLW 0x07 ;77
- RETLW 0x07 ;78
- RETLW 0x07 ;79
- RETLW 0x07 ;80
- RETLW 0x08 ;81
- RETLW 0x08 ;82
- RETLW 0x08 ;83
- RETLW 0x08 ;84
- RETLW 0x08 ;85
- RETLW 0x08 ;86 ;90kpa 86
- RETLW 0x08 ;87
- RETLW 0x08 ;88
- RETLW 0x08 ;89
- RETLW 0x08 ;90
- RETLW 0x09 ;91
- RETLW 0x09 ;92
- RETLW 0x09 ;93
- RETLW 0x09 ;94
- RETLW 0x09 ;95
- RETLW 0x09 ;96 ;100kp 96
- RETLW 0x09 ;97
- RETLW 0x09 ;98
- RETLW 0x09 ;99
- RETLW 0x09 ;100
- RETLW 0x09 ;101
- RETLW 0x09 ;102
- RETLW 0x09 ;103
- RETLW 0x09 ;104
- RETLW 0x09 ;105
- RETLW 0x09 ;106
- RETLW 0x09 ;107
- RETLW 0x09 ;108
- RETLW 0x09 ;109
- RETLW 0x09 ;110
- RETLW 0x09 ;111
- RETLW 0x09 ;112
- RETLW 0x09 ;113
- RETLW 0x09 ;114
- RETLW 0x09 ;115
- RETLW 0x09 ;116
- RETLW 0x09 ;117
- RETLW 0x09 ;118
- RETLW 0x09 ;119
- RETLW 0x09 ;110
- RETLW 0x09 ;111
- RETLW 0x09 ;112
- RETLW 0x09 ;113
- RETLW 0x09 ;114
- RETLW 0x09 ;115
- RETLW 0x09 ;116
- RETLW 0x09 ;117
- RETLW 0x09 ;118
- RETLW 0x09 ;119
- RETLW 0x09 ;120
- RETLW 0x09 ;121
- RETLW 0x09 ;122
- RETLW 0x09 ;123
- RETLW 0x09 ;124
- RETLW 0x09 ;125
- RETLW 0x09 ;126
- RETLW 0x09 ;127
- RETLW 0x09 ;128
- RETLW 0x09 ;129
- RETLW 0x09 ;130
- RETLW 0x09 ;131
- RETLW 0x09 ;132
- RETLW 0x09 ;133
- RETLW 0x09 ;134
- RETLW 0x09 ;135
- RETLW 0x09 ;136
- RETLW 0x09 ;137
- RETLW 0x09 ;138
- RETLW 0x09 ;139
- RETLW 0x09 ;140
- RETLW 0x09 ;141
- RETLW 0x09 ;142
- RETLW 0x09 ;143
- RETLW 0x09 ;144
- RETLW 0x09 ;145
- RETLW 0x09 ;146
- RETLW 0x09 ;147
- RETLW 0x09 ;148
- RETLW 0x09 ;149
- RETLW 0x09 ;150
- RETLW 0x09 ;151
- RETLW 0x09 ;152
- RETLW 0x09 ;153
- RETLW 0x09 ;154
- RETLW 0x09 ;155
- RETLW 0x09 ;156
- RETLW 0x09 ;157
- RETLW 0x09 ;158
- RETLW 0x09 ;159
- RETLW 0x09 ;160
- RETLW 0x09 ;161
- RETLW 0x09 ;162
- RETLW 0x09 ;163
- RETLW 0x09 ;164
- RETLW 0x09 ;165
- RETLW 0x09 ;166
- RETLW 0x09 ;167
- RETLW 0x09 ;168
- RETLW 0x09 ;169
- RETLW 0x09 ;170
- RETLW 0x09 ;171
- RETLW 0x09 ;172
- RETLW 0x09 ;173
- RETLW 0x09 ;174
- RETLW 0x09 ;175
- RETLW 0x09 ;176
- RETLW 0x09 ;177
- RETLW 0x09 ;178
- RETLW 0x09 ;179
- RETLW 0x09 ;180
- RETLW 0x09 ;181
- RETLW 0x09 ;182
- RETLW 0x09 ;183
- RETLW 0x09 ;184
- RETLW 0x09 ;185
- RETLW 0x09 ;186
- RETLW 0x09 ;187
- RETLW 0x09 ;188
- RETLW 0x09 ;189
- RETLW 0x09 ;190
- RETLW 0x09 ;191
- RETLW 0x09 ;192
- RETLW 0x09 ;193
- RETLW 0x09 ;194
- RETLW 0x09 ;195
- RETLW 0x09 ;196
- RETLW 0x09 ;197
- RETLW 0x09 ;198
- RETLW 0x09 ;199
- RETLW 0x09 ;200
- RETLW 0x09 ;201
- RETLW 0x09 ;202
- RETLW 0x09 ;203
- RETLW 0x09 ;204
- RETLW 0x09 ;205
- RETLW 0x09 ;206
- RETLW 0x09 ;207
- RETLW 0x09 ;208
- RETLW 0x09 ;209
- RETLW 0x09 ;210
- RETLW 0x09 ;211
- RETLW 0x09 ;212
- RETLW 0x09 ;213
- RETLW 0x09 ;214
- RETLW 0x09 ;215
- RETLW 0x09 ;216
- RETLW 0x09 ;217
- RETLW 0x09 ;218
- RETLW 0x09 ;219
- RETLW 0x09 ;220
- RETLW 0x09 ;221
- RETLW 0x09 ;222
- RETLW 0x09 ;223
- RETLW 0x09 ;224
- RETLW 0x09 ;225
- RETLW 0x09 ;226
- RETLW 0x09 ;227
- RETLW 0x09 ;228
- RETLW 0x09 ;229
- RETLW 0x09 ;230
- RETLW 0x09 ;231
- RETLW 0x09 ;232
- RETLW 0x09 ;233
- RETLW 0x09 ;234
- RETLW 0x09 ;235
- RETLW 0x09 ;236
- RETLW 0x09 ;237
- RETLW 0x09 ;238
- RETLW 0x09 ;239
- RETLW 0x09 ;230
- RETLW 0x09 ;241
- RETLW 0x09 ;242
- RETLW 0x09 ;243
- END