PIC系列單片機源代碼
0.png (48.69 KB, 下載次數(shù): 80)
下載附件
2018-8-19 03:03 上傳
單片機源程序如下:
- ;******************************************************************************
- ; *
- ; Filename: FB_ZHU_JI_PIC16LF1947.ASM *
- ; Date: 2012.01.6 *
- ; File Version: 1.0 *
- ; *
- ; Author: *
- ; *
- ; *
- ;******************************************************************************
- ; *
- ; Files Required: P16F1947.INC *
- ; *
- ;******************************************************************************
- ; *
- ; Notes: *
- ; *
- ;******************************************************************************
- ; *
- ; Revision History: *
- ; *
- ;******************************************************************************
- list p=16f1947 ; list directive to define processor
- #include <P16F1947.INC> ; processor specific variable definitions
- #include <MyDefine.inc>
- #include <reg2510.inc>
- #include <MY_STD.MAC>
- ERRORLEVEL 0,-305,-306,-302 ; Messages, Warnings and Errors Printed
- ; Ignore [305] => Using default dest of
- ; 1 file
- ; Ignore [306] => Crossing Page Boundary
- ;******************************************************************************
- ;
- ; CONFIGURATION WORD SETUP
- ;
- ; The 'CONFIG' directive is used to embed the configuration word within the
- ; .asm file. The lables following the directive are located in the respective
- ; .inc file. See the data sheet for additional information on configuration
- ; word settings.
- ;
- ;******************************************************************************
- ; __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_ON & _IESO_OFF & _FCMEN_OFF
- ; __CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
- ;******************************************************************************
- ; RESET VECTOR
- ;******************************************************************************
- ORG 0x0000 ; processor reset vector
- PAGESEL START
- GOTO START ; When using debug header, first inst.
- ; may be passed over by ICD2.
- ORG 0x0004
- ;******************************************************************************
- ; INTERRUPT SERVICE ROUTINE
- ;******************************************************************************
- #include <Interrupt.asm>
- ;******************************************************************************
- ; USER INTERRUPT SERVICE ROUTINE GOES HERE
- ;******************************************************************************
- ; Note the 16F1936 family automatically handles context restoration for
- ; W, STATUS, BSR, FSR, and PCLATH where previous templates for 16F families
- ; required manual restoration
- ;******************************************************************************
- ; MAIN PROGRAM
- ;******************************************************************************
- START
- PAGESEL Init_System_Clock
- CALL Init_System_Clock
- PAGESEL $
-
- PAGESEL Init_Watch_Dog
- CALL Init_Watch_Dog
- PAGESEL $
-
- ; BANKSEL Zhuan_Su_H_1
- ; MOVLW 0XFF
- ; MOVWF Zhuan_Su_H_1
- ; MOVLW 0X01
- ; MOVWF Zhuan_Su_L_1
- ; MOVLW 0X00
- ; MOVWF Zhuan_Su_H_2
- ; MOVLW 0XFF
- ; MOVWF Zhuan_Su_L_2
- ; MOVLW 0XEE
- ; MOVWF Zhuan_Su_H_3
- ; MOVLW 0X03
- ; MOVWF Zhuan_Su_L_3
- ;
- ; MOVLW LOW Zhuan_Su_H_1
- ; MOVWF FSR0L
- ; MOVLW HIGH Zhuan_Su_H_1
- ; MOVWF FSR0H
- ; PAGESEL D_Pai_Xu_3Byte
- ; CALL D_Pai_Xu_3Byte
- ; PAGESEL $
-
-
- ; BANKSEL Biao_Wen_1
- ; MOVLW 0X01
- ; MOVWF Biao_Wen_1
- ; MOVLW 0X00
- ; MOVWF Biao_Wen_2
- ; MOVLW 0X00
- ; MOVWF Biao_Wen_3
- ;
- ; MOVLW LOW Biao_Wen_1
- ; MOVWF FSR0L
- ; MOVLW HIGH Biao_Wen_1
- ; MOVWF FSR0H
- ; PAGESEL Pai_Xu_3Byte
- ; CALL Pai_Xu_3Byte
- ; PAGESEL $
-
-
-
- PAGESEL Init_IO
- CALL Init_IO
- PAGESEL $
-
- PAGESEL Clear_All_GPRAM
- CALL Clear_All_GPRAM
- PAGESEL $
-
- ; PAGESEL Wa_Si_ChaZhi
- ; CALL Wa_Si_ChaZhi
- ; PAGESEL $
-
- MOVLW 0X03
- BANKSEL B_W_LB_Count ;采用中值濾波 將N=3
- MOVWF B_W_LB_Count
-
- ; MOVLW 0X01
- ; BANKSEL Alarm_Wa_Si_H
- ; MOVWF Alarm_Wa_Si_H
- ; MOVLW 0X90
- ; MOVWF Alarm_Wa_Si_L
-
- PAGESEL Init_SSP
- CALL Init_SSP
- PAGESEL $
- PAGESEL Init_Mcp2515
- CALL Init_Mcp2515
- PAGESEL $
-
- PAGESEL Init_Timer0_1S
- CALL Init_Timer0_1S
- PAGESEL $
-
- PAGESEL Init_Timer2_10MS
- CALL Init_Timer2_10MS
- PAGESEL $
-
- PAGESEL Init_Timer4_100MS
- CALL Init_Timer4_100MS
- PAGESEL $
-
- PAGESEL Read_Mile_From_EEPROM
- CALL Read_Mile_From_EEPROM
- PAGESEL $
-
- PAGESEL Read_Data_From_EEPROM
- CALL Read_Data_From_EEPROM
- PAGESEL $
-
- PAGESEL Read_W_L_From_EEPROM
- CALL Read_W_L_From_EEPROM
- PAGESEL $
-
- PAGESEL Read_BD_From_EEPROM
- CALL Read_BD_From_EEPROM
- PAGESEL $
-
- PAGESEL Alarm_Data_Handle
- CALL Alarm_Data_Handle
- PAGESEL $
-
- BANKSEL Speed_Count
- CLRF Speed_Count
- BANKSEL ZhuanSu_Count
- CLRF ZhuanSu_Count
- BANKSEL Wa_Si_Count
- CLRF Wa_Si_Count
- BANKSEL TMR1L
- CLRF TMR1L
- CLRF TMR1H
- MOVLW B'00110100'
- MOVWF T1CON
-
- BANKSEL Flag
- CLRF Flag
- BANKSEL CCP1CON
- CLRF CCP1CON
- CLRF CCP2CON
-
- CLRF CCPR1L
- CLRF CCPR1H
- CLRF CCPR2L
- CLRF CCPR2H
-
- MOVLW B'00000101'
- MOVWF CCP1CON
- MOVLW B'00000101'
- MOVWF CCP2CON
-
- BANKSEL CCP3CON
- CLRF CCP3CON
- MOVLW B'00000111'
- MOVWF CCP3CON
- CLRF CCPR3L
- CLRF CCPR3H
-
- BANKSEL PIR1
- BCF PIR1,TMR2IF
- BCF PIR3,TMR4IF
- BCF PIR1,CCP1IF
- BCF PIR2,CCP2IF
- BANKSEL PIR3
- BCF PIR3,CCP3IF
- BANKSEL PIE1
- BSF PIE1,TMR2IE
- BSF PIE3,TMR4IE
- BSF PIE1,CCP1IE
- BSF PIE2,CCP2IE
- BANKSEL PIE3
- BSF PIE3,CCP3IE
- BANKSEL T4CON
- BSF T4CON,TMR4ON
- BANKSEL T1CON
- BSF T1CON,TMR1ON
- BSF T2CON,TMR2ON
- BCF INTCON,TMR0IF
- ;BSF INTCON,TMR0IE
- BSF INTCON,PEIE
- BSF INTCON,GIE
- MAIN
- ; PAGESEL CAN_BUS_TRANSMIT
- ; CALL CAN_BUS_TRANSMIT
- ; PAGESEL $
-
- PAGESEL AD_Sample
- CALL AD_Sample
- PAGESEL $
-
- PAGESEL Voltage_Calculate
- CALL Voltage_Calculate
- PAGESEL $
-
-
- ;**************************************
- ; ;瓦斯處理
- ; MOVLW 0X00
- ; BANKSEL AN0_RESH
- ; SUBWF AN0_RESH,W
- ; BTFSS STATUS,C
- ; GOTO Wa_Si_Next_1
- ; GOTO Wa_Si_Next_2
- ;Wa_Si_Next_1
- ; BANKSEL Wa_Si_N_D ;<80
- ; MOVLW 0X55 ;斷線
- ; MOVWF Wa_Si_N_D
- ; GOTO Wa_Si_Clear
- ;Wa_Si_Next_2
- ; BTFSS STATUS,Z
- ; GOTO Wa_Si_Next_3
- ; GOTO Wa_Si_Next_4
- ;Wa_Si_Next_3
- ; ;>=80 根據(jù)電壓計算濃度
- ; BANKSEL AN0_RESH
- ; MOVF AN0_RESH,W
- ; BANKSEL SOUH
- ; MOVWF SOUH
- ; BANKSEL AN0_RESL
- ; MOVF AN0_RESL,W
- ; BANKSEL SOU
- ; MOVWF SOU
- ; MOVLW 0X00
- ; BANKSEL RLTH
- ; MOVWF RLTH
- ; MOVLW 0X50
- ; MOVWF RLT
- ;
- ; PAGESEL DUSUB
- ; CALL DUSUB
- ; PAGESEL $
- ;
- ; MOVLW 0X00
- ; BANKSEL RLTH
- ; MOVWF RLTH
- ; MOVLW 0X08
- ; MOVWF RLT
- ;
- ; PAGESEL DUDIV
- ; CALL DUDIV
- ; PAGESEL $
- ;
- ; BANKSEL SOU
- ; MOVF SOU,W
- ; BANKSEL Wa_Si_N_D
- ; MOVWF Wa_Si_N_D
- ; GOTO Wa_Si_Clear
- ;Wa_Si_Next_4
- ; MOVLW 0X50
- ; BANKSEL AN0_RESL
- ; SUBWF AN0_RESL,W
- ; BTFSS STATUS,C
- ; GOTO Wa_Si_Next_1
- ; GOTO Wa_Si_Next_3
- ;Wa_Si_Clear
- ;和瓦斯報警關聯(lián)的處理
- ;**************************************
-
- PAGESEL Wen_Du_Cha_Zhi
- CALL Wen_Du_Cha_Zhi ;根據(jù)標定計算各個溫度差值
- PAGESEL $
-
- Biao_Wen_BD
- BANKSEL AN5_RESH
- MOVF AN5_RESH,W
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
F_B_Z_J_V2.0.2012.8.29.rar
(1.21 MB, 下載次數(shù): 28)
2018-8-19 01:08 上傳
點擊文件名下載附件
PIC單片機CAN總線 下載積分: 黑幣 -5
|