diff options
Diffstat (limited to 'test/gputils/blinker18/blinker_18.asm')
-rw-r--r-- | test/gputils/blinker18/blinker_18.asm | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/gputils/blinker18/blinker_18.asm b/test/gputils/blinker18/blinker_18.asm new file mode 100644 index 0000000..4a00daf --- /dev/null +++ b/test/gputils/blinker18/blinker_18.asm @@ -0,0 +1,59 @@ +; LIST p=18F452 ;PIC18F452 is the target processor + INCLUDE "p18f452.inc" ;Include file with register defines + + ;Programming Configuration Information + __CONFIG _CONFIG1H, _XT_OSC_1H ;XT HS PLL (10MHz XTAL) + __CONFIG _CONFIG2L, _BOR_ON_2L & _PWRT_ON_2L ;Power-Up timer ON, Brown-out at 2.7V + + __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_1_2H ;WDT OFF for debug + __CONFIG _CONFIG3H, _CCP2MX_OFF_3H ;CCP Module Off + __CONFIG _CONFIG4L, _LVP_OFF_4L & _DEBUG_OFF_4L + + ;UnProtect entire device program space for DEBUG + __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L + __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H + __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L + __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H + +;Assorted miscellaneous general-purpose registers +DlyRegA equ 0x3D ;Temp register for delay +DlyRegB equ 0x3E ;Temp register for delay +DlyRegC equ 0x3F ;Temp register for delay + +STARTUP CODE 0x000 + nop ;Required for ICD Debugging + nop + goto Main + +Main + clrf BSR,A ;Ensure BSR register points to first block + clrf TRISB,A + movlw 0x7 + movwf PORTB,A + +Loop + bsf PORTB,0 ;Turn the LED on + call LongDelay + bcf PORTB,0 ;Turn the LED off + call LongDelay + goto Loop + +;A long delay +LongDelay + movlw H'10' ;Adjust to produce a suitable time delay + movwf DlyRegA +ldelayc movlw H'10' + movwf DlyRegB +ldelayb movlw H'FF' + movwf DlyRegC +ldelaya decfsz DlyRegC,f ;Inner Loop + goto ldelaya + decfsz DlyRegB,f ;Middle Loop + goto ldelayb + decfsz DlyRegA,f ;Outer Loop + goto ldelayc + return + + END + + |