|
Простейшая программа "мигающий светодиод" на PIC16 исполняется а при переходе на PIC18 исполняется только в MPLABе. __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H INIT_A EQU b'11101111' ORG 0x0000 ;High priority interrupt vector ; *** low priority interrupt code goes here *** bcf PORTE,0 movlw kTMR0H Int_Exit movff Int_BSR,BSR ;restore BSR register main clrf PIR1 movlw kTMR0H bsf PORTE,0 tay movlw 0xFF tay1 movlw 0xFF END
E-mail:
info@telesys.ru
;**********************************************************************
; M009 *
;**********************************************************************
LIST P=18F452, F=INHX32
#include
__CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_45_2L & _PWRT_ON_2L
__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
__CONFIG _CONFIG3H, _CCP2MX_ON_3H
__CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_ON_4L
__CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
__CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
__CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
__CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
__CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
__CONFIG _CONFIG7H, _EBTRB_OFF_7H
cblock 0x000
caunt1,caunt2,Int_W,Int_Status,Int_BSR,caunt11,caunt21
endc
INIT_B EQU 0x00
INIT_C EQU b'10111001'
INIT_DI EQU 0xFF
INIT_E EQU 0x00
ADC1 EQU b'00000010'
kTMR0H EQU 0xAF
kTMR0L EQU 0xA0
goto main
ORG 0x0008
movwf Int_W ;save working register
movff STATUS,Int_Status ;save STATUS register
movff BSR,Int_BSR ;save BSR register
btfss INTCON,TMR0IE
goto Int_Exit
btfss INTCON,TMR0IF
goto Int_Exit
bcf INTCON,TMR0IF
bcf INTCON,TMR0IE
call tay1
call tay1
movwf TMR0H
movlw kTMR0L
movwf TMR0L
bcf INTCON,TMR0IF
bsf INTCON,TMR0IE
movf Int_W,W ;restore working register
movff Int_Status,STATUS ;restore STATUS register
retfie
clrf PIR2
clrf PIE1
clrf PIE2
movlw b'00011111'
movwf RCON
movlw ADC1
movwf ADCON1
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTD
clrf PORTE
movlw INIT_A
movwf TRISA
movlw INIT_B
movwf TRISB
movlw INIT_C
movwf TRISC
movlw INIT_DI
movwf TRISD
movlw INIT_E
movwf TRISE
movlw b'11001000'
movwf T0CON
movwf TMR0H
movlw kTMR0L
movwf TMR0L
bcf INTCON,TMR0IF
bsf INTCON,TMR0IE
bsf INTCON,PEIE
bsf INTCON,GIE
mrr01 call tay
goto mrr01
movwf caunt1
tay02 movlw 0xFF
movwf caunt2
tay01 decfsz caunt2,f
goto tay01
decfsz caunt1,f
goto tay02
return
movwf caunt11
tay12 movlw 0xFF
movwf caunt21
tay11 decfsz caunt21,f
goto tay11
decfsz caunt11,f
goto tay12
return
Ответы