summaryrefslogtreecommitdiffstats
path: root/test/gputils/blinker18/blinker_18.asm
diff options
context:
space:
mode:
Diffstat (limited to 'test/gputils/blinker18/blinker_18.asm')
-rw-r--r--test/gputils/blinker18/blinker_18.asm59
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
+
+