Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LIST P=PIC16F877
- INCLUDE "P16F877.INC"
- __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _DEBUG_OFF
- ;
- ;*** EEPROM �f�[�^
- org 0x2100
- de 00h
- de 00h
- de 00h
- de 00h
- ;*** EEPROM�f�[�^
- ;****************************
- ;�@�v���O�������Ŏg���ϐ��̒�`
- ;****************************
- ;BANK0 20H-7FH
- ;BANK1 A0H-EFH
- ;BANK2 120H-16FH
- ;BANK3 1A0H-1EFH
- ;
- ;**** 7SEG
- COLUM EQU 20H ;Display�@Digit�@Position
- TEMP1 EQU 22H ;��
- TEMP2 EQU 23H ;�\
- TEMP3 EQU 24H ;�S
- TEMP4 EQU 25H ;��
- CNT1 EQU 26H ;�^�C�}�[�p�̃J�E���^
- CNT2 EQU 27H ;�@�V
- CNT3 EQU 28H ;�P�b�Ԃ̌J��Ԃ��p�̃J�E���^
- ;**** 7SEG
- ;
- ;*** NAPION
- save_st EQU 30h ; STATUS�̃Z�[�u�̈�
- save_w EQU 31h ; W-reg�̃Z�[�u�̈�
- CNT38 EQU 32h ; TMR0���荞�݂�R�W��J�E���g����J�E���^
- CNT10 EQU 33h ; ��L�R�W����ɂP�O��J�E���g����J�E���^
- flag10s EQU 34h ; �P�O�b�o�߃t���O
- napion EQU 35h ; NaPiOn�̏o�͕ω��̊Ǘ�
- buffer EQU 36h
- ;*** NAPION
- ;
- ;*** COIN
- COIN EQU 40h ;�R�C�����b�`�p
- ;*** COIN
- ;
- ;*** SERVO
- ;CNT1_1 EQU 50h
- ;*** SERVO
- ;
- ;*** SPEAKER
- TCNT EQU 60H
- TCNT2 EQU 61H
- TCNT3 EQU 62H
- TCNT4 EQU 63H
- TCNT5 EQU 64H
- ;*** SPEAKER
- ;
- ORG 0x00 ; ���Z�b�g�x�N�^(0�Ԓn)��w�肷��B
- GOTO INIT ; ���������ɍs��
- ;
- ;*** ���������ݏ�������
- ORG 0x04 ; �����݃x�N�^(4�Ԓn)��w�肷��B
- MOVWF save_w ; W-reg�Z�[�u
- SWAPF STATUS,W
- MOVWF save_st ; STATUS���W�X�^�Z�[�u
- ;
- BTFSC PIR1,CCP1IF ;SERVO���荞�݁H
- GOTO INTR1 ;YES
- ;
- BTFSC PIR2,CCP2IF ;SERVO���荞�݁H
- GOTO INTR2 ;YES
- ;
- BTFSC INTCON,T0IF ; �s�l�q�O�����݁H
- GOTO T0INT ; Yes
- ;
- BTFSC INTCON,INTF ; �q�a�O�^�h�m�s�����݁H
- GOTO RB0INT ; Yes
- ;
- BTFSC INTCON, RBIF ;PORTB���荞�݁H
- GOTO RBINT ;YES
- GOTO INTEXIT ; No
- ;
- INTR1
- BCF PIR1,CCP1IF ;�R���y�A�}�b�`�t���O�̃N���A
- BSF STATUS,RP0 ;�o���N1�ɃZ�b�g
- BSF PIE1,CCP1IE ;�R���y�A�}�b�`���荞����
- BCF STATUS,RP0 ;�������[�o���N��0�ɃZ�b�g
- BCF PORTC,2 ;�T�[�{����
- GOTO INTEXIT
- ;
- INTR2
- BCF PIR2,CCP2IF ;�R���y�A�}�b�`�t���O�̃N���A
- BSF STATUS,RP0 ;�������[�o���N��1�ɃZ�b�g
- BSF PIE2,CCP2IE ;�R���y�A�}�b�`���荞����
- BCF STATUS,RP0 ;�������[�o���N��0�ɃZ�b�g
- BSF PORTC, 2 ;�T�[�{����
- CLRF TMR1L ;�^�C�}�P���Z�b�g
- CLRF TMR1H ;�^�C�}�P���Z�b�g
- GOTO INTEXIT
- ;
- T0INT ; �s�l�q�O�����ݏ���
- BCF INTCON,T0IF ; �����݃t���O�N���A
- ;
- DECFSZ CNT38,F ; CNT38�|�P���O���H
- GOTO INTEXIT ; No
- MOVLW d'38'
- MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
- ;
- DECFSZ CNT10,F ; CNT10�|�P���O���H
- GOTO INTEXIT ; No
- MOVLW d'10'
- MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
- BSF flag10s,0 ; �P�O�b�o�߃t���O��n�m
- GOTO INTEXIT
- ;
- RB0INT ; �q�a�O�^�h�m�s�����ݏ���
- BCF INTCON,INTF ; �����݃t���O�N���A
- BSF PORTA,5 ;RA5 ON
- BSF PORTC,0 ;�Z���TON
- movlw 01h
- movwf buffer
- MOVLW d'1'
- MOVWF napion ; �P���m���o���n�����
- GOTO INTEXIT
- ;
- RBINT ;PORTB�ω�
- BCF INTCON,RBIF ;���荞�݃t���O�N���A
- INCF TEMP2,F ;�\���f�[�^+1
- GOTO INTEXIT
- ;
- INTEXIT
- SWAPF save_st,W
- MOVWF STATUS ; STATUS���W�X�^���[�h
- SWAPF save_w,F
- SWAPF save_w,W ; W-reg���[�h
- RETFIE ; �������ɂ��ă��^�[��
- ; �����܂Ŋ����ݏ���
- ;
- INIT
- ; ����PIC�̏���������
- CALL SPEAKER ;�����f�B�[��炷
- ;
- BSF STATUS,RP0 ; ��STATUS��RP0��Z�b�g(1)���� �� �o���N1
- MOVLW 0FFH;
- MOVWF TRISB ; PORTB����
- BSF OPTION_REG, 7 ;���v���A�b�v�Ȃ�
- BCF PIE1,TMR1IE ;TMR1�I�[�o�[�t���[���荞�֎~
- BSF PIE1,CCP1IE ;CCP1�R���y�A�}�b�`���荞����
- BSF PIE2, CCP2IE ;CCP2�R���y�A�}�b�`���荞����
- MOVLW 07H ;�S�ăf�B�W�^�����[�h
- MOVWF ADCON1 ;A/D�ϊ��ݒ�
- CLRF TRISA ; PORTA�͑S�ďo��
- CLRF TRISC ;�S�ďo��
- MOVLW 01H
- MOVWF TRISD ;�|�[�g0�ȊO�͏o��
- ; CLRF TRISD ;PORTD�͑S�ďo��
- BCF TRISE, PSPMODE ;�|�[�gD����o�̓|�[�g��
- MOVLW 087h ; OPTION���W�X�^�̐ݒ�
- MOVWF OPTION_REG ; ^RBPU:1 ,INTEDG:0 ,T0CS:0 ,PSA:0 ,PS2-PS0:111
- BCF STATUS,RP0 ; ��STATUS��RP0��N���A(0) �� �o���N0
- ;
- MOVLW 00H ;W���W�X�^��00H��Z�b�g
- MOVWF T1CON ;T1CON���W�X�^ �v���X�P�[��1:1 ��~
- CLRF TMR1L ;�^�C�}���Z�b�g
- CLRF TMR1H ;�^�C�}���Z�b�g
- MOVLW 0AH ;W���W�X�^��0AH��Z�b�g
- MOVWF CCP1CON ;CCP1CON���W�X�^ �R���y�A�}�b�`���荞��
- MOVWF CCP2CON ;CCP2CON���W�X�^ �R���y�A�}�b�`���荞��
- ;
- MOVLW 50H ;W���W�X�^��50H��Z�b�g
- MOVWF CCPR2L ;CCPR2L�ɉ���8�r�b�g�f�[�^��Z�b�g
- MOVLW 0C3H ;W���W�X�^��C3H��Z�b�g
- MOVWF CCPR2H ;CCPR2H�ɉ���8�r�b�g�f�[�^��Z�b�g
- ;
- CLRF PORTA ; PORTA��S�Ăn�e�e
- CLRF PORTC ;�|�[�gC�����o��
- CLRF PORTD ;PORTD��S��OFF
- ;
- CLRF TMR0 ; TMR0��N���A
- MOVLW 0A0h ; INTCON�̐ݒ�
- MOVWF INTCON ; GIE:1 ,T0IE:1(TMR0���荞����)
- ;
- MOVLW d'38'
- MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
- MOVLW d'10'
- MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
- ;
- CLRF flag10s
- CLRF napion
- ;
- BSF STATUS, RP1 ;
- BCF STATUS, RP0 ; Bank 2
- MOVLW 0h ;
- MOVWF EEADR ; Data Memory Address to read
- BSF STATUS, RP0 ; Bank 3
- BCF EECON1, EEPGD ; Point to DATA memory
- BSF EECON1, RD ; EEPROM Read
- BCF STATUS, RP0 ; Bank 2
- MOVF EEDATA, W ; W = EEDATA
- BCF STATUS,RP1
- ;
- MOVWF TEMP1 ;��̈�
- ;
- BSF STATUS, RP1 ;
- BCF STATUS, RP0 ; Bank 2
- MOVLW 1h ;
- MOVWF EEADR ; Data Memory Address to read
- BSF STATUS, RP0 ; Bank 3
- BCF EECON1, EEPGD ; Point to DATA memory
- BSF EECON1, RD ; EEPROM Read
- BCF STATUS, RP0 ; Bank 2
- MOVF EEDATA, W ; W = EEDATA
- BCF STATUS,RP1
- ;
- MOVWF TEMP2 ;�S�̈�
- ;
- BSF STATUS, RP1 ;
- BCF STATUS, RP0 ; Bank 2
- MOVLW 2h ;
- MOVWF EEADR ; Data Memory Address to read
- BSF STATUS, RP0 ; Bank 3
- BCF EECON1, EEPGD ; Point to DATA memory
- BSF EECON1, RD ; EEPROM Read
- BCF STATUS, RP0 ; Bank 2
- MOVF EEDATA, W ; W = EEDATA
- BCF STATUS,RP1
- ;
- MOVWF TEMP3 ;�\�̈�
- ;
- BSF STATUS, RP1 ;
- BCF STATUS, RP0 ; Bank 2
- MOVLW 3h ;
- MOVWF EEADR ; Data Memory Address to read
- BSF STATUS, RP0 ; Bank 3
- BCF EECON1, EEPGD ; Point to DATA memory
- BSF EECON1, RD ; EEPROM Read
- BCF STATUS, RP0 ; Bank 2
- MOVF EEDATA, W ; W = EEDATA
- BCF STATUS,RP1
- ;
- MOVWF TEMP4 ;��̈�
- ;
- MOVLW 00h
- MOVWF COIN ;COIN������
- ;
- ;*** �������C����������
- BSF PORTA,5 ; �d���n�m��P�O�b�Ԃq�`5�i�k�d�c�j��n�m�ɂ���
- BSF PORTC, 0 ;�Z���T�I��
- WAIT10S ; �d���n�m��A�m���o���n���̉�H�����肷��܂łP�O�b�҂�
- BTFSS flag10s,0 ; 10�b�o�߃t���O�n�m�H
- GOTO WAIT10S ; No
- ;
- BCF PORTA,5 ; �d���n�m����P�O�b�o�ߌ�A�q�`5��n�e�e�ɂ���
- ;
- BSF INTCON,INTE ; �q�a�O�^�h�m�s��������
- BSF INTCON,PEIE ;���ӊ��荞�݂̋���
- ;
- ;*********************************
- MAIN
- BTFSS PORTD,0 ;���Z�b�g�{�^���H
- CALL RESET
- ;
- BTFSC PORTB,1 ;�R�C�������H
- CALL SHIKIBETSU ;���ʃ��[�`����
- ;
- MOVLW 28H ;�J��Ԃ��Z�b�g�i�P�b�j
- MOVWF CNT3 ;�J�E���^��
- ;
- NEXT ;�e���\��
- MOVLW 08H ;��̌���w��
- MOVWF COLUM ;�ۑ�
- ;
- MOVF TEMP4,W ;�\���f�[�^���o��
- CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
- BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
- RRF COLUM,F ;���r�b�g�V�t�g
- ;
- MOVF TEMP3,W ;�\���f�[�^���o��
- CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
- BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
- RRF COLUM,F ;���r�b�g�V�t�g
- ;
- MOVF TEMP2,W ;�\���f�[�^���o��
- CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
- BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
- RRF COLUM,F ;���r�b�g�V�t�g
- ;
- MOVF TEMP1,W ;�\���f�[�^���o��
- CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
- BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
- RRF COLUM,F ;���r�b�g�V�t�g
- ;
- DECFSZ CNT3,F ;�J��Ԃ��������H
- GOTO NEXT ;�܂��̎������\���J��Ԃ�
- ; INCF TEMP2,F ;�\���f�[�^�{�P
- ;
- BTFSS napion,0 ; NaPiOn��Ԃ͂P�H
- GOTO NAPI2 ; No
- ;
- NAPI1
- ;*** ����NaPiOn��Ԃ��P�̎��iRB0/INT�����ݔ����j����
- CLRF TMR0 ; TMR0�N���A
- ;
- MOVLW d'38'
- MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
- MOVLW d'10'
- MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
- ;
- CLRF flag10s ; �P�O�b�o�߃t���O�N���A
- ;
- MOVLW d'2'
- MOVWF napion ; NaPiOn��Ԃ�Q�ɂ���
- ;
- GOTO MAIN
- ;
- ;*** ����NaPiOn��Ԃ��P�Ŗ���������
- NAPI2
- BTFSS napion,1 ; NaPiOn��Ԃ͂Q�H
- GOTO MAIN ; No
- ;
- BTFSS flag10s,0 ; flag10s(10�b�o�߃t���O)=�P�H
- GOTO MAIN ; No
- ;
- CLRF PORTA ; PORTA��S�Ăn�e�e
- CLRF PORTB ; PORTB��S�Ăn�e�e
- CLRF PORTC ;�|�[�gC�����o��
- CLRF PORTD ;PORTD��S��OFF
- movlw 00h
- movwf buffer
- CLRF napion ; NaPiOn��Ԃ�O�ɂ���
- ;
- SLEEP ; �ȓd�̓��[�h�őҋ@�iRB0/INT�����ݑ҂��j
- CALL WAIT3
- ;
- GOTO MAIN
- ;
- ;********************************
- ;�@�\������T�u���[�`��
- ;�@�Tmsec�҂�
- ;********************************
- DISP
- CALL GET_7SEG ;�����f�[�^��Z�O�����g�f�[�^�ɕϊ�
- MOVWF PORTD ;�|�[�gB�փZ�O�����g�f�[�^�o��
- MOVF COLUM,W ;���f�[�^���o��
- MOVWF PORTA ;�|�[�gA���f�[�^�o��
- CALL TIME5M ;5msec�҂��^�C�}�[
- CLRF PORTD ;���̌��Ɉڂ鎞�̂�����h�~
- RETURN
- ;
- ;*************************************************
- ;�@�P�U�i����Z�O�����g�f�[�^�ɕϊ�����
- ;�@�Z�O�����g�f�[�^��PORTB1�`PORTB7�p�ɂȂ��Ă���
- ;�@�܂�O�r�b�g�ڂ͎g��Ȃ�
- ;*************************************************
- GET_7SEG
- ANDLW 0FH ;���ʂS�r�b�g�̂ݎ��o��
- ADDWF PCL,F ;PC���W�X�^�ɐ���������ăW�����v
- RETLW B'01111110' ;Code�@0
- RETLW B'00001100' ;Code�@1
- RETLW B'10110110' ;Code�@2�@�����̃f�[�^�����
- RETLW B'10011110' ;Code�@3�@���^�[��
- RETLW B'11001100' ;Code�@4
- RETLW B'11011010' ;Code�@5
- RETLW B'11111010' ;Code�@6
- RETLW B'00001110' ;Code�@7
- RETLW B'11111110' ;Code�@8
- RETLW B'11001110' ;Code�@9
- RETLW B'11101110' ;Code�@A
- RETLW B'11111000' ;Code�@b
- RETLW B'01110010' ;Code�@C
- RETLW B'10111100' ;Code�@d
- RETLW B'11110010' ;Code�@E
- RETLW B'11100010' ;Code�@F
- ;
- ;**************************************
- ;�@Timer�@Routine
- ;�@TIM5M:5msec
- ;**************************************
- TIME5M
- MOVLW 9H ;About�@5msec
- MOVWF CNT2 ;
- TIMLP2
- CLRF CNT1 ;
- TIMLP1
- NOP ;dumy�@nop
- NOP
- DECFSZ CNT1,F
- GOTO TIMLP1 ;5*256-1
- DECFSZ CNT2,F
- GOTO TIMLP2 ;10*((5*256-1)+3)-1
- RETURN ;+3=12822*0.4usec=5.1msec
- ;
- ;***** ���[�^�P����T�u���[�`��
- MTR1ON
- ; BSF PORTC, 5 ;�Ԕ����_�C�I�[�h�_��
- RETURN
- MTR1OF
- ; BCF PORTC, 5 ;�Ԕ����_�C�I�[�h����
- RETURN
- ;*** ���[�^�Q����T�u���[�`��
- MTR2ON
- ; BSF PORTC, 3 ;�����_�C�I�[�h�_��
- RETURN
- MTR2OF
- ; BCF PORTC, 3 ;�����_�C�I�[�h����
- RETURN
- ;
- ;
- ;*************�R�C�����ʃT�u���[�`��
- ;
- SHIKIBETSU
- BTFSC PORTB,2
- BSF COIN,4
- BTFSC PORTB,3
- BSF COIN,3
- BTFSC PORTB,4
- BSF COIN,2
- BTFSC PORTB,5
- BSF COIN,1
- BTFSC PORTB,6
- BSF COIN,0
- BTFSS PORTB,7
- GOTO SHIKIBETSU
- CALL COUNTUP
- RETURN
- ;
- ;*******�V�Z�O���������f�T�u���[�`��
- COUNTUP
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00011111' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN500
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00011110' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN10
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00011100' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN100
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00011000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN5
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00010000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN50
- MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW b'00000000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
- CALL YEN1
- ;
- MOVLW 00h
- MOVWF COIN
- RETURN
- ;
- YEN500
- ; MOVLW 0C4H ;�E��t
- ; MOVLW 88H ;����t
- MOVLW 88H
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- ; MOVLW 09H ;�E��t
- ; MOVLW 13H ;����t
- MOVLW 13H
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP2,F ;�\���f�[�^�{�P
- INCF TEMP2,F ;�\���f�[�^�{�P
- INCF TEMP2,F ;�\���f�[�^�{�P
- INCF TEMP2,F ;�\���f�[�^�{�P
- INCF TEMP2,F ;�\���f�[�^�{�P
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- MOVF TEMP2,0
- SUBLW 0Bh
- BTFSC STATUS,Z
- CALL KETA5_2_1
- MOVF TEMP2,0
- SUBLW 0Ch
- BTFSC STATUS,Z
- CALL KETA5_3_1
- MOVF TEMP2,0
- SUBLW 0Dh
- BTFSC STATUS,Z
- CALL KETA5_4_1
- MOVF TEMP2,0
- SUBLW 0Eh
- BTFSC STATUS,Z
- CALL KETA5_5_1
- ;
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- KETA5_2_1
- MOVLW 01H
- MOVWF TEMP2
- INCF TEMP1,F
- MOVF TEMP1,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CLRF TEMP1
- RETURN
- KETA5_3_1
- MOVLW 02H
- MOVWF TEMP2
- INCF TEMP1,F
- MOVF TEMP1,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CLRF TEMP1
- RETURN
- KETA5_4_1
- MOVLW 03H
- MOVWF TEMP2
- INCF TEMP1,F
- MOVF TEMP1,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CLRF TEMP1
- RETURN
- KETA5_5_1
- MOVLW 04H
- MOVWF TEMP2
- INCF TEMP1,F
- MOVF TEMP1,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CLRF TEMP1
- RETURN
- ;
- YEN10
- ; MOVLW 0C4H ;�E��t
- MOVLW 0F8H ;����t
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- ; MOVLW 09H ;�E��t
- MOVLW 11H ;����t
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP3,F ;�\���f�[�^�{�P
- MOVF TEMP3,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ�
- CALL KETA2
- ; MOVF 01H, 0
- ; ADDWF TEMP4,f
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- ;
- YEN100
- ; MOVLW 0C4H ;�E��t
- MOVLW 68H ;����t
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- ; MOVLW 09H ;�E��t
- MOVLW 10H ;����t
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP2,F ;�\���f�[�^�{�P
- MOVF TEMP2,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ�
- CALL KETA3
- ; MOVF 01H, 0
- ; ADDWF TEMP4,f
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- ;
- YEN5
- ; MOVLW 0C4H ;�E��t
- MOVLW 0D8H ;����t
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- ; MOVLW 09H ;�E��t
- MOVLW 0EH ;����t
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP4,F ;�\���f�[�^�{�P
- INCF TEMP4,F ;�\���f�[�^�{�P
- INCF TEMP4,F ;�\���f�[�^�{�P
- INCF TEMP4,F ;�\���f�[�^�{�P
- INCF TEMP4,F ;�\���f�[�^�{�P
- MOVF TEMP4,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA1
- MOVF TEMP4,0
- SUBLW 0Bh
- BTFSC STATUS,Z
- CALL KETA5_2
- MOVF TEMP4,0
- SUBLW 0Ch
- BTFSC STATUS,Z
- CALL KETA5_3
- MOVF TEMP4,0
- SUBLW 0Dh
- BTFSC STATUS,Z
- CALL KETA5_4
- MOVF TEMP4,0
- SUBLW 0Eh
- BTFSC STATUS,Z
- CALL KETA5_5
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- KETA5_2
- MOVLW 01H
- MOVWF TEMP4
- INCF TEMP3,F
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- RETURN
- KETA5_3
- MOVLW 02H
- MOVWF TEMP4
- INCF TEMP3,F
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- RETURN
- KETA5_4
- MOVLW 03H
- MOVWF TEMP4
- INCF TEMP3,F
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- RETURN
- KETA5_5
- MOVLW 04H
- MOVWF TEMP4
- INCF TEMP3,F
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- RETURN
- ;
- YEN50
- ; MOVLW 0C4H ;�E��t
- MOVLW 048H ;����t
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- ; MOVLW 09H ;�E��t
- MOVLW 0DH ;����t
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP3,F ;�\���f�[�^�{�P
- INCF TEMP3,F ;�\���f�[�^�{�P
- INCF TEMP3,F ;�\���f�[�^�{�P
- INCF TEMP3,F ;�\���f�[�^�{�P
- INCF TEMP3,F ;�\���f�[�^�{�P
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- MOVF TEMP3,0
- SUBLW 0Bh
- BTFSC STATUS,Z
- CALL KETA52
- MOVF TEMP3,0
- SUBLW 0Ch
- BTFSC STATUS,Z
- CALL KETA53
- MOVF TEMP3,0
- SUBLW 0Dh
- BTFSC STATUS,Z
- CALL KETA54
- MOVF TEMP3,0
- SUBLW 0Eh
- BTFSC STATUS,Z
- CALL KETA55
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- KETA52
- MOVLW 01H
- MOVWF TEMP3
- INCF TEMP2,F
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- RETURN
- KETA53
- MOVLW 02H
- MOVWF TEMP3
- INCF TEMP2,F
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- RETURN
- KETA54
- MOVLW 03H
- MOVWF TEMP3
- INCF TEMP2,F
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- RETURN
- KETA55
- MOVLW 04H
- MOVWF TEMP3
- INCF TEMP2,F
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- RETURN
- ;
- YEN1
- MOVLW 0B8H ;�E��t
- ; MOVLW 88H ;����t
- MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
- MOVLW 0BH ;�E��t
- ; MOVLW 13H ;����t
- MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
- BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
- ;
- INCF TEMP4,F ;�\���f�[�^�{�P
- MOVF TEMP4,0 ; W���W�X�^��P_CNT�̒l����
- SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
- BTFSC STATUS,Z ; Z=1�̂Ƃ�
- CALL KETA1
- ;
- CALL WAIT3
- BCF T1CON,TMR1ON
- RETURN
- ;
- KETA1
- CLRF TEMP4
- INCF TEMP3,F
- MOVF TEMP3,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA2
- RETURN
- KETA2
- CLRF TEMP3
- INCF TEMP2,F
- MOVF TEMP2,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CALL KETA3
- RETURN
- KETA3
- CLRF TEMP2
- INCF TEMP1,F
- MOVF TEMP1,0
- SUBLW 0Ah
- BTFSC STATUS,Z
- CLRF TEMP1
- RETURN
- ;
- SPEAKER
- BSF T2CON,00H ;1X:16 01:4 00:1
- BCF T2CON,01H ;
- BSF T2CON,02H ;1:����
- BSF STATUS,RP0 ;�o���N�P
- CLRF TRISC ;CPORT��3�r�b�g�߂�o�͂�
- MOVLW 0FFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- BCF STATUS,RP0 ;�o���N0
- MOVLW 030H ;2/3���炢
- MOVWF CCPR1L ;�f���[�e�B����8�r�b�g
- MOVLW 0AFH ;������3�r�b�g�ڂ̂ݑ���,������2�r�b�g�ڂ�F�Ńp���X0�Œ�~
- MOVWF CCP1CON ;�f���[�e�B�䉺��2�r�b�g
- CALL WAIT3
- BSF STATUS,RP0 ;�o���N�P
- MOVLW 0CFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 0AFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 08FH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 06FH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 08FH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 0AFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 0CFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- CALL WAIT3
- MOVLW 0FFH ;1200HZ�A���l������2400Hz
- MOVWF PR2 ;����
- BCF STATUS,RP0 ;�o���N0
- RETURN
- ;
- ;�Ԋu�����pWAIT
- WAIT3
- MOVLW 005H
- MOVWF TCNT3
- TLOOP3
- CALL WAIT2
- DECFSZ TCNT3
- GOTO TLOOP3
- RETURN
- WAIT2
- MOVLW 0FFH
- MOVWF TCNT2
- TLOOP2
- CALL WAIT
- DECFSZ TCNT2
- GOTO TLOOP2
- RETURN
- WAIT
- MOVLW 0FFH
- MOVWF TCNT
- TLOOP
- DECFSZ TCNT
- GOTO TLOOP
- RETURN
- ;
- RESET
- CLRF TEMP1
- CLRF TEMP2
- CLRF TEMP3
- CLRF TEMP4
- RETURN
- ;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement