; This section of code is to program LMX2326 Frequency Synthesizer using ; ATMEL AT89C2051 (20 pin) microcontroller at 2.225 GHz $MOD51 ORG 000H ; P3.0 ATTACHED TO CLOCK ; P3.1 ATTACHED TO DATA ; P3.2 ATTACHED TO LE CLOCK EQU P3.0 DAT EQU P3.1 EN EQU P3.2 IN: MOV P3,#00H ; THE SEQUENCE OF PROGRAMMING HAS BEEN TAKEN FROM NATIONAL SEMI- ; CONDUCTOR'S "CODE LOADER" SOFTWARE (SEQUENCE IS R,N,F) ;**** DATA FOR THE REGISTERS R,N AND F, STARTING FROM LOCATION 20H ****** ; DATA FOR "R" REGISTER OF PLL MOV 20H,#00H MOV 21H,#00H MOV 22H,#0A0H ; R=40 ;DATA FOR "N" REGISTER OF PLL MOV 23H,#10H MOV 24H,#8BH MOV 25H,#11H ;N=8900 ; DATA TO "FUNCTION LATCH FOR INITIALIZATION" (C1=0, C2=1) MOV 26H,#00H MOV 27H,#00H MOV 28H,#92H ;DIGITAL LOCK DETECT ENABLED, PHASE DETECTOR ;POLARITY IS POSITIVE ; THERE ARE 3 STREAMS OF DATA, ONE FOR R, ONE FOR N AND ONE FOR F. ; EACH OF THE ABOVE MENTIONED STEAMS HAS 3 BYTES EACH. ;****** DATA IS SENT TO PLL SYNCHRONOUS SERIALLY ***************** ;****** USING P1.0 AS CLOCK, P1.1 AS DATA AND P1.2 AS LE ********* MOV R3,#03H ; TOTAL NO. OF DATA STREAMS TO BE SENT ; TO THE PLL (ONE FOR "R",ONE FOR "N" AND ONE FOR "F") MOV R0,#20H ; ADDRESS OF THE FIRST BYTE OF DATA, DATA WAS PUT IN ; THE MEMORY STARTING FROM LOCATION 20H STA: MOV R2,#03H ;TOTAL NO. OF DATA BYTES IN ONE STREAM INIT: MOV R1,#08H ;8 BITS IN ONE DATA BYTE CLR EN ;CLR "LE" PIN OF PLL REP: MOV A,@R0 ;DATA BYTE IS TRANSFERRED INTO ACC. GOON: MOV C,ACC.7 ;NEXT DATA "BIT" IS PUT ON P1.1 MOV DAT,C RL A ;ROTATE TO PUT DATA THE MOVE THE NEXT DATA BIT TO ;ACC.7 POSITION. SO THAT IT SHOULD BE THE NEXT BIT ;TO BE TRANSMITTED CALL DELAY2 SETB CLOCK ;CLOCK IS TRIGGERED TO LATCH THE DATA CALL DELAY2 CLR CLOCK CALL DELAY2 CLR DAT ;DATA BIT IS SET TO LOW AFTER BEING LATCHED CALL DELAY2 DJNZ R1,GOON INC R0 DJNZ R2,INIT ;WHEATHER 3 BYTES OF ONE STREAM GONE? SETB EN ;IF YES, TRIGGER "LE" TO LATCH THE DATA CALL DELAY2 ;TO THE APPROPRIATE REGISTER CLR EN CALL DELAY2 DJNZ R3,STA ;WHEATHER 3 STREAMS OF DATA GONE? JMP IN ;IF YES, THEN RELOAD ;*************** FROM NOW ON DELAYS STARTS ************************ ;*************** WHICH HAVE BEEN CALLED THROUGHT THE PROGRAM ****** DELAY1: MOV 72H,#10 ;A DELAY OF 10 msec MOV 71H,#87 TT1: DJNZ 71H,TT1 DJNZ 72H,TT1 RET DELAY: MOV 6DH,#180 ;A DELAY OF 100 msec MOV 6CH,#72 TT: DJNZ 6CH,TT DJNZ 6DH,TT RET DELAY3: MOV 70H,#8 ;A DELAY OF 1 sec MOV 6FH,#8 MOV 6EH,#236 TT3: DJNZ 6EH,TT3 DJNZ 6FH,TT3 DJNZ 70H,TT3 RET DELAY4: MOV 6BH,#36 ;A DELAY OF 5 sec MOV 6AH,#40 MOV 69H,#176 TT4: DJNZ 69H,TT4 DJNZ 6AH,TT4 DJNZ 6BH,TT4 RET DELAY2: MOV 70H,#43 ; A DELAY OF 0.1 msec TT2: DJNZ 70H,TT2 RET END