Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.08 KB | None | 0 0
  1. LIST P=PIC16F877
  2. INCLUDE "P16F877.INC"
  3. __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _DEBUG_OFF
  4. ;
  5. ;*** EEPROM �f�[�^
  6. org 0x2100
  7. de 00h
  8. de 00h
  9. de 00h
  10. de 00h
  11. ;*** EEPROM�f�[�^
  12.  
  13. ;****************************
  14. ;�@�v���O�������Ŏg���ϐ��̒�`
  15. ;****************************
  16. ;BANK0 20H-7FH
  17. ;BANK1 A0H-EFH
  18. ;BANK2 120H-16FH
  19. ;BANK3 1A0H-1EFH
  20. ;
  21. ;**** 7SEG
  22. COLUM EQU 20H ;Display�@Digit�@Position
  23. TEMP1 EQU 22H ;��
  24. TEMP2 EQU 23H ;�\
  25. TEMP3 EQU 24H ;�S
  26. TEMP4 EQU 25H ;��
  27. CNT1 EQU 26H ;�^�C�}�[�p�̃J�E���^
  28. CNT2 EQU 27H ;�@�V
  29. CNT3 EQU 28H ;�P�b�Ԃ̌J��Ԃ��p�̃J�E���^
  30. ;**** 7SEG
  31. ;
  32. ;*** NAPION
  33. save_st EQU 30h ; STATUS�̃Z�[�u�̈�
  34. save_w EQU 31h ; W-reg�̃Z�[�u�̈�
  35. CNT38 EQU 32h ; TMR0���荞�݂�R�W��J�E���g����J�E���^
  36. CNT10 EQU 33h ; ��L�R�W����ɂP�O��J�E���g����J�E���^
  37. flag10s EQU 34h ; �P�O�b�o�߃t���O
  38. napion EQU 35h ; NaPiOn�̏o�͕ω��̊Ǘ�
  39. buffer EQU 36h
  40. ;*** NAPION
  41. ;
  42. ;*** COIN
  43. COIN EQU 40h ;�R�C�����b�`�p
  44. ;*** COIN
  45. ;
  46. ;*** SERVO
  47. ;CNT1_1 EQU 50h
  48. ;*** SERVO
  49. ;
  50. ;*** SPEAKER
  51. TCNT EQU 60H
  52. TCNT2 EQU 61H
  53. TCNT3 EQU 62H
  54. TCNT4 EQU 63H
  55. TCNT5 EQU 64H
  56. ;*** SPEAKER
  57. ;
  58. ORG 0x00 ; ���Z�b�g�x�N�^(0�Ԓn)��w�肷��B
  59. GOTO INIT ; ���������ɍs��
  60. ;
  61. ;*** ���������ݏ�������
  62. ORG 0x04 ; �����݃x�N�^(4�Ԓn)��w�肷��B
  63. MOVWF save_w ; W-reg�Z�[�u
  64. SWAPF STATUS,W
  65. MOVWF save_st ; STATUS���W�X�^�Z�[�u
  66. ;
  67. BTFSC PIR1,CCP1IF ;SERVO���荞�݁H
  68. GOTO INTR1 ;YES
  69. ;
  70. BTFSC PIR2,CCP2IF ;SERVO���荞�݁H
  71. GOTO INTR2 ;YES
  72. ;
  73. BTFSC INTCON,T0IF ; �s�l�q�O�����݁H
  74. GOTO T0INT ; Yes
  75. ;
  76. BTFSC INTCON,INTF ; �q�a�O�^�h�m�s�����݁H
  77. GOTO RB0INT ; Yes
  78. ;
  79. BTFSC INTCON, RBIF ;PORTB���荞�݁H
  80. GOTO RBINT ;YES
  81. GOTO INTEXIT ; No
  82. ;
  83. INTR1
  84. BCF PIR1,CCP1IF ;�R���y�A�}�b�`�t���O�̃N���A
  85. BSF STATUS,RP0 ;�o���N1�ɃZ�b�g
  86. BSF PIE1,CCP1IE ;�R���y�A�}�b�`���荞�݋���
  87. BCF STATUS,RP0 ;�������[�o���N��0�ɃZ�b�g
  88. BCF PORTC,2 ;�T�[�{����
  89. GOTO INTEXIT
  90. ;
  91. INTR2
  92. BCF PIR2,CCP2IF ;�R���y�A�}�b�`�t���O�̃N���A
  93. BSF STATUS,RP0 ;�������[�o���N��1�ɃZ�b�g
  94. BSF PIE2,CCP2IE ;�R���y�A�}�b�`���荞�݋���
  95. BCF STATUS,RP0 ;�������[�o���N��0�ɃZ�b�g
  96. BSF PORTC, 2 ;�T�[�{����
  97. CLRF TMR1L ;�^�C�}�P���Z�b�g
  98. CLRF TMR1H ;�^�C�}�P���Z�b�g
  99. GOTO INTEXIT
  100. ;
  101. T0INT ; �s�l�q�O�����ݏ���
  102. BCF INTCON,T0IF ; �����݃t���O�N���A
  103. ;
  104. DECFSZ CNT38,F ; CNT38�|�P���O���H
  105. GOTO INTEXIT ; No
  106. MOVLW d'38'
  107. MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
  108. ;
  109. DECFSZ CNT10,F ; CNT10�|�P���O���H
  110. GOTO INTEXIT ; No
  111. MOVLW d'10'
  112. MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
  113. BSF flag10s,0 ; �P�O�b�o�߃t���O��n�m
  114. GOTO INTEXIT
  115. ;
  116. RB0INT ; �q�a�O�^�h�m�s�����ݏ���
  117. BCF INTCON,INTF ; �����݃t���O�N���A
  118. BSF PORTA,5 ;RA5 ON
  119. BSF PORTC,0 ;�Z���TON
  120. movlw 01h
  121. movwf buffer
  122. MOVLW d'1'
  123. MOVWF napion ; �P���m���o���n�����
  124. GOTO INTEXIT
  125. ;
  126. RBINT ;PORTB�ω�
  127. BCF INTCON,RBIF ;���荞�݃t���O�N���A
  128. INCF TEMP2,F ;�\���f�[�^+1
  129. GOTO INTEXIT
  130. ;
  131. INTEXIT
  132. SWAPF save_st,W
  133. MOVWF STATUS ; STATUS���W�X�^���[�h
  134. SWAPF save_w,F
  135. SWAPF save_w,W ; W-reg���[�h
  136. RETFIE ; �����݋��‚ɂ��ă��^�[��
  137. ; �����܂Ŋ����ݏ���
  138. ;
  139. INIT
  140. ; ����PIC�̏���������
  141. CALL SPEAKER ;�����f�B�[��‚炷
  142. ;
  143. BSF STATUS,RP0 ; ��STATUS��RP0��Z�b�g(1)���� �� �o���N1
  144. MOVLW 0FFH;
  145. MOVWF TRISB ; PORTB����
  146. BSF OPTION_REG, 7 ;���v���A�b�v�Ȃ�
  147. BCF PIE1,TMR1IE ;TMR1�I�[�o�[�t���[���荞�݋֎~
  148. BSF PIE1,CCP1IE ;CCP1�R���y�A�}�b�`���荞�݋���
  149. BSF PIE2, CCP2IE ;CCP2�R���y�A�}�b�`���荞�݋���
  150. MOVLW 07H ;�S�ăf�B�W�^�����[�h
  151. MOVWF ADCON1 ;A/D�ϊ��ݒ�
  152. CLRF TRISA ; PORTA�͑S�ďo��
  153. CLRF TRISC ;�S�ďo��
  154. MOVLW 01H
  155. MOVWF TRISD ;�|�[�g0�ȊO�͏o��
  156. ; CLRF TRISD ;PORTD�͑S�ďo��
  157. BCF TRISE, PSPMODE ;�|�[�gD����o�̓|�[�g��
  158. MOVLW 087h ; OPTION���W�X�^�̐ݒ�
  159. MOVWF OPTION_REG ; ^RBPU:1 ,INTEDG:0 ,T0CS:0 ,PSA:0 ,PS2-PS0:111
  160. BCF STATUS,RP0 ; ��STATUS��RP0��N���A(0) �� �o���N0
  161. ;
  162. MOVLW 00H ;W���W�X�^��00H��Z�b�g
  163. MOVWF T1CON ;T1CON���W�X�^ �v���X�P�[��1:1 ��~
  164. CLRF TMR1L ;�^�C�}���Z�b�g
  165. CLRF TMR1H ;�^�C�}���Z�b�g
  166. MOVLW 0AH ;W���W�X�^��0AH��Z�b�g
  167. MOVWF CCP1CON ;CCP1CON���W�X�^ �R���y�A�}�b�`���荞��
  168. MOVWF CCP2CON ;CCP2CON���W�X�^ �R���y�A�}�b�`���荞��
  169. ;
  170. MOVLW 50H ;W���W�X�^��50H��Z�b�g
  171. MOVWF CCPR2L ;CCPR2L�ɉ���8�r�b�g�f�[�^��Z�b�g
  172. MOVLW 0C3H ;W���W�X�^��C3H��Z�b�g
  173. MOVWF CCPR2H ;CCPR2H�ɉ���8�r�b�g�f�[�^��Z�b�g
  174. ;
  175. CLRF PORTA ; PORTA��S�Ăn�e�e
  176. CLRF PORTC ;�|�[�gC�����o��
  177. CLRF PORTD ;PORTD��S��OFF
  178. ;
  179. CLRF TMR0 ; TMR0��N���A
  180. MOVLW 0A0h ; INTCON�̐ݒ�
  181. MOVWF INTCON ; GIE:1 ,T0IE:1(TMR0���荞�݋���)
  182. ;
  183. MOVLW d'38'
  184. MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
  185. MOVLW d'10'
  186. MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
  187. ;
  188. CLRF flag10s
  189. CLRF napion
  190. ;
  191. BSF STATUS, RP1 ;
  192. BCF STATUS, RP0 ; Bank 2
  193. MOVLW 0h ;
  194. MOVWF EEADR ; Data Memory Address to read
  195. BSF STATUS, RP0 ; Bank 3
  196. BCF EECON1, EEPGD ; Point to DATA memory
  197. BSF EECON1, RD ; EEPROM Read
  198. BCF STATUS, RP0 ; Bank 2
  199. MOVF EEDATA, W ; W = EEDATA
  200. BCF STATUS,RP1
  201. ;
  202. MOVWF TEMP1 ;��̈�
  203. ;
  204. BSF STATUS, RP1 ;
  205. BCF STATUS, RP0 ; Bank 2
  206. MOVLW 1h ;
  207. MOVWF EEADR ; Data Memory Address to read
  208. BSF STATUS, RP0 ; Bank 3
  209. BCF EECON1, EEPGD ; Point to DATA memory
  210. BSF EECON1, RD ; EEPROM Read
  211. BCF STATUS, RP0 ; Bank 2
  212. MOVF EEDATA, W ; W = EEDATA
  213. BCF STATUS,RP1
  214. ;
  215. MOVWF TEMP2 ;�S�̈�
  216. ;
  217. BSF STATUS, RP1 ;
  218. BCF STATUS, RP0 ; Bank 2
  219. MOVLW 2h ;
  220. MOVWF EEADR ; Data Memory Address to read
  221. BSF STATUS, RP0 ; Bank 3
  222. BCF EECON1, EEPGD ; Point to DATA memory
  223. BSF EECON1, RD ; EEPROM Read
  224. BCF STATUS, RP0 ; Bank 2
  225. MOVF EEDATA, W ; W = EEDATA
  226. BCF STATUS,RP1
  227. ;
  228. MOVWF TEMP3 ;�\�̈�
  229. ;
  230. BSF STATUS, RP1 ;
  231. BCF STATUS, RP0 ; Bank 2
  232. MOVLW 3h ;
  233. MOVWF EEADR ; Data Memory Address to read
  234. BSF STATUS, RP0 ; Bank 3
  235. BCF EECON1, EEPGD ; Point to DATA memory
  236. BSF EECON1, RD ; EEPROM Read
  237. BCF STATUS, RP0 ; Bank 2
  238. MOVF EEDATA, W ; W = EEDATA
  239. BCF STATUS,RP1
  240. ;
  241. MOVWF TEMP4 ;��̈�
  242. ;
  243. MOVLW 00h
  244. MOVWF COIN ;COIN������
  245. ;
  246. ;*** �������C����������
  247. BSF PORTA,5 ; �d���n�m��P�O�b�Ԃq�`5�i�΂k�d�c�j��n�m�ɂ���
  248. BSF PORTC, 0 ;�Z���T�I��
  249. WAIT10S ; �d���n�m��A�m���o���n���̉�H�����肷��܂łP�O�b�҂�
  250. BTFSS flag10s,0 ; 10�b�o�߃t���O�n�m�H
  251. GOTO WAIT10S ; No
  252. ;
  253. BCF PORTA,5 ; �d���n�m����P�O�b�o�ߌ�A�q�`5��n�e�e�ɂ���
  254. ;
  255. BSF INTCON,INTE ; �q�a�O�^�h�m�s�����݋���
  256. BSF INTCON,PEIE ;���ӊ��荞�݂̋���
  257. ;
  258. ;*********************************
  259. MAIN
  260. BTFSS PORTD,0 ;���Z�b�g�{�^���H
  261. CALL RESET
  262. ;
  263. BTFSC PORTB,1 ;�R�C�������H
  264. CALL SHIKIBETSU ;���ʃ��[�`����
  265. ;
  266. MOVLW 28H ;�J��Ԃ��񐔃Z�b�g�i�P�b�j
  267. MOVWF CNT3 ;�J�E���^��
  268. ;
  269. NEXT ;�e���\��
  270. MOVLW 08H ;��̌���w��
  271. MOVWF COLUM ;�ۑ�
  272. ;
  273. MOVF TEMP4,W ;�\���f�[�^���o��
  274. CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
  275. BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
  276. RRF COLUM,F ;���r�b�g�V�t�g
  277. ;
  278. MOVF TEMP3,W ;�\���f�[�^���o��
  279. CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
  280. BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
  281. RRF COLUM,F ;���r�b�g�V�t�g
  282. ;
  283. MOVF TEMP2,W ;�\���f�[�^���o��
  284. CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
  285. BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
  286. RRF COLUM,F ;���r�b�g�V�t�g
  287. ;
  288. MOVF TEMP1,W ;�\���f�[�^���o��
  289. CALL DISP ;�Z�O�����g�\���o�́A�Tmsec�҂�
  290. BCF STATUS,C ;�V�t�g���ɂP������Ȃ��悤��
  291. RRF COLUM,F ;���r�b�g�V�t�g
  292. ;
  293. DECFSZ CNT3,F ;�J��Ԃ��������H
  294. GOTO NEXT ;�܂��̎������\���J��Ԃ�
  295. ; INCF TEMP2,F ;�\���f�[�^�{�P
  296. ;
  297. BTFSS napion,0 ; NaPiOn��Ԃ͂P�H
  298. GOTO NAPI2 ; No
  299. ;
  300. NAPI1
  301. ;*** ����NaPiOn��Ԃ��P�̎��iRB0/INT�����ݔ����j����
  302. CLRF TMR0 ; TMR0�N���A
  303. ;
  304. MOVLW d'38'
  305. MOVWF CNT38 ; CNT38�ɂR�W��Z�b�g
  306. MOVLW d'10'
  307. MOVWF CNT10 ; CNT10�ɂP�O��Z�b�g
  308. ;
  309. CLRF flag10s ; �P�O�b�o�߃t���O�N���A
  310. ;
  311. MOVLW d'2'
  312. MOVWF napion ; NaPiOn��Ԃ�Q�ɂ���
  313. ;
  314. GOTO MAIN
  315. ;
  316. ;*** ����NaPiOn��Ԃ��P�Ŗ���������
  317. NAPI2
  318. BTFSS napion,1 ; NaPiOn��Ԃ͂Q�H
  319. GOTO MAIN ; No
  320. ;
  321. BTFSS flag10s,0 ; flag10s(10�b�o�߃t���O)=�P�H
  322. GOTO MAIN ; No
  323. ;
  324. CLRF PORTA ; PORTA��S�Ăn�e�e
  325. CLRF PORTB ; PORTB��S�Ăn�e�e
  326. CLRF PORTC ;�|�[�gC�����o��
  327. CLRF PORTD ;PORTD��S��OFF
  328. movlw 00h
  329. movwf buffer
  330. CLRF napion ; NaPiOn��Ԃ�O�ɂ���
  331. ;
  332. SLEEP ; �ȓd�̓��[�h�őҋ@�iRB0/INT�����ݑ҂��j
  333. CALL WAIT3
  334. ;
  335. GOTO MAIN
  336. ;
  337. ;********************************
  338. ;�@�\������T�u���[�`��
  339. ;�@�Tmsec�҂�
  340. ;********************************
  341. DISP
  342. CALL GET_7SEG ;�����f�[�^��Z�O�����g�f�[�^�ɕϊ�
  343. MOVWF PORTD ;�|�[�gB�փZ�O�����g�f�[�^�o��
  344. MOVF COLUM,W ;���f�[�^���o��
  345. MOVWF PORTA ;�|�[�gA�֌��f�[�^�o��
  346. CALL TIME5M ;5msec�҂��^�C�}�[
  347. CLRF PORTD ;���̌��Ɉڂ鎞�̂���‚��h�~
  348. RETURN
  349. ;
  350. ;*************************************************
  351. ;�@�P�U�i����Z�O�����g�f�[�^�ɕϊ�����
  352. ;�@�Z�O�����g�f�[�^��PORTB1�`PORTB7�p�ɂȂ��Ă���
  353. ;�@�‚܂�O�r�b�g�ڂ͎g��Ȃ�
  354. ;*************************************************
  355. GET_7SEG
  356. ANDLW 0FH ;���ʂS�r�b�g�̂ݎ��o��
  357. ADDWF PCL,F ;PC���W�X�^�ɐ���������ăW�����v
  358. RETLW B'01111110' ;Code�@0
  359. RETLW B'00001100' ;Code�@1
  360. RETLW B'10110110' ;Code�@2�@�����̃f�[�^�����
  361. RETLW B'10011110' ;Code�@3�@���^�[��
  362. RETLW B'11001100' ;Code�@4
  363. RETLW B'11011010' ;Code�@5
  364. RETLW B'11111010' ;Code�@6
  365. RETLW B'00001110' ;Code�@7
  366. RETLW B'11111110' ;Code�@8
  367. RETLW B'11001110' ;Code�@9
  368. RETLW B'11101110' ;Code�@A
  369. RETLW B'11111000' ;Code�@b
  370. RETLW B'01110010' ;Code�@C
  371. RETLW B'10111100' ;Code�@d
  372. RETLW B'11110010' ;Code�@E
  373. RETLW B'11100010' ;Code�@F
  374. ;
  375. ;**************************************
  376. ;�@Timer�@Routine
  377. ;�@TIM5M:5msec
  378. ;**************************************
  379. TIME5M
  380. MOVLW 9H ;About�@5msec
  381. MOVWF CNT2 ;
  382. TIMLP2
  383. CLRF CNT1 ;
  384. TIMLP1
  385. NOP ;dumy�@nop
  386. NOP
  387. DECFSZ CNT1,F
  388. GOTO TIMLP1 ;5*256-1
  389. DECFSZ CNT2,F
  390. GOTO TIMLP2 ;10*((5*256-1)+3)-1
  391. RETURN ;+3=12822*0.4usec=5.1msec
  392. ;
  393. ;***** ���[�^�P����T�u���[�`��
  394. MTR1ON
  395. ; BSF PORTC, 5 ;�Ԕ����_�C�I�[�h�_��
  396. RETURN
  397. MTR1OF
  398. ; BCF PORTC, 5 ;�Ԕ����_�C�I�[�h����
  399. RETURN
  400. ;*** ���[�^�Q����T�u���[�`��
  401. MTR2ON
  402. ; BSF PORTC, 3 ;�����_�C�I�[�h�_��
  403. RETURN
  404. MTR2OF
  405. ; BCF PORTC, 3 ;�����_�C�I�[�h����
  406. RETURN
  407. ;
  408. ;
  409. ;*************�R�C�����ʃT�u���[�`��
  410. ;
  411. SHIKIBETSU
  412. BTFSC PORTB,2
  413. BSF COIN,4
  414. BTFSC PORTB,3
  415. BSF COIN,3
  416. BTFSC PORTB,4
  417. BSF COIN,2
  418. BTFSC PORTB,5
  419. BSF COIN,1
  420. BTFSC PORTB,6
  421. BSF COIN,0
  422. BTFSS PORTB,7
  423. GOTO SHIKIBETSU
  424. CALL COUNTUP
  425. RETURN
  426. ;
  427. ;*******�V�Z�O���������f�T�u���[�`��
  428. COUNTUP
  429. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  430. SUBLW b'00011111' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  431. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  432. CALL YEN500
  433. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  434. SUBLW b'00011110' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  435. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  436. CALL YEN10
  437. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  438. SUBLW b'00011100' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  439. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  440. CALL YEN100
  441. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  442. SUBLW b'00011000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  443. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  444. CALL YEN5
  445. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  446. SUBLW b'00010000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  447. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  448. CALL YEN50
  449. MOVF COIN,0 ; W���W�X�^��P_CNT�̒l����
  450. SUBLW b'00000000' ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  451. BTFSC STATUS,Z ; Z=1�̂Ƃ� LABEL2�փW�����v�AZ=0�̂Ƃ� LABEL1�փW�����v
  452. CALL YEN1
  453. ;
  454. MOVLW 00h
  455. MOVWF COIN
  456. RETURN
  457. ;
  458. YEN500
  459. ; MOVLW 0C4H ;�E��t
  460. ; MOVLW 88H ;����t
  461. MOVLW 88H
  462. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  463. ; MOVLW 09H ;�E��t
  464. ; MOVLW 13H ;����t
  465. MOVLW 13H
  466. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  467. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  468. ;
  469. INCF TEMP2,F ;�\���f�[�^�{�P
  470. INCF TEMP2,F ;�\���f�[�^�{�P
  471. INCF TEMP2,F ;�\���f�[�^�{�P
  472. INCF TEMP2,F ;�\���f�[�^�{�P
  473. INCF TEMP2,F ;�\���f�[�^�{�P
  474. MOVF TEMP2,0
  475. SUBLW 0Ah
  476. BTFSC STATUS,Z
  477. CALL KETA3
  478. MOVF TEMP2,0
  479. SUBLW 0Bh
  480. BTFSC STATUS,Z
  481. CALL KETA5_2_1
  482. MOVF TEMP2,0
  483. SUBLW 0Ch
  484. BTFSC STATUS,Z
  485. CALL KETA5_3_1
  486. MOVF TEMP2,0
  487. SUBLW 0Dh
  488. BTFSC STATUS,Z
  489. CALL KETA5_4_1
  490. MOVF TEMP2,0
  491. SUBLW 0Eh
  492. BTFSC STATUS,Z
  493. CALL KETA5_5_1
  494. ;
  495. CALL WAIT3
  496. BCF T1CON,TMR1ON
  497. RETURN
  498. KETA5_2_1
  499. MOVLW 01H
  500. MOVWF TEMP2
  501. INCF TEMP1,F
  502. MOVF TEMP1,0
  503. SUBLW 0Ah
  504. BTFSC STATUS,Z
  505. CLRF TEMP1
  506. RETURN
  507. KETA5_3_1
  508. MOVLW 02H
  509. MOVWF TEMP2
  510. INCF TEMP1,F
  511. MOVF TEMP1,0
  512. SUBLW 0Ah
  513. BTFSC STATUS,Z
  514. CLRF TEMP1
  515. RETURN
  516. KETA5_4_1
  517. MOVLW 03H
  518. MOVWF TEMP2
  519. INCF TEMP1,F
  520. MOVF TEMP1,0
  521. SUBLW 0Ah
  522. BTFSC STATUS,Z
  523. CLRF TEMP1
  524. RETURN
  525. KETA5_5_1
  526. MOVLW 04H
  527. MOVWF TEMP2
  528. INCF TEMP1,F
  529. MOVF TEMP1,0
  530. SUBLW 0Ah
  531. BTFSC STATUS,Z
  532. CLRF TEMP1
  533. RETURN
  534. ;
  535. YEN10
  536. ; MOVLW 0C4H ;�E��t
  537. MOVLW 0F8H ;����t
  538. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  539. ; MOVLW 09H ;�E��t
  540. MOVLW 11H ;����t
  541. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  542. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  543. ;
  544. INCF TEMP3,F ;�\���f�[�^�{�P
  545. MOVF TEMP3,0 ; W���W�X�^��P_CNT�̒l����
  546. SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  547. BTFSC STATUS,Z ; Z=1�̂Ƃ�
  548. CALL KETA2
  549. ; MOVF 01H, 0
  550. ; ADDWF TEMP4,f
  551. CALL WAIT3
  552. BCF T1CON,TMR1ON
  553. RETURN
  554. ;
  555. YEN100
  556. ; MOVLW 0C4H ;�E��t
  557. MOVLW 68H ;����t
  558. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  559. ; MOVLW 09H ;�E��t
  560. MOVLW 10H ;����t
  561. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  562. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  563. ;
  564. INCF TEMP2,F ;�\���f�[�^�{�P
  565. MOVF TEMP2,0 ; W���W�X�^��P_CNT�̒l����
  566. SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  567. BTFSC STATUS,Z ; Z=1�̂Ƃ�
  568. CALL KETA3
  569. ; MOVF 01H, 0
  570. ; ADDWF TEMP4,f
  571. CALL WAIT3
  572. BCF T1CON,TMR1ON
  573. RETURN
  574. ;
  575. YEN5
  576. ; MOVLW 0C4H ;�E��t
  577. MOVLW 0D8H ;����t
  578. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  579. ; MOVLW 09H ;�E��t
  580. MOVLW 0EH ;����t
  581. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  582. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  583. ;
  584. INCF TEMP4,F ;�\���f�[�^�{�P
  585. INCF TEMP4,F ;�\���f�[�^�{�P
  586. INCF TEMP4,F ;�\���f�[�^�{�P
  587. INCF TEMP4,F ;�\���f�[�^�{�P
  588. INCF TEMP4,F ;�\���f�[�^�{�P
  589. MOVF TEMP4,0
  590. SUBLW 0Ah
  591. BTFSC STATUS,Z
  592. CALL KETA1
  593. MOVF TEMP4,0
  594. SUBLW 0Bh
  595. BTFSC STATUS,Z
  596. CALL KETA5_2
  597. MOVF TEMP4,0
  598. SUBLW 0Ch
  599. BTFSC STATUS,Z
  600. CALL KETA5_3
  601. MOVF TEMP4,0
  602. SUBLW 0Dh
  603. BTFSC STATUS,Z
  604. CALL KETA5_4
  605. MOVF TEMP4,0
  606. SUBLW 0Eh
  607. BTFSC STATUS,Z
  608. CALL KETA5_5
  609. CALL WAIT3
  610. BCF T1CON,TMR1ON
  611. RETURN
  612. KETA5_2
  613. MOVLW 01H
  614. MOVWF TEMP4
  615. INCF TEMP3,F
  616. MOVF TEMP3,0
  617. SUBLW 0Ah
  618. BTFSC STATUS,Z
  619. CALL KETA2
  620. RETURN
  621. KETA5_3
  622. MOVLW 02H
  623. MOVWF TEMP4
  624. INCF TEMP3,F
  625. MOVF TEMP3,0
  626. SUBLW 0Ah
  627. BTFSC STATUS,Z
  628. CALL KETA2
  629. RETURN
  630. KETA5_4
  631. MOVLW 03H
  632. MOVWF TEMP4
  633. INCF TEMP3,F
  634. MOVF TEMP3,0
  635. SUBLW 0Ah
  636. BTFSC STATUS,Z
  637. CALL KETA2
  638. RETURN
  639. KETA5_5
  640. MOVLW 04H
  641. MOVWF TEMP4
  642. INCF TEMP3,F
  643. MOVF TEMP3,0
  644. SUBLW 0Ah
  645. BTFSC STATUS,Z
  646. CALL KETA2
  647. RETURN
  648. ;
  649. YEN50
  650. ; MOVLW 0C4H ;�E��t
  651. MOVLW 048H ;����t
  652. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  653. ; MOVLW 09H ;�E��t
  654. MOVLW 0DH ;����t
  655. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  656. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  657. ;
  658. INCF TEMP3,F ;�\���f�[�^�{�P
  659. INCF TEMP3,F ;�\���f�[�^�{�P
  660. INCF TEMP3,F ;�\���f�[�^�{�P
  661. INCF TEMP3,F ;�\���f�[�^�{�P
  662. INCF TEMP3,F ;�\���f�[�^�{�P
  663. MOVF TEMP3,0
  664. SUBLW 0Ah
  665. BTFSC STATUS,Z
  666. CALL KETA2
  667. MOVF TEMP3,0
  668. SUBLW 0Bh
  669. BTFSC STATUS,Z
  670. CALL KETA52
  671. MOVF TEMP3,0
  672. SUBLW 0Ch
  673. BTFSC STATUS,Z
  674. CALL KETA53
  675. MOVF TEMP3,0
  676. SUBLW 0Dh
  677. BTFSC STATUS,Z
  678. CALL KETA54
  679. MOVF TEMP3,0
  680. SUBLW 0Eh
  681. BTFSC STATUS,Z
  682. CALL KETA55
  683. CALL WAIT3
  684. BCF T1CON,TMR1ON
  685. RETURN
  686. KETA52
  687. MOVLW 01H
  688. MOVWF TEMP3
  689. INCF TEMP2,F
  690. MOVF TEMP2,0
  691. SUBLW 0Ah
  692. BTFSC STATUS,Z
  693. CALL KETA3
  694. RETURN
  695. KETA53
  696. MOVLW 02H
  697. MOVWF TEMP3
  698. INCF TEMP2,F
  699. MOVF TEMP2,0
  700. SUBLW 0Ah
  701. BTFSC STATUS,Z
  702. CALL KETA3
  703. RETURN
  704. KETA54
  705. MOVLW 03H
  706. MOVWF TEMP3
  707. INCF TEMP2,F
  708. MOVF TEMP2,0
  709. SUBLW 0Ah
  710. BTFSC STATUS,Z
  711. CALL KETA3
  712. RETURN
  713. KETA55
  714. MOVLW 04H
  715. MOVWF TEMP3
  716. INCF TEMP2,F
  717. MOVF TEMP2,0
  718. SUBLW 0Ah
  719. BTFSC STATUS,Z
  720. CALL KETA3
  721. RETURN
  722. ;
  723. YEN1
  724. MOVLW 0B8H ;�E��t
  725. ; MOVLW 88H ;����t
  726. MOVWF CCPR1L ;CCPR1L�ɉ���8�r�b�g�f�[�^��Z�b�g
  727. MOVLW 0BH ;�E��t
  728. ; MOVLW 13H ;����t
  729. MOVWF CCPR1H ;CCPR1H�ɉ���8�r�b�g�f�[�^��Z�b�g
  730. BSF T1CON,TMR1ON ;TMR1��TMR1ON�r�b�g��Z�b�g �J�E���g�J�n
  731. ;
  732. INCF TEMP4,F ;�\���f�[�^�{�P
  733. MOVF TEMP4,0 ; W���W�X�^��P_CNT�̒l����
  734. SUBLW 0Ah ; 10-W��v�Z���� ���@10-W=0�̂Ƃ��̂�Z�t���O��1�ƂȂ�
  735. BTFSC STATUS,Z ; Z=1�̂Ƃ�
  736. CALL KETA1
  737. ;
  738. CALL WAIT3
  739. BCF T1CON,TMR1ON
  740. RETURN
  741. ;
  742. KETA1
  743. CLRF TEMP4
  744. INCF TEMP3,F
  745. MOVF TEMP3,0
  746. SUBLW 0Ah
  747. BTFSC STATUS,Z
  748. CALL KETA2
  749. RETURN
  750. KETA2
  751. CLRF TEMP3
  752. INCF TEMP2,F
  753. MOVF TEMP2,0
  754. SUBLW 0Ah
  755. BTFSC STATUS,Z
  756. CALL KETA3
  757. RETURN
  758. KETA3
  759. CLRF TEMP2
  760. INCF TEMP1,F
  761. MOVF TEMP1,0
  762. SUBLW 0Ah
  763. BTFSC STATUS,Z
  764. CLRF TEMP1
  765. RETURN
  766. ;
  767. SPEAKER
  768. BSF T2CON,00H ;1X:16 01:4 00:1
  769. BCF T2CON,01H ;
  770. BSF T2CON,02H ;1:����
  771. BSF STATUS,RP0 ;�o���N�P
  772. CLRF TRISC ;CPORT��3�r�b�g�߂�o�͂�
  773. MOVLW 0FFH ;1200HZ�A���l������2400Hz
  774. MOVWF PR2 ;����
  775. BCF STATUS,RP0 ;�o���N0
  776. MOVLW 030H ;2/3���炢
  777. MOVWF CCPR1L ;�f���[�e�B����8�r�b�g
  778. MOVLW 0AFH ;������3�r�b�g�ڂ̂ݑ���,������2�r�b�g�ڂ�F�Ńp���X0�Œ�~
  779. MOVWF CCP1CON ;�f���[�e�B�䉺��2�r�b�g
  780.  
  781. CALL WAIT3
  782. BSF STATUS,RP0 ;�o���N�P
  783. MOVLW 0CFH ;1200HZ�A���l������2400Hz
  784. MOVWF PR2 ;����
  785. CALL WAIT3
  786. MOVLW 0AFH ;1200HZ�A���l������2400Hz
  787. MOVWF PR2 ;����
  788. CALL WAIT3
  789. MOVLW 08FH ;1200HZ�A���l������2400Hz
  790. MOVWF PR2 ;����
  791. CALL WAIT3
  792. MOVLW 06FH ;1200HZ�A���l������2400Hz
  793. MOVWF PR2 ;����
  794. CALL WAIT3
  795. MOVLW 08FH ;1200HZ�A���l������2400Hz
  796. MOVWF PR2 ;����
  797. CALL WAIT3
  798. MOVLW 0AFH ;1200HZ�A���l������2400Hz
  799. MOVWF PR2 ;����
  800. CALL WAIT3
  801. MOVLW 0CFH ;1200HZ�A���l������2400Hz
  802. MOVWF PR2 ;����
  803. CALL WAIT3
  804. MOVLW 0FFH ;1200HZ�A���l������2400Hz
  805. MOVWF PR2 ;����
  806. BCF STATUS,RP0 ;�o���N0
  807. RETURN
  808. ;
  809. ;�Ԋu�����pWAIT
  810. WAIT3
  811. MOVLW 005H
  812. MOVWF TCNT3
  813. TLOOP3
  814. CALL WAIT2
  815. DECFSZ TCNT3
  816. GOTO TLOOP3
  817. RETURN
  818. WAIT2
  819. MOVLW 0FFH
  820. MOVWF TCNT2
  821. TLOOP2
  822. CALL WAIT
  823. DECFSZ TCNT2
  824. GOTO TLOOP2
  825. RETURN
  826. WAIT
  827. MOVLW 0FFH
  828. MOVWF TCNT
  829. TLOOP
  830. DECFSZ TCNT
  831. GOTO TLOOP
  832. RETURN
  833. ;
  834. RESET
  835. CLRF TEMP1
  836. CLRF TEMP2
  837. CLRF TEMP3
  838. CLRF TEMP4
  839. RETURN
  840. ;
  841. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement