Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1.  
  2.  
  3. ; TP#1 MICROCONTROLADORES == PIC16F877A Rafael Freitas(13951) & Fabio Oliveira(13958) com sensor(potenciometro), interrupção externa, reset e utilização de conversor A/D do PIC
  4.  
  5. list p=16f877a
  6. #include <p16f877a.inc>
  7.  
  8. __config _RC_OSC & _WDT_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_ON & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF
  9.  
  10. #define bank0 banksel PORTA
  11. #define bank1 banksel TRISA
  12. #define interrup PORTB,RB0
  13. #define potencia PORTA,RA0
  14. #define unid PORTC,RC7
  15. #define dec PORTC,RC6
  16.  
  17. W_TEMP EQU H'20'
  18. STATUS_TEMP EQU H'21'
  19. PCLATH_TEMP EQU H'22'
  20. UNID_DISP EQU H'23'
  21. DEC_DISP EQU H'24'
  22. W_TEST EQU H'25'
  23.  
  24. ORG 0x0000
  25. nop
  26. goto main
  27.  
  28. ORG 0x0004
  29. MOVWF W_TEMP
  30. SWAPF STATUS,W
  31. CLRF STATUS
  32. MOVWF STATUS_TEMP
  33. MOVF PCLATH, W
  34. MOVWF PCLATH_TEMP
  35. CLRF PCLATH
  36.  
  37. btfss INTCON, INTF
  38. goto exit_ISR
  39. bcf INTCON, INTF
  40. bsf ADCON0, GO_DONE
  41.  
  42. wait_ADC
  43. btfsc ADCON0,GO_DONE
  44. goto wait_ADC
  45. movf ADRESH, W
  46. movwf W_TEST
  47. rrf W_TEST, F
  48. bcf W_TEST, 7
  49. movlw B'11110000'
  50. movwf UNID_DISP
  51. movlw B'00001111'
  52. movwf DEC_DISP
  53. movf W_TEST,W
  54. call TABELA
  55. movwf W_TEST
  56. call ALUNO_NUM
  57. call DISPLAY
  58.  
  59. exit_ISR
  60. MOVF PCLATH_TEMP, W
  61. MOVWF PCLATH
  62. SWAPF STATUS_TEMP,W
  63. MOVWF STATUS
  64. SWAPF W_TEMP,F
  65. SWAPF W_TEMP,W
  66. retfie
  67.  
  68. main
  69. bank1
  70. movlw H'00'
  71. movwf CMCON
  72. movlw H'FF'
  73. movwf TRISB
  74. movlw H'FF'
  75. movwf TRISA
  76. movlw H'30'
  77. movwf TRISC
  78. bsf OPTION_REG, 6
  79. movlw H'0E'
  80. movwf ADCON1
  81.  
  82. bank0
  83. movlw H'00'
  84. movwf PORTC
  85. bsf ADCON0, ADON
  86. movlw B'10000000'
  87. movwf UNID_DISP
  88. movlw B'01000000'
  89. movwf DEC_DISP
  90. movlw H'D0'
  91. movwf INTCON
  92.  
  93. loop
  94. CALL ATUALIZA_UNID
  95. CALL ATUALIZA_DEC
  96. ; bsf INTCON, INTF
  97. goto loop
  98.  
  99. ALUNO_NUM
  100. btfsc W_TEST,0
  101. return
  102. btfsc W_TEST,1
  103. return
  104. btfsc W_TEST,2
  105. return
  106. btfsc W_TEST,3
  107. return
  108. btfsc W_TEST,4
  109. return
  110. btfsc W_TEST,5
  111. return
  112. btfsc W_TEST,6
  113. return
  114. btfsc W_TEST,7
  115. retlw W_TEST
  116. movlw B'00011000'
  117. movwf W_TEST
  118. retlw B'00011000'
  119.  
  120. DISPLAY
  121. andwf UNID_DISP
  122. swapf UNID_DISP
  123. movf W_TEST, W
  124. ANDWF DEC_DISP
  125. return
  126.  
  127. ATUALIZA_UNID:
  128. bcf dec
  129. clrf PORTC
  130. movf UNID_DISP,W
  131. movwf PORTC
  132. bsf unid
  133. return
  134.  
  135. ATUALIZA_DEC:
  136. bcf unid
  137. clrf PORTC
  138. movf DEC_DISP,W
  139. movwf PORTC
  140. bsf dec
  141. return
  142.  
  143. TABELA
  144. ADDWF PCL,F
  145. RETLW 0x00
  146. RETLW 0x00
  147. RETLW 0x01
  148. RETLW 0x01
  149. RETLW 0x02
  150. RETLW 0x02
  151. RETLW 0x02
  152. RETLW 0x03
  153. RETLW 0x03
  154. RETLW 0x04
  155. RETLW 0x04
  156. RETLW 0x04
  157. RETLW 0x05
  158. RETLW 0x05
  159. RETLW 0x05
  160. RETLW 0x06
  161. RETLW 0x06
  162. RETLW 0x07
  163. RETLW 0x07
  164. RETLW 0x07
  165. RETLW 0x08
  166. RETLW 0x08
  167. RETLW 0x09
  168. RETLW 0x09
  169. RETLW 0x09
  170. RETLW 0x10
  171. RETLW 0x10
  172. RETLW 0x11
  173. RETLW 0x11
  174. RETLW 0x11
  175. RETLW 0x12
  176. RETLW 0x12
  177. RETLW 0x12
  178. RETLW 0x13
  179. RETLW 0x13
  180. RETLW 0x14
  181. RETLW 0x14
  182. RETLW 0x14
  183. RETLW 0x15
  184. RETLW 0x15
  185. RETLW 0x16
  186. RETLW 0x16
  187. RETLW 0x16
  188. RETLW 0x17
  189. RETLW 0x17
  190. RETLW 0x18
  191. RETLW 0x18
  192. RETLW 0x18
  193. RETLW 0x19
  194. RETLW 0x19
  195. RETLW 0x20
  196. RETLW 0x20
  197. RETLW 0x20
  198. RETLW 0x21
  199. RETLW 0x21
  200. RETLW 0x21
  201. RETLW 0x22
  202. RETLW 0x22
  203. RETLW 0x23
  204. RETLW 0x23
  205. RETLW 0x23
  206. RETLW 0x24
  207. RETLW 0x24
  208. RETLW 0x25
  209. RETLW 0x25
  210. RETLW 0x25
  211. RETLW 0x26
  212. RETLW 0x26
  213. RETLW 0x27
  214. RETLW 0x27
  215. RETLW 0x27
  216. RETLW 0x28
  217. RETLW 0x28
  218. RETLW 0x28
  219. RETLW 0x29
  220. RETLW 0x29
  221. RETLW 0x30
  222. RETLW 0x30
  223. RETLW 0x30
  224. RETLW 0x31
  225. RETLW 0x31
  226. RETLW 0x32
  227. RETLW 0x32
  228. RETLW 0x32
  229. RETLW 0x33
  230. RETLW 0x33
  231. RETLW 0x34
  232. RETLW 0x34
  233. RETLW 0x34
  234. RETLW 0x35
  235. RETLW 0x35
  236. RETLW 0x35
  237. RETLW 0x36
  238. RETLW 0x36
  239. RETLW 0x37
  240. RETLW 0x37
  241. RETLW 0x37
  242. RETLW 0x38
  243. RETLW 0x38
  244. RETLW 0x39
  245. RETLW 0x39
  246. RETLW 0x39
  247. RETLW 0x40
  248. RETLW 0x40
  249. RETLW 0x41
  250. RETLW 0x41
  251. RETLW 0x41
  252. RETLW 0x42
  253. RETLW 0x42
  254. RETLW 0x43
  255. RETLW 0x43
  256. RETLW 0x43
  257. RETLW 0x44
  258. RETLW 0x44
  259. RETLW 0x44
  260. RETLW 0x45
  261. RETLW 0x45
  262. RETLW 0x46
  263. RETLW 0x46
  264. RETLW 0x46
  265. RETLW 0x47
  266. RETLW 0x47
  267. RETLW 0x48
  268. RETLW 0x48
  269. RETLW 0x48
  270. RETLW 0x49
  271. RETLW 0x49
  272. RETLW 0x50
  273. RETLW 0x50
  274. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement