All pastes #2108091 Raw Edit

Stuff

public text v1 · immutable
#2108091 ·published 2012-01-31 11:08 UTC
rendered paste body
	include include/p12f683.inc

	org 0
	bcf status, 5 ; go bank 0
	movlw 0x07 ; cmcon is here
	movwf cmcon0
	bsf status, 5 ; go bank 1
	clrw
	bcf ansel, 0
	bcf ansel, 1
	bcf ansel, 2
	bcf trisio, 0
	bcf trisio, 1
	bcf trisio, 2
	bcf status, 5 ; back to 0 for gpio
	clrf gpio

	; set scan limit
	movlw 0x0B
	movwf 0x20
	movlw 1
	movwf 0x03
	call setnum

	; enable code B decoding
	movlw 0x09
	movwf 0x20
	movlw 0xFF
	movwf 0x21
	call setnum

	; disable shutdown mode
	movlw 0x0C
	movwf 0x20
	movlw 1
	movwf 0x21
	call setnum

	; end display test
	movlw 0x0F
	movwf 0x20
	movlw 0
	movwf 0x21
	call setnum

	; set intensity
	movlw 0x0A
	movwf 0x20
	movlw 0x00
	movwf 0x21
	call setnum

	; set a number
	movlw 0x04
	movwf 0x20
	movlw 0x03
	movwf 0x21
	call setnum
	movlw 0x03
	movwf 0x20
	movlw 0x02
	movwf 0x21
	call setnum
	movlw 0x02
	movwf 0x20
	movlw 0x01
	movwf 0x21
	call setnum
	movlw 0x01
	movwf 0x20
	movlw 0x00
	movwf 0x21
	call setnum

loop
	; endless loop
	goto loop

; set register of max7219 chip, 
; [0x20] = address
; [0x21] = data
; gp0 = data
; gp1 = clock
setnum
	bcf gpio, 2 ; load low
; byte 1, address
	movlw 0x80
	movwf 0x22
bita
	bcf gpio, 0
	andwf 0x20, w
	btfss status, z
	bsf gpio, 0
	call sleep
	call clock
	rrf 0x22, w ; next bit
	btfsc status, c
	goto enda
	movwf 0x22
	goto bita
enda
; byte 2, data
	movlw 0x80
	movwf 0x22
bitb
	bcf gpio, 0
	andwf 0x21, w
	btfss status, z
	bsf gpio, 0
	call sleep
	call clock
	rrf 0x22, w ; next bit
	btfsc status, c
	goto endb
	movwf 0x22
	goto bitb
endb
	bsf gpio, 2 ; load high
	call sleep
	return
clock
	bsf gpio, 1
	call sleep
	bcf gpio, 1
	call sleep
	return

sleep
	clrf 0x25
dlay
		clrf 0x26
dlay1
		clrf 0x27
		decfsz 0x26, f
		goto dlay1
	decfsz 0x25, f
	goto dlay
	return

	org 0x2007
	data _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _FCMEN_OFF & _IESO_OFF