home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s079 / 1.img / V10ZPORT.APL < prev    next >
Encoding:
Text File  |  1992-11-17  |  8.3 KB  |  193 lines

  1. TITLE 'APEEL FILE: PEEL22CV10Z CHANGE-OF-STATE INPUT PORT WITH INTERRUPT
  2. DESIGNER: Robin Jigour, ICT
  3. DATE: 5/1/87'
  4.  
  5. PEEL22CV10Z     "The key word 'ZERO_POWER' is omitted for non zero-power mode.
  6.                 "If zero-power is needed, this key word must be specified after
  7.                 "the part number declaration but prior to pin list definition
  8.  
  9. "DESCRIPTION"
  10. "                      PEEL22CV10Z
  11.  
  12. "       Change-of-State Input Port with Interrupt
  13. "                     ____  ____
  14. "                    |    \/    |
  15. "               CLK  { 1     24 }  Vcc
  16. "                I0  { 2     23 }- D0
  17. "                I1  { 3     22 }- D1
  18. "                I2  { 4     21 }- D2       ( - = output )
  19. "                I3  { 5     20 }- D3
  20. "               /CS  { 6     19 }- NEQ
  21. "               /RD  { 7     18 }- INTR
  22. "                I4  { 8     17 }- D4
  23. "                I5  { 9     16 }- D5
  24. "                I6  {10     15 }- D6
  25. "                I7  {11     14 }- D7
  26. "               GND  {12     13 }  A0
  27. "                    |__________|
  28.  
  29. " This application uses the PEEL22CV10Z as an 8-bit input port for
  30. " a microprocessor that can detect a change-of-state on its I(0-7)
  31. " input pins. When detected, the INTR output is set for interrupting
  32. " the uP. The INTR output is also used to clock the PEEL device for
  33. " latching the state change into the eight pseudo-buried registers. The
  34. " registers can be read by the CPU on D0-D7 as listed in the table below.
  35. " Once read, unless another change has occurred, the INTR will be reset.
  36. " The NEQ output provides a non-latched (not equal) output signal which
  37. " can be used for the clock instead of the INTR pin. Doing this allows the
  38. " last change to be saved instead of the first. The I(0-7) pins can also
  39. " be directly read as a standard input port when addressed by A0.
  40.  
  41. " Address        Data Outputs
  42. " -----------    ---------------------------
  43. " A0  CS  RD     D0-7
  44. "  X   1   X     Hi-Z
  45. "  X   X   1     Hi-Z
  46. "  0   0   0     Read D0-D7 Buried Registers
  47. "  1   0   0     Read I0-I7 Inputs pins
  48.  
  49.  
  50. "PIN DEFINITIONS"
  51.  
  52. "Inputs"
  53.  
  54. CLK      pin 1   "Must be connected to pin 18, INTR.
  55. I0       pin 2   "I0-I7 inputs can detect change-of-state.
  56. I1       pin 3
  57. I2       pin 4
  58. I3       pin 5
  59. !RD      pin 6
  60. !CS      pin 7
  61. I4       pin 8
  62. I5       pin 9
  63. I6       pin 10
  64. I7       pin 11
  65. A0       pin 13
  66.  
  67. "Outputs"
  68.  
  69. D7       pin 14 = pos com feed_reg   "Pseudo buried registers.
  70. D6       pin 15 = pos com feed_reg
  71. D5       pin 16 = pos com feed_reg
  72. D4       pin 17 = pos com feed_reg
  73. INTR     pin 18 = pos com feed_or
  74. NEQ      pin 19 = pos com feed_or
  75. D3       pin 20 = pos com feed_reg
  76. D2       pin 21 = pos com feed_reg
  77. D1       pin 22 = pos com feed_reg
  78. D0       pin 23 = pos com feed_reg
  79.  
  80.  
  81. EQUATIONS
  82.  
  83. D0 = I0 & !CS #               "I0 to D0 register.
  84.      I0 &  CS & !RD #         "I0 to D0 register.
  85.      D0 &  CS & RD & !A0 #    "Read D0 register.
  86.      I0 &  CS & RD & A0       "Read I0.
  87.      Enable D0 = CS & RD      "Enable onto data bus.
  88.  
  89. D1 = I1 & !CS #               "I1 to D1 register.
  90.      I1 &  CS & !RD #         "I1 to D1 register.
  91.      D1 &  CS & RD & !A0 #    "Read D1 register.
  92.      I1 &  CS & RD &  A0      "Read I1.
  93.      Enable D1 = CS & RD      "Enable onto data-bus.
  94.  
  95. D2 = I2 & !CS #               "I2 to D2 register.
  96.      I2 &  CS & !RD #         "I2 to D2 register.
  97.      D2 &  CS & RD & !A0 #    "Read D2 register.
  98.      I2 &  CS & RD &  A0      "Read I2.
  99.      Enable D2 = CS & RD      "Enable onto data-bus.
  100.  
  101. D3 = I3 & !CS #               "I3 to D3 register.
  102.      I3 &  CS & !RD #         "I3 to D3 register.
  103.      D3 &  CS &  RD & !A0 #   "Read D3 register.
  104.      I3 &  CS &  RD &  A0     "Read I3.
  105.      Enable D3 = CS & RD      "Enable onto data-bus.
  106.  
  107. D4 = I4 & !CS #               "I4 to D4 register.
  108.      I4 &  CS & !RD #         "I4 to D4 register.
  109.      D4 &  CS & RD & !A0 #    "Read D4 register.
  110.      I4 &  CS & RD & A0       "Read I4.
  111.      Enable D4 = CS & RD      "Enable onto data bus.
  112.  
  113. D5 = I5 & !CS #               "I1 to D5 register.
  114.      I5 &  CS & !RD #         "I1 to D5 register.
  115.      D5 &  CS & RD & !A0 #    "Read D5 register.
  116.      I5 &  CS & RD &  A0      "Read I5.
  117.      Enable D5 = CS & RD      "Enable onto data-bus.
  118.  
  119. D6 = I6 & !CS #               "I6 to D6 register.
  120.      I6 &  CS & !RD #         "I6 to D6 register.
  121.      D6 &  CS & RD & !A0 #    "Read D6 register.
  122.      I6 &  CS & RD &  A0      "Read I6.
  123.      Enable D6 = CS & RD      "Enable onto data-bus.
  124.  
  125. D7 = I7 & !CS #               "I7 to D7 register.
  126.      I7 &  CS & !RD #         "I7 to D7 register.
  127.      D7 &  CS &  RD & !A0 #   "Read D7 register.
  128.      I7 &  CS &  RD &  A0     "Read I7.
  129.      Enable D7 = CS & RD      "Enable onto data-bus.
  130.  
  131. NEQ = I0 & !D0 # !I0 & D0 #    "Compare I0-7 with D0-7 registers.
  132.       I1 & !D1 # !I1 & D1 #    "NEQ=1 if I0-7 and D0-7 are not equal.
  133.       I2 & !D2 # !I2 & D2 #
  134.       I3 & !D3 # !I3 & D3 #
  135.       I4 & !D4 # !I4 & D4 #
  136.       I5 & !D5 # !I5 & D5 #
  137.       I6 & !D6 # !I6 & D6 #
  138.       I7 & !D7 # !I7 & D7
  139.  
  140. INTR = NEQ  & !CS #    "Latch not-equal status for uP interrupt and
  141.        NEQ  & !RD #    "PEEL clock. Clear interrupt when registers
  142.        NEQ  &  A0 #    "are read and there are no more input state
  143.        INTR & !CS #    "changes, that is, when NEQ, CS, RD and A0
  144.        INTR & !RD #    "are all 0.
  145.        INTR &  A0
  146.  
  147.  
  148. TEST_VECTORS "Test change-of-state input port I0-7 operation"
  149.  
  150. ( CLK  I0 I1 I2 I3 I4 I5 I6 I7 A0  CS RD  -> D0 D1 D2 D3 D4 D5 D6 D7 NEQ INTR )
  151.  
  152.     0   0  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   X  0
  153.     0   0  0  0  0  0  0  0  0  0   1  1  ->  X  X  X  X  X  X  X  X   L  0
  154.     0   1  0  0  0  0  0  0  0  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  155.     1   1  0  0  0  0  0  0  0  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  156.     1   1  0  0  0  0  0  0  0  0   1  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  157.     1   1  0  0  0  0  0  0  0  0   1  1  ->  H  L  L  L  L  L  L  L   L  L
  158.     0   1  0  0  0  0  0  0  0  0   1  1  ->  H  L  L  L  L  L  L  L   L  L
  159.     0   1  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  L
  160.     0   0  0  0  0  0  0  0  0  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  161.     1   0  0  0  0  0  0  0  0  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  162.     1   0  0  0  0  0  0  0  0  0   1  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  163.     1   0  0  0  0  0  0  0  0  0   1  1  ->  L  L  L  L  L  L  L  L   L  L
  164.     0   0  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  L
  165.     0   1  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  166.     1   1  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  167.     1   1  1  1  1  1  1  1  1  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  168.     1   1  1  1  1  1  1  1  1  0   1  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  169.     1   1  1  1  1  1  1  1  1  0   1  1  ->  H  L  L  L  L  L  L  L   H  L
  170.     0   1  1  1  1  1  1  1  1  X   0  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  171.     1   1  1  1  1  1  1  1  1  0   1  0  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  172.     1   1  1  1  1  1  1  1  1  0   1  1  ->  H  H  H  H  H  H  H  H   L  L
  173.     0   1  1  1  1  1  1  1  1  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  L
  174.     0   0  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  175.     1   0  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  176.     1   0  0  0  0  0  0  0  0  0   1  1  ->  L  L  L  L  L  L  L  L   L  L
  177.     0   0  0  0  0  0  0  0  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  L
  178.  
  179. "Test direct read of inputs during a change-of-state"
  180.  
  181.     0   1  0  1  0  1  0  1  0  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  182.     1   1  0  1  0  1  0  1  0  1   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  183.     1   1  0  1  0  1  0  1  0  1   1  1  ->  H  L  H  L  H  L  H  L   L  H
  184.     1   0  1  0  1  0  1  0  1  1   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  185.     1   0  1  0  1  0  1  0  1  1   1  1  ->  L  H  L  H  L  H  L  H   H  H
  186.     1   0  1  0  1  0  1  0  1  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  187.     1   0  1  0  1  0  1  0  1  0   1  1  ->  H  L  H  L  H  L  H  L   H  L
  188.     0   0  1  0  1  0  1  0  1  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   H  H
  189.     1   0  1  0  1  0  1  0  1  X   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  H
  190.     1   0  1  0  1  0  1  0  1  0   1  1  ->  L  H  L  H  L  H  L  H   L  L
  191.     0   0  1  0  1  0  1  0  1  0   0  X  ->  Z  Z  Z  Z  Z  Z  Z  Z   L  L
  192.  
  193.