Advertisement
OneTrueKill

oef4.3

Nov 12th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. $include(c8051f120.inc)
  2.  
  3. cseg at 0000H
  4. jmp main
  5.  
  6.  
  7. cseg at 0003H ; interrupts van interupt lijn 0 zie pg147
  8. jmp ISR_EX0 ;enable flag
  9. cseg at 0013H ; zie pg147 interrupts vector
  10. jmp ISR_EX1 ;enable flag
  11.  
  12.  
  13. cseg at 0060H ;hier om memory overlap te voorkomen
  14. main: clr EA
  15. mov WDTCN,#0DEH
  16. mov WDTCN,#0ADH
  17. setb EA
  18.  
  19. setb EX0 ;enable interrupts van lijn 0 enable flag zie pg147
  20. setb EX1 ;enable interrupts van lijn 1 enable flag zie pg147
  21.  
  22. ; crossbar settings, bepaalde pinnen gedeeld ==> p0 instellen als interrupts lijn zie P217
  23. ; welke bit in welke register setten
  24. mov SFRPAGE,#0FH
  25. mov XBR2,#40H
  26. ; p0.0 wordt interupt line 0 (/int0)
  27. ;In table zien interupt 0 => op XBR1.2 == 2de bit zetten van XBR dus 0000 0100 (2de bit is 3de plaats)
  28. ;In table zien interupt 1 => op XBR1.4 == 4 de bit zetten 0001 0000
  29.  
  30. ; als 2 interupt lijnen dan optellen
  31. ; 0000 0100
  32. ; 0001 0000
  33. ; 0001 0100 ==> 14H
  34.  
  35. mov XBR1,#14H
  36.  
  37.  
  38. mov 20H,#3FH ;bitpatroon
  39. mov 21H,#06H
  40. mov 22H,#5BH
  41. mov 23H,#4FH
  42. mov 24H,#66H
  43. mov 25H,#6DH
  44. mov 26H,#7DH
  45. mov 27H,#07H
  46. mov 28H,#7FH
  47. mov 29H,#6FH
  48.  
  49.  
  50.  
  51. mov P0MDOUT,#10H ;input
  52. mov P1MDOUT,#0FFH ;output
  53. mov P2MDOUT,#0FFH
  54. mov P3MDOUT,#0FFH
  55. mov P4MDOUT,#0FFH
  56.  
  57.  
  58. mov SFRPAGE, #00H
  59. mov TMOD,#10H
  60. mov ckcon, #02H
  61. mov TH1,#6
  62.  
  63.  
  64. clr P0.4 ; voor input
  65.  
  66. ; register zetten
  67. mov R2,#00H
  68. mov R2;
  69. jmp $
  70.  
  71.  
  72.  
  73. ; Toetesenbord layout:
  74. ; 4 5 6 7
  75. ; Interupt lijn 0: O o o o
  76. ; interupt lijn 1: o o o o
  77. ; o o o o
  78. ; o o o o
  79. ;
  80. ;
  81. ;
  82.  
  83.  
  84.  
  85.  
  86. ISR_EX0:setb P0.0 ; als knop niet ingeduwd zal er software matig de pin naar 1 forceren om sneller uit buffer zone te gaan
  87. clr r2
  88.  
  89. reti
  90.  
  91. ISR_EX1: setb P0.4 ; als knop niet ingeduwd zal er software matig de pin naar 1 forceren om sneller uit buffer zone te gaan
  92. mov R2,#00H
  93. reti
  94.  
  95.  
  96.  
  97. loop: mov R4,#0FFH
  98. djnz R4,$
  99. djnz R3,loop
  100. jnb P0.0,ISR_EX0 ; terug opnieuw tot dat input uit buffer gebied is
  101. inc R2
  102. cjne R2,#10d, einde
  103. mov R2,#00d
  104. cpl P1.6
  105.  
  106.  
  107. einde: reti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement