home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / palsum3 / 180degc.pds < prev    next >
Text File  |  1987-08-26  |  3KB  |  105 lines

  1. TITLE 180DEGREE COUNT
  2. PATTERN 01
  3. REVISION 01
  4. AUTHOR CHRIS JAY
  5. COMPANY MMI SANTA CLARA
  6. DATE 17 OCTOBER 1986
  7.  
  8. ;THE PAL20X10 IS DESIGNED TO COUNT UP FROM 0 TO 180
  9. ;THEN COUNT DOWN FROM 180 TO 0 FOR THE PURPOSE
  10. ;OF ADDRESSING A CLOSE APPROXIMATION TO A SINE 
  11. ;FUNCTION STORED IN A BIPOLAR PROM. THE OUTPUT FROM
  12. ;THE PROM IS FED TO A D/A CONVERTER. THE COUNTER
  13. ;HAS THREE MODES OF OPERATION, UP COUNT, DOWN COUNT
  14. ;AND LOAD. DURING AN ACTIVE LOAD A PHASE SHIFT MAY
  15. ;BE LOADED INTO THE COUNTER, THE SINE WAVE OUTPUT
  16. ;FROM THE D/A CONVERTER MAY BE PHASE SHIFTED FROM
  17. ;A REFERENCE WITH AN ACCURACY OF ONE DEGREE.
  18. ;THE UP REGISTER OUTPUT WILL GO HIGH FOR AN UP
  19. ;COUNT AND LOW FOR A DOWN COUNT. CDN WILL GO HIGH
  20. ;FOR A DOWN COUNT AND LOW FOR AN UP COUNT.
  21. ;THESE CONTROLS AUTOMATICALLY ENABLE UP AND DOWN
  22. ;COUNT OF REGISTERS Q0 TO Q7.
  23.  
  24. CHIP DEGREE PAL20X10
  25.  
  26. ;PIN    1    2    3    4    5    6
  27.     CLK    /LD    D0    D1    D2    D3
  28. ;PIN    7    8    9    10    11    12
  29.     D4    D5    D6    D7    DOWN    GND
  30. ;PIN    13    14    15    16    17    18
  31.     /OE    Q0    Q1    Q2    Q3    Q4
  32. ;PIN    19    20    21    22    23    24
  33.     Q5    Q6    Q7    UP    CDN    VCC
  34.  
  35. EQUATIONS
  36.  
  37. /Q0    := Q0*/LD                    ;TOGGLE
  38.     +  /D0*LD                    ;LOAD D0
  39.                             ;
  40. /Q1    := /Q1*/LD                    ;HOLD Q1
  41.     +  /D1*LD                    ;LOAD D1
  42.     :+: Q0*/LD*UP                    ;COUNT UP
  43.     +  /Q0*/LD*/UP                    ;COUNT DOWN
  44.                             ;
  45. /Q2    := /Q2*/LD                    ;HOLD Q2
  46.     +  /D2*LD                    ;LOAD D2
  47.     :+: Q0*Q1*/LD*UP                ;COUNT UP
  48.     +  /Q0*/Q1*/LD*/UP                ;COUNT DOWN
  49.                             ;
  50. /Q3    := /Q3*/LD                    ;HOLD Q3
  51.     +  /D3*LD                    ;LOAD D3
  52.     :+: Q0*Q1*Q2*/LD*UP                ;COUNT UP
  53.     +  /Q0*/Q1*/Q2*/LD*/UP                ;COUNT DOWN
  54.                             ;
  55. /Q4    := /Q4*/LD                    ;HOLD Q4
  56.     +  /D4*LD                    ;LOAD D4
  57.     :+: Q0*Q1*Q2*Q3*/LD*UP                ;COUNT UP
  58.     +  /Q0*/Q1*/Q2*/Q3*/LD*/UP            ;COUNT DOWN
  59.                             ;
  60. /Q5    := /Q5*/LD                    ;HOLD Q5
  61.     +  /D5*LD                    ;LOAD D5
  62.     :+: Q0*Q1*Q2*Q3*Q4*/LD*UP            ;COUNT UP
  63.     +  /Q0*/Q1*/Q2*/Q3*/Q4*/LD*/UP            ;COUNT DOWN
  64.                             ;
  65. /Q6    := /Q6*/LD                    ;HOLD Q6
  66.     +  /D6*LD                    ;LOAD D6
  67.     :+: Q0*Q1*Q2*Q3*Q4*Q5*/LD*UP            ;COUNT UP
  68.     +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/LD*/UP        ;COUNT DOWN
  69.                             ;
  70. /Q7    := /Q7*/LD                    ;HOLD Q7
  71.     +  /D7*LD                    ;LOAD D7
  72.     :+: Q0*Q1*Q2*Q3*Q4*Q5*Q6*/LD*UP            ;COUNT UP
  73.     +  /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/LD*/UP        ;COUNT DOWN
  74.                             ;
  75. /UP    := /UP*/LD                    ;HOLD UP
  76.     +  DOWN*LD                    ;LOAD UP COUNT
  77.     :+: /Q7*/Q6*/Q5*/Q4*/Q3*/Q2*/Q1*Q0*/LD*/UP    ;TOGGLE AT 0
  78.     +   Q7*/Q6*Q5*Q4*/Q3*/Q2*Q1*Q0*/LD*UP        ;TOGGLE AT 180
  79.                             ;
  80. /CDN    := UP*/LD                    ;HOLD DOWN
  81.     +  /DOWN*LD                    ;LOAD DOWN COUNT
  82.     :+: /Q7*/Q6*/Q5*/Q4*/Q3*/Q2*/Q1*Q0*/LD*/UP    ;TOGGLE AT 0
  83.     +   Q7*/Q6*Q5*Q4*/Q3*/Q2*Q1*Q0*/LD*UP        ;TOGGLE AT 180
  84.                             ;
  85. SIMULATION                        ;
  86. TRACE_ON CLK /DOWN LD UP CDN                ;
  87.      Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7             ;
  88. SETF     /CLK LD OE D0 D1 D2                 ;LOAD COUNT OF
  89.     /D3 /D4 /D5 /D6 /D7 DOWN            ;7 AND ACTIVE
  90. CLOCKF                            ;DOWN COUNT.
  91. SETF    /LD                        ;
  92. CLOCKF                            ;SET TO COUNT
  93. FOR I := 0 TO 17 DO                    ;MODE
  94. BEGIN CLOCKF                        ;APPLY EIGHTEEN
  95. END                            ;CLOCK PULSES
  96. SETF    /CLK LD /D0 /D1 /D2                ;LOAD 176 AND
  97.     /D3 D4 D5 /D6 D7 /DOWN                ;ACTIVE UP COUNT
  98. CLOCKF                            ;
  99. SETF    /LD                        ;
  100. CLOCKF                            ;SET COUNT MODE
  101. FOR I := 0 TO 15 DO                    ;GIVE SIXTEEN
  102. BEGIN CLOCKF                        ;CLOCK PULSES
  103. END                            ;
  104. TRACE_OFF    
  105.