PIC16F84電子遊戯(26)サブページ
最終更新日:2001年6月6日
マトリックス128(1ページ)へ

マトリックス128の全ソースリスト公開
;**********************************************************************
;    Filename:	    matrix6.asm                                       *
;    Date:          2001/6/3                                        *
;    File Version:                                                    *
;**********************************************************************

	list      p=16F84             ; list directive to define processor
	#include <p16F84.inc>         ; processor specific variable definitions

	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

;***** VARIABLE DEFINITIONS
w_temp        EQU     0x0C        ; variable used for context saving 
status_temp   EQU     0x0D        ; variable used for context saving

wait_data		EQU	0x10		;wait data
retu_pointa	EQU	0x11		;retu pointa
count_sub2	EQU	0x12		;count sub2 data

taihi		EQU	0x13		;taihi data
moji_mode		EQU	0x14		;moji mode ram

count_data	EQU	0x15		;0.1sec keisoku count ram

moji1		EQU	0x18		;moji(1)
moji2		EQU	0x19		;moji(2)
moji3		EQU	0x1a		;moji(3)
taihi2		EQU	0x1b		;taihi data2

led_data0		EQU	0x20		;LED DATA(0)
led_data1		EQU	0x21		;LED DATA(1)
led_data2		EQU	0x22		;LED DATA(2)
led_data3		EQU	0x23		;LED DATA(3)
led_data4		EQU	0x24		;LED DATA(4)
led_data5		EQU	0x25		;LED DATA(5)
led_data6		EQU	0x26		;LED DATA(6)
led_data7		EQU	0x27		;LED DATA(7)
led_data8		EQU	0x28		;LED DATA(8)
led_data9		EQU	0x29		;LED DATA(9)
led_data10	EQU	0x2a		;LED DATA(10)
led_data11	EQU	0x2b		;LED DATA(11)
led_data12	EQU	0x2c		;LED DATA(12)
led_data13	EQU	0x2d		;LED DATA(13)
led_data14	EQU	0x2e		;LED DATA(14)
led_data15	EQU	0x2f		;LED DATA(15)

tm0_setdata	EQU	63h		;255-156=99=63H  156*128=19.968msec
cnt_setdata	EQU	05h		;19.968*5=99.84msec

moji_A		EQU	01h
moji_B		EQU	02h
moji_C		EQU	03h
moji_D		EQU	04h
moji_E		EQU	05h
moji_F		EQU	06h
moji_G		EQU	07h
moji_H		EQU	08h
moji_I		EQU	09h
moji_J		EQU	0ah
moji_K		EQU	0bh
moji_L		EQU	0ch
moji_M		EQU	0dh
moji_N		EQU	0eh
moji_O		EQU	0fh
moji_P		EQU	10h
moji_Q		EQU	11h
moji_R		EQU	12h
moji_S		EQU	13h
moji_T		EQU	14h
moji_U		EQU	15h
moji_V		EQU	16h
moji_W		EQU	17h
moji_X		EQU	18h
moji_Y		EQU	19h
moji_Z		EQU	1ah
moji_sp		EQU	1bh
moji_mk		EQU	1ch
moji_love		EQU	1dh
moji_1		EQU	1eh
moji_2		EQU	1fh
moji_3		EQU	20h
moji_4		EQU	21h
moji_5		EQU	22h
moji_6		EQU	23h
moji_7		EQU	24h
moji_8		EQU	25h
moji_9		EQU	26h
moji_0		EQU	27h
moji_co		EQU	28h
moji_kara		EQU	29h
moji_tasu		EQU	2ah
moji_hiku		EQU	2bh
moji_kake		EQU	2ch
moji_waru		EQU	2dh
moji_eq		EQU	2eh
moji_ten		EQU	2fh
moji_hate		EQU	30h
moji_dai		EQU	31h
moji_shou		EQU	32h
moji_up		EQU	33h
moji_right	EQU	34h
moji_down		EQU	35h
moji_left		EQU	36h
moji_daiya	EQU	37h
moji_sha		EQU	38h
moji_dot		EQU	39h
moji_par		EQU	3ah
moji_do		EQU	3bh
;**********************************************************************
		ORG     0x000             ; processor reset vector
  		goto    main              ; go to beginning of program

;----------------------------------------------------------------------------------
		ORG     0x004             ; interrupt vector location
		movwf   w_temp            ; save off current W register contents
		movf	STATUS,w          ; move status register into W register
		movwf	status_temp       ; save off contents of STATUS register

		;---------------------------------	
		bcf	INTCON,T0IF
		movlw	tm0_setdata
		movwf	TMR0

		decfsz	count_data,1
		goto	int_end
time_up		movlw	cnt_setdata		
		movwf	count_data
		;--------------------------------
		call	retu_shift
int_end
		;----------------------------------
		movf    status_temp,w     ; retrieve copy of STATUS register
		movwf	STATUS            ; restore pre-isr STATUS register contents
		swapf   w_temp,f
		swapf   w_temp,w          ; restore pre-isr W register contents
		retfie                    ; return from interrupt
;---------------------------------------------------------------------------------------
main
		call	port_set
		movlw	00h		;port initial set
		movwf	PORTA
		movlw	0ffh
		movwf	PORTB

		movlw	01h
		movwf	moji_mode

		call	count_init
		movf	count_sub2,0
		call	moji_set_sub2
		call	led_set_sub0

		call	timer0_set
		movlw	cnt_setdata
		movwf	count_data

main_loop
;-------------------------------------- key scan
sw1_key		btfsc	PORTA,4
		goto	next_key
		call	wait_1
		btfsc	PORTA,4
		goto	next_key
					;sw1 on
		call	moji_shift
		call	count_init
		movf	count_sub2,0
		call	moji_set_sub2
		call	led_set_sub0
		
sw1_end		btfss	PORTA,4
		goto	sw1_end
next_key
;-------------------------------------- led disp
		movlw	00h
		movwf	PORTA
		movf	led_data0,0
		movwf	PORTB
		call	wait_1

		movlw	01h
		movwf	PORTA
		movf	led_data1,0
		movwf	PORTB
		call	wait_1

		movlw	02h
		movwf	PORTA
		movf	led_data2,0
		movwf	PORTB
		call	wait_1

		movlw	03h
		movwf	PORTA
		movf	led_data3,0
		movwf	PORTB
		call	wait_1

		movlw	04h
		movwf	PORTA
		movf	led_data4,0
		movwf	PORTB
		call	wait_1

		movlw	05h
		movwf	PORTA
		movf	led_data5,0
		movwf	PORTB
		call	wait_1

		movlw	06h
		movwf	PORTA
		movf	led_data6,0
		movwf	PORTB
		call	wait_1

		movlw	07h
		movwf	PORTA
		movf	led_data7,0
		movwf	PORTB
		call	wait_1

		movlw	08h
		movwf	PORTA
		movf	led_data8,0
		movwf	PORTB
		call	wait_1

		movlw	09h
		movwf	PORTA
		movf	led_data9,0
		movwf	PORTB
		call	wait_1

		movlw	0ah
		movwf	PORTA
		movf	led_data10,0
		movwf	PORTB
		call	wait_1

		movlw	0bh
		movwf	PORTA
		movf	led_data11,0
		movwf	PORTB
		call	wait_1

		movlw	0ch
		movwf	PORTA
		movf	led_data12,0
		movwf	PORTB
		call	wait_1

		movlw	0dh
		movwf	PORTA
		movf	led_data13,0
		movwf	PORTB
		call	wait_1

		movlw	0eh
		movwf	PORTA
		movf	led_data14,0
		movwf	PORTB
		call	wait_1

		movlw	0fh
		movwf	PORTA
		movf	led_data15,0
		movwf	PORTB
		call	wait_1
;---------------------------------------
main_next
		goto	main_loop
;-------------------------------------------------------------------------------
led_set_sub0	btfsc	retu_pointa,0
		goto	led_set_s0
		btfsc	retu_pointa,1
		goto	led_set_s1
		btfsc	retu_pointa,2
		goto	led_set_s2
		btfsc	retu_pointa,3
		goto	led_set_s3
		btfsc	retu_pointa,4
		goto	led_set_s4
		btfsc	retu_pointa,5
		goto	led_set_s5
		btfsc	retu_pointa,6
		goto	led_set_s6
		goto	led_set_s7

led_set_s0	movf	moji1,0
		call	led_data_line0
		movwf	led_data0
		movf	moji1,0
		call	led_data_line1
		movwf	led_data1
		movf	moji1,0
		call	led_data_line2
		movwf	led_data2
		movf	moji1,0
		call	led_data_line3
		movwf	led_data3
		movf	moji1,0
		call	led_data_line4
		movwf	led_data4
		movf	moji1,0
		call	led_data_line5
		movwf	led_data5
		movf	moji1,0
		call	led_data_line6
		movwf	led_data6
		movf	moji1,0
		call	led_data_line7
		movwf	led_data7
		movf	moji2,0
		call	led_data_line0
		movwf	led_data8
		movf	moji2,0
		call	led_data_line1
		movwf	led_data9
		movf	moji2,0
		call	led_data_line2
		movwf	led_data10
		movf	moji2,0
		call	led_data_line3
		movwf	led_data11
		movf	moji2,0
		call	led_data_line4
		movwf	led_data12
		movf	moji2,0
		call	led_data_line5
		movwf	led_data13
		movf	moji2,0
		call	led_data_line6
		movwf	led_data14
		movf	moji2,0
		call	led_data_line7
		movwf	led_data15
		return
led_set_s1	call	retu_data_shift	
		movf	moji3,0
		call	led_data_line0
		movwf	led_data15
		return
led_set_s2	call	retu_data_shift		
		movf	moji3,0
		call	led_data_line1
		movwf	led_data15
		return
led_set_s3	call	retu_data_shift
		movf	moji3,0
		call	led_data_line2
		movwf	led_data15
		return
led_set_s4	call	retu_data_shift
		movf	moji3,0
		call	led_data_line3
		movwf	led_data15
		return
led_set_s5	call	retu_data_shift
		movf	moji3,0
		call	led_data_line4
		movwf	led_data15
		return
led_set_s6	call	retu_data_shift
		movf	moji3,0
		call	led_data_line5
		movwf	led_data15
		return
led_set_s7	call	retu_data_shift
		movf	moji3,0
		call	led_data_line6
		movwf	led_data15
		return
;-------------------------------------------------------------------------------
retu_data_shift
		movf	led_data1,0
		movwf	led_data0
		movf	led_data2,0
		movwf	led_data1
		movf	led_data3,0
		movwf	led_data2
		movf	led_data4,0
		movwf	led_data3
		movf	led_data5,0
		movwf	led_data4
		movf	led_data6,0
		movwf	led_data5
		movf	led_data7,0
		movwf	led_data6
		movf	led_data8,0
		movwf	led_data7
		movf	led_data9,0
		movwf	led_data8
		movf	led_data10,0
		movwf	led_data9
		movf	led_data11,0
		movwf	led_data10
		movf	led_data12,0
		movwf	led_data11
		movf	led_data13,0
		movwf	led_data12
		movf	led_data14,0
		movwf	led_data13
		movf	led_data15,0
		movwf	led_data14
		return
;-------------------------------------------------------------------------------
count_init	movlw	00h
		movwf	count_sub2
		movlw	01h
		movwf	retu_pointa
		return
;-------------------------------------------------------------------------------
retu_shift	btfss	retu_pointa,7
		goto	retu_shift2
		movlw	01h
		movwf	retu_pointa
		incf	count_sub2,1	
		movf	count_sub2,0
		call	moji_set_sub2
		movf	moji3,0
		skpz
		goto	retu_shift4
		call	count_init
		movf	count_sub2,0
		call	moji_set_sub2
		goto	retu_shift3
retu_shift4	call	led_set_sub0
		return
retu_shift2	rlf	retu_pointa,1
		bcf	retu_pointa,0
retu_shift3	call	led_set_sub0				
		return
;-------------------------------------------------------------------------------
moji_shift	btfss	moji_mode,3
		goto	moji_shift2
		movlw	01h
		movwf	moji_mode
		return
moji_shift2	rlf	moji_mode,1
		bcf	moji_mode,0
		return		
;-------------------------------------------------------------------------------
moji_set_sub2	btfsc	moji_mode,0
		goto	moji_set_sub20
		btfsc	moji_mode,1
		goto	moji_set_sub21
		btfsc	moji_mode,2
		goto	moji_set_sub22
		goto	moji_set_sub23
moji_set_sub20	movwf	taihi2
		call	moji_set0
		movwf	moji1
		movf	taihi2,0
		addlw	1
		call	moji_set0
		movwf	moji2
		movf	taihi2,0
		addlw	2
		call	moji_set0
		movwf	moji3
		return
moji_set_sub21	movwf	taihi2
		call	moji_set1
		movwf	moji1
		movf	taihi2,0
		addlw	1
		call	moji_set1
		movwf	moji2
		movf	taihi2,0
		addlw	2
		call	moji_set1
		movwf	moji3
		return
moji_set_sub22	movwf	taihi2
		call	moji_set2
		movwf	moji1
		movf	taihi2,0
		addlw	1
		call	moji_set2
		movwf	moji2
		movf	taihi2,0
		addlw	2
		call	moji_set2
		movwf	moji3
		return
moji_set_sub23	movwf	taihi2
		call	moji_set3
		movwf	moji1
		movf	taihi2,0
		addlw	1
		call	moji_set3
		movwf	moji2
		movf	taihi2,0
		addlw	2
		call	moji_set3
		movwf	moji3
		return
;-------------------------------------------------------------------------------
moji_set0		movwf	taihi
		movlw	low(moji00)
		addwf	taihi,1
		movlw	high(moji00)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
moji00		retlw	moji_T
		retlw	moji_A
		retlw	moji_K
		retlw	moji_E
		retlw	moji_sp
		retlw	moji_M
		retlw	moji_E
		retlw	moji_sp
		retlw	moji_W
		retlw	moji_I
		retlw	moji_T
		retlw	moji_H
		retlw	moji_sp
		retlw	moji_Y
		retlw	moji_O
		retlw	moji_U
		retlw	moji_mk
		retlw	moji_sp
		retlw	moji_T
		retlw	moji_A
		retlw	00h
;-------------------------------------------------------------------------------
moji_set1		movwf	taihi
		movlw	low(moji10)
		addwf	taihi,1
		movlw	high(moji10)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
moji10		retlw	moji_A
		retlw	moji_R
		retlw	moji_E
		retlw	moji_sp
		retlw	moji_Y
		retlw	moji_O
		retlw	moji_U
		retlw	moji_sp
		retlw	moji_I
		retlw	moji_N
		retlw	moji_sp
		retlw	moji_A
		retlw	moji_sp
		retlw	moji_H
		retlw	moji_U
		retlw	moji_R
		retlw	moji_R
		retlw	moji_Y
		retlw	moji_hate
		retlw	moji_sp
		retlw	moji_A
		retlw	moji_R
		retlw	00h
;-------------------------------------------------------------------------------
moji_set2		movwf	taihi
		movlw	low(moji20)
		addwf	taihi,1
		movlw	high(moji20)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
moji20		retlw	moji_T
		retlw	moji_H
		retlw	moji_I
		retlw	moji_S
		retlw	moji_sp
		retlw	moji_I
		retlw	moji_S
		retlw	moji_sp
		retlw	moji_A
		retlw	moji_N
		retlw	moji_sp
		retlw	moji_E
		retlw	moji_M
		retlw	moji_E
		retlw	moji_R
		retlw	moji_G
		retlw	moji_E
		retlw	moji_N
		retlw	moji_C
		retlw	moji_Y
		retlw	moji_mk
		retlw	moji_sp
		retlw	moji_T
		retlw	moji_H
		retlw	00h
;-------------------------------------------------------------------------------
moji_set3		movwf	taihi
		movlw	low(moji30)
		addwf	taihi,1
		movlw	high(moji30)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
moji30		retlw	moji_T
		retlw	moji_I
		retlw	moji_M
		retlw	moji_E
		retlw	moji_sp
		retlw	moji_L
		retlw	moji_I
		retlw	moji_M
		retlw	moji_I
		retlw	moji_T
		retlw	moji_sp
		retlw	moji_9
		retlw	moji_co
		retlw	moji_5
		retlw	moji_3
		retlw	moji_sp
		retlw	moji_T
		retlw	moji_I
		retlw	00h
;-------------------------------------------------------------------------------
led_data_line0	movwf	taihi
		movlw	low(table0)
		addwf	taihi,1
		movlw	high(table0)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table0		retlw	0ffh		;
		retlw	0c0h		;A
		retlw	00h		;B
		retlw	81h		;C
		retlw	00h		;D
		retlw	00h		;E
		retlw	00h		;F
		retlw	81h		;G
		retlw	00h		;H
		retlw	0ffh		;I
		retlw	0f9h		;J
		retlw	00h		;K
		retlw	00h		;L
		retlw	00h		;M
		retlw	00h		;N
		retlw	81h		;O
		retlw	00h		;P
		retlw	81h		;Q
		retlw	00h		;R
		retlw	9dh		;S
		retlw	7fh		;T
		retlw	01h		;U
		retlw	1fh		;V
		retlw	01h		;W
		retlw	3ch		;X
		retlw	0fh		;Y
		retlw	7ch		;Z
		retlw	0ffh		;
		retlw	0fch		;!
		retlw	87h		;love
		retlw	0ffh		;1
		retlw	9ch		;2
		retlw	99h		;3
		retlw	0e3h		;4
		retlw	09h		;5
		retlw	81h		;6
		retlw	1fh		;7
		retlw	99h		;8
		retlw	8dh		;9
		retlw	81h		;0
		retlw	0ffh		;:
		retlw	0e7h		;~
		retlw	0e7h		;+
		retlw	0e7h		;-
		retlw	0bdh		;*
		retlw	0e7h		;waru
		retlw	99h		;=
		retlw	0ffh		;po
		retlw	9fh		;?
		retlw	0e7h		;<
		retlw	3ch		;>
		retlw	0efh		;up
		retlw	0c7h		;right
		retlw	0f7h		;down
		retlw	0efh		;left
		retlw	0e7h		;daiya
		retlw	99h		;#
		retlw	0ffh		;.
		retlw	1ch		;%
		retlw	1fh		;do
;-------------------------------------------------------------------------------
led_data_line1	movwf	taihi
		movlw	low(table1)
		addwf	taihi,1
		movlw	high(table1)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table1		retlw	0ffh		;
		retlw	80h		;A
		retlw	00h		;B
		retlw	00h		;C
		retlw	00h		;D
		retlw	00h		;E
		retlw	00h		;F
		retlw	00h		;G
		retlw	00h		;H
		retlw	7eh		;I
		retlw	0f8h		;J
		retlw	00h		;K
		retlw	00h		;L
		retlw	00h		;M
		retlw	00h		;N
		retlw	00h		;O
		retlw	00h		;P
		retlw	00h		;Q
		retlw	00h		;R
		retlw	0ch		;S
		retlw	7fh		;T
		retlw	00h		;U
		retlw	07h		;V
		retlw	00h		;W
		retlw	18h		;X
		retlw	07h		;Y
		retlw	78h		;Z
		retlw	0ffh		;
		retlw	0fch		;!
		retlw	03h		;love
		retlw	0beh		;1
		retlw	18h		;2
		retlw	18h		;3
		retlw	83h		;4
		retlw	08h		;5
		retlw	00h		;6
		retlw	1fh		;7
		retlw	00h		;8
		retlw	04h		;9
		retlw	00h		;0
		retlw	0ffh		;:
		retlw	0cfh		;~
		retlw	0e7h		;+
		retlw	0e7h		;-
		retlw	99h		;*
		retlw	0e7h		;waru
		retlw	99h		;=
		retlw	0f7h		;po
		retlw	1fh		;?
		retlw	0c3h		;<
		retlw	3ch		;>
		retlw	0cfh		;up
		retlw	0c7h		;right
		retlw	0f3h		;down
		retlw	0c7h		;left
		retlw	0c3h		;daiya
		retlw	00h		;#
		retlw	0f9h		;.
		retlw	58h		;%
		retlw	5fh		;do
;-------------------------------------------------------------------------------
led_data_line2	movwf	taihi
		movlw	low(table2)
		addwf	taihi,1
		movlw	high(table2)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table2		retlw	0ffh		;
		retlw	33h		;A
		retlw	66h		;B
		retlw	3ch		;C
		retlw	7eh		;D
		retlw	66h		;E
		retlw	67h		;F
		retlw	3ch		;G
		retlw	0e7h		;H
		retlw	00h		;I
		retlw	0fch		;J
		retlw	0c3h		;K
		retlw	0feh		;L
		retlw	9fh		;M
		retlw	0c7h		;N
		retlw	3ch		;O
		retlw	67h		;P
		retlw	7eh		;Q
		retlw	67h		;R
		retlw	06h		;S
		retlw	00h		;T
		retlw	0fch		;U
		retlw	0c1h		;V
		retlw	0f8h		;W
		retlw	81h		;X
		retlw	0e0h		;Y
		retlw	70h		;Z
		retlw	0ffh		;
		retlw	0e3h		;!
		retlw	01h		;love
		retlw	00h		;1
		retlw	78h		;2
		retlw	7eh		;3
		retlw	3bh		;4
		retlw	6eh		;5
		retlw	66h		;6
		retlw	7fh		;7
		retlw	66h		;8
		retlw	66h		;9
		retlw	7eh		;0
		retlw	99h		;:
		retlw	0c7h		;~
		retlw	00h		;+
		retlw	0e7h		;-
		retlw	0c3h		;*
		retlw	24h		;waru
		retlw	99h		;=
		retlw	0c3h		;po
		retlw	7fh		;?
		retlw	81h		;<
		retlw	18h		;>
		retlw	81h		;up
		retlw	0c7h		;right
		retlw	81h		;down
		retlw	83h		;left
		retlw	81h		;daiya
		retlw	00h		;#
		retlw	0f0h		;.
		retlw	11h		;%
		retlw	81h		;do
;-------------------------------------------------------------------------------
led_data_line3	movwf	taihi
		movlw	low(table3)
		addwf	taihi,1
		movlw	high(table3)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table3		retlw	0ffh		;
		retlw	33h		;A
		retlw	66h		;B
		retlw	7eh		;C
		retlw	7eh		;D
		retlw	66h		;E
		retlw	67h		;F
		retlw	66h		;G
		retlw	0e7h		;H
		retlw	00h		;I
		retlw	7eh		;J
		retlw	81h		;K
		retlw	0feh		;L
		retlw	0c7h		;M
		retlw	0e3h		;N
		retlw	7eh		;O
		retlw	67h		;P
		retlw	72h		;Q
		retlw	61h		;R
		retlw	66h		;S
		retlw	00h		;T
		retlw	0feh		;U
		retlw	0f0h		;V
		retlw	0c1h		;W
		retlw	0c3h		;X
		retlw	0e0h		;Y
		retlw	42h		;Z
		retlw	0ffh		;
		retlw	83h		;!
		retlw	80h		;love
		retlw	00h		;1
		retlw	72h		;2
		retlw	66h		;3
		retlw	00h		;4
		retlw	6eh		;5
		retlw	66h		;6
		retlw	70h		;7
		retlw	66h		;8
		retlw	66h		;9
		retlw	66h		;0
		retlw	99h		;:
		retlw	0e3h		;~
		retlw	00h		;+
		retlw	0e7h		;-
		retlw	00h		;*
		retlw	24h		;waru
		retlw	99h		;=
		retlw	0c3h		;po
		retlw	72h		;?
		retlw	99h		;<
		retlw	99h		;>
		retlw	01h		;up
		retlw	01h		;right
		retlw	80h		;down
		retlw	01h		;left
		retlw	00h		;daiya
		retlw	99h		;#
		retlw	0f0h		;.
		retlw	0c7h		;%
		retlw	00h		;do
;-------------------------------------------------------------------------------
led_data_line4	movwf	taihi
		movlw	low(table4)
		addwf	taihi,1
		movlw	high(table4)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table4		retlw	0ffh		;
		retlw	33h		;A
		retlw	66h		;B
		retlw	7eh		;C
		retlw	3ch		;D
		retlw	66h		;E
		retlw	67h		;F
		retlw	66h		;G
		retlw	0e7h		;H
		retlw	7eh		;I
		retlw	7ch		;J
		retlw	18h		;K
		retlw	0feh		;L
		retlw	9fh		;M
		retlw	0f1h		;N
		retlw	3ch		;O
		retlw	67h		;P
		retlw	78h		;Q
		retlw	60h		;R
		retlw	60h		;S
		retlw	7fh		;T
		retlw	0fch		;U
		retlw	0c1h		;V
		retlw	0f8h		;W
		retlw	81h		;X
		retlw	07h		;Y
		retlw	0eh		;Z
		retlw	0ffh		;
		retlw	07h		;!
		retlw	01h		;love
		retlw	0feh		;1
		retlw	66h		;2
		retlw	66h		;3
		retlw	00h		;4
		retlw	6ch		;5
		retlw	66h		;6
		retlw	60h		;7
		retlw	66h		;8
		retlw	66h		;9
		retlw	7eh		;0
		retlw	0ffh		;:
		retlw	0f3h		;~
		retlw	0e7h		;+
		retlw	0e7h		;-
		retlw	0c3h		;*
		retlw	0e7h		;waru
		retlw	99h		;=
		retlw	0e7h		;po
		retlw	62h		;?
		retlw	18h		;<
		retlw	81h		;>
		retlw	81h		;up
		retlw	83h		;right
		retlw	81h		;down
		retlw	0c7h		;left
		retlw	81h		;daiya
		retlw	00h		;#
		retlw	0f9h		;.
		retlw	88h		;%
		retlw	3ch		;do
;-------------------------------------------------------------------------------
led_data_line5	movwf	taihi
		movlw	low(table5)
		addwf	taihi,1
		movlw	high(table5)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table5		retlw	0ffh		;
		retlw	80h		;A
		retlw	00h		;B
		retlw	18h		;C
		retlw	00h		;D
		retlw	66h		;E
		retlw	67h		;F
		retlw	20h		;G
		retlw	00h		;H
		retlw	0ffh		;I
		retlw	00h		;J
		retlw	3ch		;K
		retlw	0feh		;L
		retlw	00h		;M
		retlw	00h		;N
		retlw	00h		;O
		retlw	07h		;P
		retlw	00h		;Q
		retlw	04h		;R
		retlw	30h		;S
		retlw	7fh		;T
		retlw	00h		;U
		retlw	07h		;V
		retlw	00h		;W
		retlw	18h		;X
		retlw	0fh		;Y
		retlw	1eh		;Z
		retlw	0ffh		;
		retlw	0fh		;!
		retlw	03h		;love
		retlw	0ffh		;1
		retlw	06h		;2
		retlw	00h		;3
		retlw	0fbh		;4
		retlw	60h		;5
		retlw	20h		;6
		retlw	0fh		;7
		retlw	00h		;8
		retlw	00h		;9
		retlw	00h		;0
		retlw	0ffh		;:
		retlw	0f3h		;~
		retlw	0e7h		;+
		retlw	0e7h		;-
		retlw	99h		;*
		retlw	0e7h		;waru
		retlw	99h		;=
		retlw	0ffh		;po
		retlw	0fh		;?
		retlw	3ch		;<
		retlw	0c3h		;>
		retlw	0cfh		;up
		retlw	0c7h		;right
		retlw	0f3h		;down
		retlw	0c7h		;left
		retlw	0c3h		;daiya
		retlw	00h		;#
		retlw	0ffh		;.
		retlw	1ah		;%
		retlw	18h		;do
;-------------------------------------------------------------------------------
led_data_line6	movwf	taihi
		movlw	low(table6)
		addwf	taihi,1
		movlw	high(table6)
		movwf	PCLATH
		addcf	PCLATH,1
		movf	taihi,0
		movwf	PCL
table6		retlw	0ffh		;
		retlw	0c0h		;A
		retlw	99h		;B
		retlw	99h		;C
		retlw	81h		;D
		retlw	7eh		;E
		retlw	7fh		;F
		retlw	31h		;G
		retlw	00h		;H
		retlw	0ffh		;I
		retlw	01h		;J
		retlw	7eh		;K
		retlw	0feh		;L
		retlw	00h		;M
		retlw	00h		;N
		retlw	81h		;O
		retlw	8fh		;P
		retlw	81h		;Q
		retlw	8eh		;R
		retlw	0b9h		;S
		retlw	0ffh		;T
		retlw	01h		;U
		retlw	1fh		;V
		retlw	01h		;W
		retlw	3ch		;X
		retlw	0ffh		;Y
		retlw	3eh		;Z
		retlw	0ffh		;
		retlw	1fh		;!
		retlw	87h		;love
		retlw	0ffh		;1
		retlw	8eh		;2
		retlw	99h		;3
		retlw	0fbh		;4
		retlw	71h		;5
		retlw	0b1h		;6
		retlw	1fh		;7
		retlw	99h		;8
		retlw	81h		;9
		retlw	81h		;0
		retlw	0ffh		;:
		retlw	0e7h		;~
		retlw	0ffh		;+
		retlw	0e7h		;-
		retlw	0bdh		;*
		retlw	0ffh		;waru
		retlw	99h		;=
		retlw	0ffh		;po
		retlw	9fh		;?
		retlw	3ch		;<
		retlw	0e7h		;>
		retlw	0efh		;up
		retlw	0efh		;right
		retlw	0f7h		;down
		retlw	0c7h		;left
		retlw	0e7h		;daiya
		retlw	99h		;#
		retlw	0ffh		;.
		retlw	38h		;%
		retlw	99h		;do
;-------------------------------------------------------------------------------
led_data_line7	retlw	0ffh

;-------------------------------------------------------------------------------
wait_1		
		movlw	0ffh
		movwf	wait_data
wait_2
		decfsz	wait_data,1
		goto	wait_2
		return
;-------------------------------------------------------------------------------
port_set				;RA0,RA1,RA2,RA3(OUT)
					;RA4(IN)
					;RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7(OUT)
		bsf	STATUS,RP0
		clrf	TRISA
		bsf	TRISA,4
		nop
		clrf	TRISB
		bcf	STATUS,RP0
		return
;-------------------------------------------------------------------------------
timer0_set
		bsf	STATUS,RP0
		movlw	086h		;(1)PORTB NOT PULLUP
					;(0)INTEDG
					;(0)TOCS
					;(0)TOSE
					;(0)PSA
					;(110)1/128
		movwf	OPTION_REG
		bcf	STATUS,RP0
		
		movlw	tm0_setdata
		movwf	TMR0
		bsf	INTCON,T0IE
		bsf	INTCON,GIE
		return
;-----------------------------------------------------------------------------
		END                     ; directive 'end of program'
(1ページ)へ戻る

不明点などあればメールお願いいたします。nonchansoft@nifty.com