Advertisement
Guest User

tangent

a guest
Feb 19th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include "p18F4520.inc"
  2.  
  3. CONFIG OSC = HS
  4. CONFIG PWRT = OFF
  5. CONFIG WDT = OFF
  6. CONFIG PBADEN = OFF
  7. CONFIG LVP = OFF
  8. ;Nedan följer ett grundprogram från boken sidan 468 för angentbord 12-4
  9. D15mH equ D'100'
  10. D15mL equ D'255'
  11. COL equ 0x08
  12. DR15mH equ 0x09
  13. DR15mL equ 0x0A
  14.  
  15. org 0x000000
  16. PORST GOTO MAIN
  17. RESET_ISR GOTO MAIN
  18. org 0x000008
  19. HI_ISR BTFSC INTCON,RBIF
  20. BRA RBIF_ISR
  21. RETFIE
  22.  
  23.  
  24.  
  25.  
  26.  
  27. MAIN CLRF TRISD
  28. BCF INTCON2,RBPU
  29. MOVLW 0xF0
  30. MOVWF TRISB
  31. MOVWF PORTB
  32. KEYOPEN CPFSEQ PORTB
  33. GOTO KEYOPEN
  34. MOVLW upper(KC0DE0)
  35. MOVWF TBLPTRU
  36. MOVLW high(KC0DE0)
  37. MOVWF TBLPTRH
  38. BSF INTCON,RBIE
  39. BSF INTCON,GIE
  40. LOOP GOTO LOOP
  41.  
  42. RBIF_ISR CALL DELAY
  43. MOVFF PORTB,COL
  44. MOVLW 0xFE
  45. MOVWF PORTB
  46. CPFSEQ PORTB
  47. BRA ROW0
  48. MOVLW 0xFC
  49. MOVWF PORTB
  50. CPFSEQ PORTB
  51. BRA ROW1
  52. MOVLW 0xFB
  53. MOVWF PORTB
  54. CPFSEQ PORTB
  55. BRA ROW2
  56. MOVLW 0xF7
  57. MOVWF PORTB
  58. CPFSEQ PORTB
  59. BRA ROW3
  60. GOTO BAD_RBIF
  61.  
  62. ROW0 MOVLW low(KC0DE0)
  63. BRA FIND
  64. ROW1 MOVLW low(KC0DE1)
  65. BRA FIND
  66. ROW2 MOVLW low(KC0DE2)
  67. BRA FIND
  68. ROW3 MOVLW low(KC0DE3)
  69. BRA FIND
  70.  
  71. FIND MOVWF TBLPTR
  72. MOVLW 0xF0
  73. XORWF COL
  74. SWAPF COL,F
  75.  
  76. AGAIN RRCF COL
  77. BC MATCH
  78. INCF TBLPTRL
  79. BRA AGAIN
  80.  
  81. MATCH TBLRD*+
  82. MOVFF TABLAT,PORTD
  83.  
  84. WAIT MOVLW 0xF0
  85. MOVWF PORTB
  86. CPFSEQ PORTB
  87. BRA WAIT
  88. BCF INTCON,RBIF
  89. RETFIE
  90.  
  91. BAD_RBIF MOVLW 0x00
  92. GOTO WAIT
  93.  
  94. DELAY: MOVLW D15mH
  95. MOVWF DR15mH
  96. D2: MOVLW D15mL
  97. MOVWF DR15mL
  98. D1: DECF DR15mL,F
  99. BNZ D1
  100. DECF DR15mH,F
  101. BNZ D2
  102. RETURN
  103.  
  104. org 0x12C
  105. KC0DE0: DB '0', '1', '2', '3'
  106. KC0DE1: DB '4', '5', '6', '7'
  107. KC0DE2: DB '8', '9', 'A', 'B'
  108. KC0DE3: DB 'C', 'D', 'E', 'F'
  109.  
  110. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement