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

マトリックス240の全ソースリスト公開
;**********************************************************************
;    Filename:	    matrix7.asm                                       *
;    Date:          2001/6/10                                        *
;    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

count_data	EQU	0x15		;0.1sec keisoku count ram
retu_ichi		EQU	0x16		;retu ichi

moji1		EQU	0x18		;moji(1)
moji2		EQU	0x19		;moji(2)
moji3		EQU	0x1a		;moji(3)
moji4		EQU	0x1b		;moji(4)
moji5		EQU	0x1c		;moji(5)
taihi2		EQU	0x1d		;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)
led_data16	EQU	0x30		;LED DATA(16)
led_data17	EQU	0x31		;LED DATA(17)
led_data18	EQU	0x32		;LED DATA(18)
led_data19	EQU	0x33		;LED DATA(19)
led_data20	EQU	0x34		;LED DATA(20)
led_data21	EQU	0x35		;LED DATA(21)
led_data22	EQU	0x36		;LED DATA(22)
led_data23	EQU	0x37		;LED DATA(23)
led_data24	EQU	0x38		;LED DATA(24)
led_data25	EQU	0x39		;LED DATA(25)
led_data26	EQU	0x3a		;LED DATA(26)
led_data27	EQU	0x3b		;LED DATA(27)
led_data28	EQU	0x3c		;LED DATA(28)
led_data29	EQU	0x3d		;LED DATA(29)

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

		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
;-------------------------------------- led disp
		movlw	1dh
		movwf	retu_ichi
		movlw	0x3d
		movwf	FSR

disp_loop	movf	retu_ichi,0
		movwf	PORTA
		movf	INDF,0
		movwf	PORTB
		call	wait_1
		decf	FSR,1
		decfsz	retu_ichi,1
		goto	disp_loop
			
		movf	retu_ichi,0
		movwf	PORTA
		movf	INDF,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
		movf	moji3,0
		call	led_data_line0
		movwf	led_data16
		movf	moji3,0
		call	led_data_line1
		movwf	led_data17
		movf	moji3,0
		call	led_data_line2
		movwf	led_data18
		movf	moji3,0
		call	led_data_line3
		movwf	led_data19
		movf	moji3,0
		call	led_data_line4
		movwf	led_data20
		movf	moji3,0
		call	led_data_line5
		movwf	led_data21
		movf	moji3,0
		call	led_data_line6
		movwf	led_data22
		movf	moji3,0
		call	led_data_line7
		movwf	led_data23
		movf	moji4,0
		call	led_data_line0
		movwf	led_data24
		movf	moji4,0
		call	led_data_line1
		movwf	led_data25
		movf	moji4,0
		call	led_data_line2
		movwf	led_data26
		movf	moji4,0
		call	led_data_line3
		movwf	led_data27
		movf	moji4,0
		call	led_data_line4
		movwf	led_data28
		movf	moji4,0
		call	led_data_line5
		movwf	led_data29
		return
led_set_s1	call	retu_data_shift	
		movf	moji4,0
		call	led_data_line6
		movwf	led_data29
		return
led_set_s2	call	retu_data_shift		
		movf	moji4,0
		call	led_data_line7
		movwf	led_data29
		return
led_set_s3	call	retu_data_shift
		movf	moji5,0
		call	led_data_line0
		movwf	led_data29
		return
led_set_s4	call	retu_data_shift
		movf	moji5,0
		call	led_data_line1
		movwf	led_data29
		return
led_set_s5	call	retu_data_shift
		movf	moji5,0
		call	led_data_line2
		movwf	led_data29
		return
led_set_s6	call	retu_data_shift
		movf	moji5,0
		call	led_data_line3
		movwf	led_data29
		return
led_set_s7	call	retu_data_shift
		movf	moji5,0
		call	led_data_line4
		movwf	led_data29
		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
		movf	led_data16,0
		movwf	led_data15
		movf	led_data17,0
		movwf	led_data16
		movf	led_data18,0
		movwf	led_data17
		movf	led_data19,0
		movwf	led_data18
		movf	led_data20,0
		movwf	led_data19
		movf	led_data21,0
		movwf	led_data20
		movf	led_data22,0
		movwf	led_data21
		movf	led_data23,0
		movwf	led_data22
		movf	led_data24,0
		movwf	led_data23
		movf	led_data25,0
		movwf	led_data24
		movf	led_data26,0
		movwf	led_data25
		movf	led_data27,0
		movwf	led_data26
		movf	led_data28,0
		movwf	led_data27
		movf	led_data29,0
		movwf	led_data28
		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	moji5,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_set_sub2	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
		movf	taihi2,0
		addlw	3
		call	moji_set0
		movwf	moji4
		movf	taihi2,0
		addlw	4
		call	moji_set0
		movwf	moji5
		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_sp
		retlw	moji_sp
		retlw	moji_sp
		retlw	moji_sp
		retlw	moji_W
		retlw	moji_E
		retlw	moji_L
		retlw	moji_C
		retlw	moji_O
		retlw	moji_M
		retlw	moji_E
		retlw	moji_sp
		retlw	moji_T
		retlw	moji_O
		retlw	moji_sp
		retlw	moji_O
		retlw	moji_U
		retlw	moji_R
		retlw	moji_sp
		retlw	moji_H
		retlw	moji_O
		retlw	moji_U
		retlw	moji_S
		retlw	moji_E
		retlw	moji_mk
		retlw	moji_sp
		retlw	moji_sp
		retlw	moji_sp
		retlw	moji_sp
		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,RA4(OUT)
					;RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7(OUT)
		bsf	STATUS,RP0
		clrf	TRISA
		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'
(2ページ)へ戻る

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