home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
palsum3
/
180degc.pds
< prev
next >
Wrap
Text File
|
1987-08-26
|
3KB
|
105 lines
TITLE 180DEGREE COUNT
PATTERN 01
REVISION 01
AUTHOR CHRIS JAY
COMPANY MMI SANTA CLARA
DATE 17 OCTOBER 1986
;THE PAL20X10 IS DESIGNED TO COUNT UP FROM 0 TO 180
;THEN COUNT DOWN FROM 180 TO 0 FOR THE PURPOSE
;OF ADDRESSING A CLOSE APPROXIMATION TO A SINE
;FUNCTION STORED IN A BIPOLAR PROM. THE OUTPUT FROM
;THE PROM IS FED TO A D/A CONVERTER. THE COUNTER
;HAS THREE MODES OF OPERATION, UP COUNT, DOWN COUNT
;AND LOAD. DURING AN ACTIVE LOAD A PHASE SHIFT MAY
;BE LOADED INTO THE COUNTER, THE SINE WAVE OUTPUT
;FROM THE D/A CONVERTER MAY BE PHASE SHIFTED FROM
;A REFERENCE WITH AN ACCURACY OF ONE DEGREE.
;THE UP REGISTER OUTPUT WILL GO HIGH FOR AN UP
;COUNT AND LOW FOR A DOWN COUNT. CDN WILL GO HIGH
;FOR A DOWN COUNT AND LOW FOR AN UP COUNT.
;THESE CONTROLS AUTOMATICALLY ENABLE UP AND DOWN
;COUNT OF REGISTERS Q0 TO Q7.
CHIP DEGREE PAL20X10
;PIN 1 2 3 4 5 6
CLK /LD D0 D1 D2 D3
;PIN 7 8 9 10 11 12
D4 D5 D6 D7 DOWN GND
;PIN 13 14 15 16 17 18
/OE Q0 Q1 Q2 Q3 Q4
;PIN 19 20 21 22 23 24
Q5 Q6 Q7 UP CDN VCC
EQUATIONS
/Q0 := Q0*/LD ;TOGGLE
+ /D0*LD ;LOAD D0
;
/Q1 := /Q1*/LD ;HOLD Q1
+ /D1*LD ;LOAD D1
:+: Q0*/LD*UP ;COUNT UP
+ /Q0*/LD*/UP ;COUNT DOWN
;
/Q2 := /Q2*/LD ;HOLD Q2
+ /D2*LD ;LOAD D2
:+: Q0*Q1*/LD*UP ;COUNT UP
+ /Q0*/Q1*/LD*/UP ;COUNT DOWN
;
/Q3 := /Q3*/LD ;HOLD Q3
+ /D3*LD ;LOAD D3
:+: Q0*Q1*Q2*/LD*UP ;COUNT UP
+ /Q0*/Q1*/Q2*/LD*/UP ;COUNT DOWN
;
/Q4 := /Q4*/LD ;HOLD Q4
+ /D4*LD ;LOAD D4
:+: Q0*Q1*Q2*Q3*/LD*UP ;COUNT UP
+ /Q0*/Q1*/Q2*/Q3*/LD*/UP ;COUNT DOWN
;
/Q5 := /Q5*/LD ;HOLD Q5
+ /D5*LD ;LOAD D5
:+: Q0*Q1*Q2*Q3*Q4*/LD*UP ;COUNT UP
+ /Q0*/Q1*/Q2*/Q3*/Q4*/LD*/UP ;COUNT DOWN
;
/Q6 := /Q6*/LD ;HOLD Q6
+ /D6*LD ;LOAD D6
:+: Q0*Q1*Q2*Q3*Q4*Q5*/LD*UP ;COUNT UP
+ /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/LD*/UP ;COUNT DOWN
;
/Q7 := /Q7*/LD ;HOLD Q7
+ /D7*LD ;LOAD D7
:+: Q0*Q1*Q2*Q3*Q4*Q5*Q6*/LD*UP ;COUNT UP
+ /Q0*/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/LD*/UP ;COUNT DOWN
;
/UP := /UP*/LD ;HOLD UP
+ DOWN*LD ;LOAD UP COUNT
:+: /Q7*/Q6*/Q5*/Q4*/Q3*/Q2*/Q1*Q0*/LD*/UP ;TOGGLE AT 0
+ Q7*/Q6*Q5*Q4*/Q3*/Q2*Q1*Q0*/LD*UP ;TOGGLE AT 180
;
/CDN := UP*/LD ;HOLD DOWN
+ /DOWN*LD ;LOAD DOWN COUNT
:+: /Q7*/Q6*/Q5*/Q4*/Q3*/Q2*/Q1*Q0*/LD*/UP ;TOGGLE AT 0
+ Q7*/Q6*Q5*Q4*/Q3*/Q2*Q1*Q0*/LD*UP ;TOGGLE AT 180
;
SIMULATION ;
TRACE_ON CLK /DOWN LD UP CDN ;
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 ;
SETF /CLK LD OE D0 D1 D2 ;LOAD COUNT OF
/D3 /D4 /D5 /D6 /D7 DOWN ;7 AND ACTIVE
CLOCKF ;DOWN COUNT.
SETF /LD ;
CLOCKF ;SET TO COUNT
FOR I := 0 TO 17 DO ;MODE
BEGIN CLOCKF ;APPLY EIGHTEEN
END ;CLOCK PULSES
SETF /CLK LD /D0 /D1 /D2 ;LOAD 176 AND
/D3 D4 D5 /D6 D7 /DOWN ;ACTIVE UP COUNT
CLOCKF ;
SETF /LD ;
CLOCKF ;SET COUNT MODE
FOR I := 0 TO 15 DO ;GIVE SIXTEEN
BEGIN CLOCKF ;CLOCK PULSES
END ;
TRACE_OFF