Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1.  
  2. PROCESSOR 16F1718
  3. RADIX dec
  4.  
  5. INCLUDE "p16f1718.inc"
  6.  
  7. __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _MCLRE_ON & _BOREN_ON & _FCMEN_OFF
  8. __config _CONFIG2, _PLLEN_OFF & _ZCDDIS_ON & _PPS1WAY_OFF
  9.  
  10.  
  11. S1 EQU 0x74
  12. L1 EQU 0x75
  13. I0 EQU 0x76 ; interrupt temp
  14.  
  15. C1 EQU 0x77
  16. F1 EQU 0x78 ; (not) IOCBF flags
  17.  
  18. ; reset vector
  19.  
  20. PAGESEL init
  21. GOTO init
  22.  
  23. ; interrupt vector
  24.  
  25. ORG __VECTOR_INT
  26.  
  27. BTFSS INTCON,IOCIF
  28. BRA _iocx
  29.  
  30. BANKSEL IOCBF
  31. MOVLW 0xFF
  32. XORWF IOCBF,W
  33. ANDWF IOCBF,F
  34. MOVWF F1
  35.  
  36. BTFSC F1,6
  37. BRA _iocx ; bra to the next number
  38. MOVFW S1 ; **** number inside S1 (?)
  39. BNZ _bnc ; bouncing here
  40. MOVLW 0x02
  41. MOVWF S1
  42.  
  43. BTFSS C1,6
  44. BRA _rised
  45.  
  46. ;BANKSEL PORTB
  47. ;BTFSS PORTB,6
  48.  
  49. BSF IOCBP,IOCBP6
  50. BCF IOCBN,IOCBN6
  51. BCF C1,6 ; ******
  52.  
  53. MOVLW 'L'
  54. CALL dbg
  55.  
  56. ;MOVLW 0x03
  57. ;XORWF L1,F
  58. ;BTFSS L1,0 ; switch led every time button is pushed
  59. ;BRA _iocx
  60. ;BANKSEL TRISA
  61. ;MOVLW 0x02
  62. ;XORWF TRISA,F
  63.  
  64. BRA _iocx
  65.  
  66. _rised: BSF IOCBN,IOCBN6
  67. BCF IOCBP,IOCBP6
  68. BSF C1,6 ; ******
  69.  
  70. MOVLW 'H'
  71. CALL dbg
  72.  
  73. ;MOVLW 0x03
  74. ;XORWF L1,F
  75. ;BTFSS L1,0 ; switch led every time button is pushed
  76. ;BRA _iocx
  77. ;BANKSEL TRISA
  78. ;MOVLW 0x02
  79. ;XORWF TRISA,F
  80.  
  81. _iocx: BANKSEL PIR1
  82. BTFSS PIR1,TMR1IF
  83. BRA _tmr1x
  84.  
  85. BCF PIR1,TMR1IF
  86.  
  87. ; time set
  88.  
  89. BANKSEL TMR1H ; FFFF - 7 (in hex) ... 31k*225us=7
  90. MOVLW 0xFF ; 225us delay
  91. MOVWF TMR1H
  92. MOVLW 0xF8
  93. MOVWF TMR1L
  94.  
  95. MOVFW S1 ; **** number inside S1 (?)
  96. BZ _tmr1x ; if there is nothing we finish interrupt
  97. DECF S1,1
  98.  
  99. _tmr1x: RETFIE
  100.  
  101. _bnc: MOVLW 'B'
  102. CALL dbg
  103.  
  104. ;BANKSEL TRISA
  105. ;MOVLW 0x01 ; switch LED
  106. ;XORWF TRISA,F
  107. BRA _iocx
  108.  
  109. init: BANKSEL LATA
  110. CLRF LATA
  111. CLRF LATB
  112. BSF LATB,7 ; RB7 default high
  113. CLRF LATC
  114.  
  115. BANKSEL TRISA
  116. MOVLW 10011011b ; RA2,RA5,RA6 out
  117. MOVWF TRISA
  118. MOVLW 01111111b ; RB7 out
  119. MOVWF TRISB
  120. MOVLW 11111111b ; all in
  121. MOVWF TRISC
  122.  
  123. ; setup Pin Properties
  124.  
  125. BANKSEL ANSELA
  126. CLRF ANSELB
  127.  
  128. BANKSEL OPTION_REG
  129. BCF OPTION_REG,NOT_WPUEN
  130.  
  131. ; setup IOC
  132.  
  133. BANKSEL IOCAP
  134. MOVLW 01111111b ; RB0-RB6
  135. ;MOVWF IOCBP ; we check falling edge first (N)
  136. MOVWF IOCBN
  137. MOVLW 0xFF
  138. MOVWF C1
  139.  
  140. ; enable IRQ
  141.  
  142. BANKSEL INTCON
  143. BSF INTCON,IOCIE ; enable IOC IRQ
  144. BSF INTCON,PEIE ; enable peripheral IRQ--
  145. BSF INTCON,GIE ; enable global IRQ
  146. BANKSEL PIE1
  147. BSF PIE1,TMR1IE ; enable
  148.  
  149. ; configure timer1
  150.  
  151. BANKSEL T1CON
  152. BSF T1CON,6
  153. BSF T1CON,7
  154. BSF T1CON,TMR1ON ; enable Timer1 On bit
  155. MOVLW 0xFF
  156. IORWF TMR1H,F
  157. IORWF TMR1L,F
  158.  
  159. ; setup EUSART Asynchronous Mode
  160.  
  161. BANKSEL TX1STA
  162. MOVLW 0 ; Baud rate 1Mbps
  163. MOVWF SPBRG
  164.  
  165. BSF TX1STA,BRGH ; High speed baud rate
  166. BSF RC1STA,SPEN
  167. BSF TX1STA,TXEN ; Configures TX1STA
  168.  
  169. BANKSEL OSCCON
  170. MOVLW 01111000b ; IRCF to 16MHz
  171. MOVWF OSCCON
  172.  
  173. BANKSEL RB7PPS
  174. MOVLW 10100b ; Output Source Selection TX/CK
  175. MOVWF RB7PPS
  176. GOTO main
  177.  
  178. dbg: BANKSEL TX1STA
  179. dbgl: BTFSS TX1STA,TRMT
  180. GOTO dbgl
  181. MOVWF TX1REG
  182. RETURN
  183.  
  184. wait: BANKSEL OSCSTAT
  185. waitl: BTFSS OSCSTAT,HFIOFS
  186. GOTO waitl
  187. RETURN
  188.  
  189. main: CALL wait
  190. MOVLW 'A'
  191. CALL dbg
  192.  
  193. stop: GOTO stop
  194. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement