1 4 1234
1 10 40

: " " 6-2006 -

  1. #1
      UB9HCE
    14.07.2004
    150
    UB9HCE

    " " 6-2006 -

    AT90S1200 ATmega8 ?
    Denis.


  2. #2
      UB9HCE
    14.07.2004
    150
    UB9HCE
    ...
    Denis.

  3. #3
      4Y
    04.02.2004
    LO36sd
    976
    R4YS
    ?

  4. #4
      UB9HCE
    14.07.2004
    150
    UB9HCE
    AT90S1200 :(, ATmeg , 3...
    Denis.

  5. #5
      4Y
    04.02.2004
    LO36sd
    976
    R4YS
    , intel 386,486. :-)

  6. #6
      UN9GW
    19.02.2006
    Kazakhstan, Alma-Ata
    2,634
    UN9GW
    , - .
    73! de UN9GW (since 1978) ex UL7-190-007, UL8GCD, UL7GX

  7. #7
      UN9GW
    19.02.2006
    Kazakhstan, Alma-Ata
    2,634
    UN9GW
    - .
    73! de UN9GW (since 1978) ex UL7-190-007, UL8GCD, UL7GX

  8. #8
      Genadi Zawidowski
    22.07.2004
    -
    10,881
    21
    UA1ARN
    ftp://ftp.radio.ru/pub/2006/06/sintez10.zip

    ...

    :
     ;        LM7001
     ;  1.8...16    50 .
    ;   25.11.2005 
    
    .include "1200def.inc"
    .def hertzif = r1
    .def per_delta = r2
    .def pered_l = r3
    .def pered_h = r4
    .def worktx_l = r5
    .def worktx_h = r6
    .def delta_tx = r7
    .def flag_reg = r8
    .def if_l = r9
    .def  if_h= r10
    .def number = r11
    .def ind_l = r12
    .def ind_m = r13
    .def ind_h = r14
    .def delta = r15
    .def fl_l = r16
    .def fl_h =r17
    .def work_l =r18
    .def work_h =r19  
    .def temp =r20
    .def temp1 =r21 
    .def valc = r22
    .def loop = r23
    .def  hertz = r24
    .def mult_l =r25 
    .def mult_m = r26
    .def mult_h = r27
    .def fm_h = r28
    .def fm_l = r29 
    .def temp16_l = r30
    .def temp16_h = r31
    
    .equ flag_sp = 0
    .equ zero = 3
    .equ plus = 2
    .equ one = 1
    .equ min = 0
    .equ att_sav = 7
    
    ;PORTb
    .equ DAC1 =0 ;out
    .equ DAC2 =1;out
    .equ DAC3 =2;out
    .equ DAC4 =3;out
    .equ RIT =4;in
    .equ speed =5;in
    .equ SK  =6;out
    .equ DI  =7;out
    
    
    ;.equ TX  =6 ; TX input, in
    
    ;PORTD
    .equ UP  =0;in
    .equ DN  =1;in
    .equ DATA = 2 ;out
    .equ  CL  =3;out
    .equ CE   =4;out
    .equ plusfc  =5; + - , "0" -  , "1" -  
    .equ DAC0 =6;out
     
    
    
    .cseg
    .org 0
    
    ;****************************************************
    ;*************** ********************
    ;***************************************************
    	
    	ldi temp, 0b00110000
    	out PORTB, temp
    	ldi temp, 0b11001111
    	out DDRB, temp ; 
    	ldi temp, 0b10100011
    	out PORTD, temp
    	ldi temp, 0b01011100
    	out DDRD, temp ; 
    	clr delta;
    
     
    ;***************************************************************         
    ;********    ***********
    ;***************************************************************
    cold_start:ldi temp, 0x50
             rcall pause_ro
    ;**************************************************************
    ;******** ***********************************
    ;**************************************************************        
             
             ldi valc, 0x01
             clr number
             clr delta
     ;************************************************
     ;    
     ;************************************************        
             sbic PINB, RIT		
             rjmp hot_start
             
      ritotp1:ldi temp, 0x02	;   
             rcall pause_ro
    	sbis PINB, RIT		;   ,  
    	rjmp ritotp1
    	
    	ldi temp, 0xF0		; "-"   
    	mov number, temp
    	
            
     	ldi temp, if_hz
     	rcall EERead
     	mov hertzif, temp      
             ldi temp,if_freq  ;            
             rcall EERead
             mov work_h, temp
             ldi temp, if_freq +1
             rcall EERead
             mov work_l, temp 
             
    initial1:rcall display
             
             
             
     ;***************************************         
     ;*** **********************
     ;*************************************
     bigloop1:
    	sbis PINB, RIT ;   
    	rjmp savdata	;
    
    	sbic PIND,UP
             rjmp up_ust1
             
             sbic PIND,DN
             rjmp dn_ust1
    
            sbrc valc, zero
            rjmp bigloop1
            sbrc valc, min
            rjmp rout11
            sbrc valc, plus
            rjmp rout21
             rjmp bigloop1
             
     ;***   ************************
     
     up_ust1:sbic PIND,DN
      	rjmp dbl_one1
      	;  ,  up=1, dn=0
      	sbrc valc,plus
      	rjmp bigloop1
      	;   ?
      	sbrs valc,zero;    
      	rjmp nxt_val1
      	ldi valc, 0b00000100	
      	rcall add_one	;   1
      	rjmp initial1
      nxt_val1:sbrs valc, one ;    1
      	rjmp bigloop1
      	ldi valc,0b000000100
      	rcall sub_one	;  1
      	rjmp initial1
      	
     dbl_one1:sbrc valc,one ;   =0,    
     	rjmp bigloop1	; 
     	sbrs valc,plus;,   
     	rjmp nxt_val21 ;    +1, 
     	ldi valc, 0b00000010	;   
     	rcall add_one
     	rjmp initial1
    nxt_val21:sbrs valc,min
    	rjmp bigloop1
    	ldi valc, 0b00000010
    	rcall sub_one
    	rjmp initial1
    rout11:ldi valc,0b00001000
    	rcall add_one
    	rjmp initial1
    rout21: ldi valc,0b00001000
    	rcall sub_one
    	rjmp initial1
    	
    dn_ust1:sbrc valc, min
    	rjmp bigloop1
    	sbrc valc, zero
    	rjmp rout31
    	sbrc valc, one
    	rjmp rout41
    	rjmp bigloop1
    	
    rout31: ldi valc,0b00000001
    	rcall sub_one
    	rjmp initial1
    rout41: ldi valc,0b00000001
    	rcall add_one
    	rjmp initial1
    	
    ;***********************************************
    ;   
    ;***********************************************
    
    savdata:ldi temp, if_freq
    	mov temp1, work_h
    	rcall EEwrite
    	ldi temp,if_freq+1
    	mov temp1, work_l
    	rcall EEwrite
    	sbis PINB, RIT
    	ldi temp, if_hz
    	mov temp1, hertzif
    ritotp2:ldi temp, 0x02	;   
            rcall pause_ro
    	sbis PINB, RIT		;   ,  
    	rjmp ritotp2
    
    
    	ser temp 
            rcall vyvdig
      	rcall vyvdig
      	ser temp
      	rcall vyvdig
      	rcall vyvdig
      	ser temp
      	rcall vyvdig
      	rcall vyvdig
      	ser temp
      	rcall vyvdig
     	rcall vyvdig
     	ser temp
      	rcall vyvdig
      	rcall vyvdig
      	
    	rjmp cold_start
    
    
    	      
       ;************************** 
       ;            
       ;************************** 
     hot_start:ldi temp, fmin  ;    
     	rcall EERead
     	mov fl_h, temp
     	ldi temp, fmin + 1
     	rcall EERead
     	mov fl_l, temp
     	ldi temp, fmax	;   
     	rcall EERead
     	mov fm_h, temp
     	ldi temp, fmax + 1
     	rcall EERead
     	mov fm_l, temp
     	ldi temp, if_freq	;  
     	rcall EERead
     	 mov if_h, temp                      
     	ldi temp, if_freq + 1
     	rcall EERead
     	mov if_l, temp
     	ldi temp, if_hz
     	rcall EERead
     	mov hertzif, temp      
             ldi temp,ch1  ;            
             rcall EERead
             mov work_h, temp
             mov worktx_h, work_h
             ldi temp, ch1 +1
             rcall EERead
             mov work_l, temp
             mov worktx_l, work_l
             
    
     initial:
    	 rcall display
             rcall syntez
    ;***************************************         
     ;*** **********************
     ;*************************************
     bigloop:
    	sbic PINB, RIT ;   RIT
    	rjmp no_rit	;
    	sbic PINB, speed ; ,    speed
    	rjmp rit_rout;   RIT- 
            rjmp tx_rout ;   - 
     
      no_rit:sbic PIND,UP
             rjmp up_ust
             
             sbic PIND,DN
             rjmp dn_ust
    
            sbrc valc, zero
            rjmp bigloop
            sbrc valc, min
            rjmp rout1
            sbrc valc, plus
            rjmp rout2
             rjmp bigloop
             
     ;***   ************************
     
     up_ust:sbic PIND,DN
      	rjmp dbl_one
      	;  ,  up=1, dn=0
      	sbrc valc,plus
      	rjmp bigloop
      	;   ?
      	sbrs valc,zero;    
      	rjmp nxt_val
      	ldi valc, 0b00000100	
      	rcall add_one	;   1
      	rjmp initial
      nxt_val:sbrs valc, one ;    1
      	rjmp bigloop
      	ldi valc,0b000000100
      	rcall sub_one	;  1
      	rjmp initial
      	
     dbl_one:sbrc valc,one ;   =0,    
     	rjmp bigloop	; 
     	sbrs valc,plus;,   
     	rjmp nxt_val2 ;    +1, 
     	ldi valc, 0b00000010	;   
     	rcall add_one
     	rjmp initial
    nxt_val2:sbrs valc,min
    	rjmp bigloop
    	ldi valc, 0b00000010
    	rcall sub_one
    	rjmp initial
    rout1:ldi valc,0b00001000
    	rcall add_one
    	rjmp initial
    rout2: ldi valc,0b00001000
    	rcall sub_one
    	rjmp initial
    	
    dn_ust:sbrc valc, min
    	rjmp bigloop
    	sbrc valc, zero
    	rjmp rout3
    	sbrc valc, one
    	rjmp rout4
    	rjmp bigloop
    	
    rout3: ldi valc,0b00000001
    	rcall sub_one
    	rjmp initial
    rout4: ldi valc,0b00000001
    	rcall add_one
    	rjmp initial
     
    ;**************** *********************
     
      add_one:
    	 
    	 
    	 sbis PINB,speed
    	 rjmp step_up
    	 inc delta
    	 ldi temp,0x14
    	 cp delta, temp
    	 brne end_add
    	 clr delta
    step_up: clr temp
    	 clc
    	 ldi temp, 0x01
    	 add work_l, temp    ;   1    	
    	 clr temp
    	 adc work_h, temp ;   ,   1  
    	 cp fm_h, work_h	;      ?
    	 brne out_add		; -
    	 cp  fm_l, work_l	;  ,   
    	 brsh out_add
    	 mov work_h, fl_h	;    -    .
    	 mov work_l, fl_l	; 
     end_add:sbrc flag_reg, flag_sp
     	ret 
     	mov delta_tx, delta ;    ,  
     	mov worktx_h, work_h;   
     	mov worktx_l, work_l	 	 
     out_add:ret 
     
     
     ;************ *****************************
      	 
     sub_one:
    	
    	
    	sbis PINB, speed
    	rjmp step_dn
    	dec delta
    	ser temp
    	cp delta, temp
    	brne end_sub
    	ldi temp,0x13
    	mov delta, temp
    
    step_dn:clr temp
    	clc
    	subi work_l, 0x01	;  1  
    	sbc work_h, temp ;   ,   
    	cp work_h, fl_h	 ;   ?
    	brne out_sub	; 
    	cp work_l, fl_l	;   ?
    	brsh out_sub	; 
    	mov work_h, fm_h	; ,    
    	mov work_l, fm_l	; 
    end_sub:sbrc flag_reg, flag_sp
    	ret
    	mov delta_tx, delta
    	mov worktx_h, work_h
     	mov worktx_l, work_l
    out_sub:ret
    
    
    ;**********************************************
    ;**************************************
    ;**********************************************
    
    tx_rout:mov pered_l, work_l	;   
    	mov pered_h, work_h	; 
    	mov work_l, worktx_l	;  
    	mov work_h, worktx_h
    	mov per_delta, delta
    	mov delta, delta_tx
    	ldi temp, 0xB0		; ""   
    	mov number, temp
    	
    	rcall display
    	rcall syntez
    tx_ret:	ldi temp, 0x01	;   
             rcall pause_ro
    	sbis PINB, speed		;     
    	sbic PINB, RIT
    	rjmp end_tx		; 
    	rjmp tx_ret		;  
    	
    end_tx:	mov worktx_l, work_l	;    
    	mov worktx_h, work_h 	; 
    	mov work_l, pered_l	;  
    	mov work_h, pered_h
    	mov delta_tx, delta
    	mov delta, per_delta
    	sbrs flag_reg, flag_sp	;     
    	rjmp del_num
    	ldi temp, 0xE0		; ,  ""	
    	mov number, temp
    	rjmp initial
    del_num:clr number	;  -     
    	rjmp initial
    		
    ;***********************************************	
    ;*************************************
    ;***********************************************	
    rit_rout: ldi temp, 0x02	;   
             rcall pause_ro
    	sbis PINB, RIT		;   ,  
    	rjmp rit_rout
    	mov temp, flag_reg
    	sbrc temp, flag_sp	;   , 
    	rjmp res_rit		;
    	sbr temp, 0x01 	;   , 
    	ldi temp1, 0xE0
    	mov number, temp1	;    ""
    	rjmp end_rit
    res_rit:cbr temp, 0x01 		; 		
    	clr number		;   ""
    	mov delta, delta_tx	;   
    	mov work_h, worktx_h
    	mov work_l, worktx_l
    end_rit:mov flag_reg, temp
    	rjmp initial
    	
    	
    	  
    	 
     ;********************************************** 	 			  	    
     ;******  ******************
     ;*********************************************
     
     ;************    16-   **************
    display:
    	mov mult_l, work_l
    	mov mult_m, work_h
    	ldi temp16_l, 0x10 ;   
    	ldi temp16_h, 0x27
    	rcall decdig
    	mov ind_h, temp
    	add ind_h, number ;    
    	ldi temp16_l, 0xE8 ;  
    	ldi temp16_h, 0x03
    	rcall decdig
    	cpi temp, 0x00
    	brne nextdig2
    	ldi temp, 0x0A
    nextdig2:mov ind_m, temp
    	swap ind_m	
    	ldi temp16_l, 0x64 ;  
    	clr temp16_h
    	rcall decdig
    	cpi temp, 0x00
    	brne nextdig3
    	ldi temp, 0x0A
    nextdig3:add ind_m, temp
    	ldi temp16_l, 0x0A	;   
    	clr temp16_h
    	rcall decdig
    	cpi temp, 0x00
    	brne nextdig4
    	ldi temp, 0x0A
    nextdig4:mov ind_l, temp ;        
    	swap ind_l	;   
    	cpi mult_l,0x00	;    -    .
    	brne enddig
    	ldi mult_l,0x0A
    enddig:add ind_l, mult_l
    
    	
     ;    
      
     	mov hertz, delta	;   2
     	ror hertz
     	brcc zero_hz		;   ,
     	ldi temp, 0x05		;   - 5
     	rjmp next5
     zero_hz: ldi temp,0x0A		;    ""
     next5: cpi hertz, 0x00 ;    = 0,   
      	brne next3
      	ldi hertz, 0x0A
      next3:swap hertz
     	add hertz, temp
     
      ;********************  *************************
    	mov temp, ind_h 
            rcall vyvdig
      	rcall vyvdig
      	mov temp, ind_m
      	rcall vyvdig
    	mov ind_m, temp
    	ldi temp, 0xF0
      	rcall vyvdig
      	mov temp, ind_m
      	rcall vyvdig
      	mov temp, ind_l
      	rcall vyvdig
      	rcall vyvdig
      	ldi temp, 0xF0
     	rcall vyvdig
     	mov temp, hertz
      	rcall vyvdig
      	rcall vyvdig
      	
     ;****************************
     ;*** ************
     ;****************************
     	ldi temp, 0x0A
     	add delta, temp
      	sbrc delta, 0
      	rjmp hi0
      	cbi PORTD, DAC0
      	rjmp next11
      hi0:sbi PORTD, DAC0
      next11:sbrc delta, 1
      	rjmp hi1
      	cbi PORTB, DAC1
      	rjmp next12
      hi1:sbi PORTB, DAC1
      next12:sbrc delta,2
      	rjmp hi2
      	cbi PORTB, DAC2
      	rjmp next13
      hi2:sbi PORTB, DAC2
      next13:sbrc delta, 3
      	rjmp hi3
      	cbi PORTB, DAC3
      	rjmp next14
      hi3:sbi PORTB, DAC3
      next14:sbrc delta,4
      	rjmp hi4
      	cbi PORTB, DAC4
      	rjmp enddac
      hi4:sbi PORTB, DAC4
      enddac:sub delta, temp
      	ret
     	
     
      ;*****   ******************
      ;B0=0, B1=0, B2=0, tb=0, R0=1, R1=1, R2=0, S=1
     syntez:  
     	
     	 mov temp16_l, work_l  ;  -   
     	 mov temp16_h, work_h
     	 sbis PINB, plusfc
     	 rjmp minus_fc
      	 add temp16_l,if_l   ; 
     	 adc temp16_h,if_h
     	 rjmp end_fc
     minus_fc:sub delta, hertzif
     	sub temp16_l, if_l
     	sbc temp16_h, if_h
     	
    	    ;****** ******** 
             
       
     	 
      end_fc:cbi PORTD,DATA
      	sbi PORTD,CE  
      	ldi loop, 0x08
      	mov temp,temp16_l
      loop2:ror temp
      	brcs h_l
      	cbi PORTD, DATA
      	rjmp sync
        h_l:sbi PORTD, DATA
       sync:rcall pulse
      	dec loop
      	brne loop2
      	
      	
      	ldi loop, 0x08
      	mov temp, temp16_h
      loop3:ror temp
      	brcs h_l1
      	cbi PORTD, DATA
      	rjmp sync1
        h_l1:sbi PORTD, DATA
       sync1:rcall pulse
      	dec loop
      	brne loop3
    
      	ldi loop, 0x08
      	ldi temp, 0B10110000
      loop4:ror temp
      	brcs h_l2
      	cbi PORTD, DATA
      	rjmp sync2
        h_l2:sbi PORTD, DATA
       sync2:rcall pulse
      	dec loop
      	brne loop4
      	cbi PORTD, DATA ;CE
      	cbi PORTD, CE 
      	
      	ret
      	
          ;***   ***
     vyvdig: 
    
     	ldi loop,0x04
      byte_c:rol temp
     	brcs h_level
     	cbi PORTB,DI
     	rjmp synhro
     h_level:sbi PORTB,DI
     synhro:sbi PORTB,SK
     	rcall long
     	cbi PORTB,SK
     	rcall long
     	dec loop
     	brne byte_c
     	rcall long
     	cbi PORTB, DI 
     	ret
     ;*************************
     ;        
     ;**************************       
      EEwrite: sbic EECR, EEWE
      	rjmp EEwrite
      	out EEAR, temp
      	out EEDR, temp1
      	sbi EECR, EEWE
      	ret      
     ;***********************
     ;          
     ;***********************
      EEread: sbic EECR,EEWE
      	  rjmp EERead
      	  out EEAR,temp
      	  sbi EECR,EERE
      	  in temp,EEDR
      	  ret  
      ;*********************
      ;        
      ;*********************	  
      pause_ro:
      	 ser temp1
      retu1:ser loop
      retu2:dec loop
      	brne retu2
      	dec temp1
      	brne retu1
      	dec temp
      	brne pause_ro
      	ret
     
      	
      long:	
       	
      	ldi temp1, 0x02 
      retlong:dec temp1
      	brne retlong
      	ret
     ;**********************************************
      ;  -  	
     ;********************************************** 	
     decdig:ldi temp,-1
     minus:sub mult_l, temp16_l
     	sbc mult_m, temp16_h
     	inc temp
     	brsh minus
     	add mult_l, temp16_l
     	adc mult_m, temp16_h
     	ret
     	
     	         
     ;*********************
     ; 
     ;********************* 
      pulse:
      	sbi PORTD, CL
      	ldi temp1,0x1F
       zad1:dec temp1
      	brne zad1
      	cbi PORTD, CL
      	ldi temp1,0x1F
       zad2:dec temp1
       	brne zad2
      	ret     	
      			     
    
    .eseg
    .org 0
      fmin: 
      .db 0x07, 0x12 ;  1810 
      fmax:
      .db 0x07, 0xCF   ;  2000 
       ch1:
      .db 0x07, 0x6C ; -    - 1900  
      if_freq:
      .db 0x22, 0x9E ;  -     -    8862 
      if_hz:
      .db 0x00	; -    - , .  50 
      ;   50/
      
      
      
      .db "(c)Temerev25_11_2005"
    ... !

  9. #9
      UN9GW
    19.02.2006
    Kazakhstan, Alma-Ata
    2,634
    UN9GW
    - , .
    73! de UN9GW (since 1978) ex UL7-190-007, UL8GCD, UL7GX


  10. #10
      UN9GW
    19.02.2006
    Kazakhstan, Alma-Ata
    2,634
    UN9GW
    , 8
    .
        . 

:	syntez_175.gif 
:	1417 
:	6.1  
ID:	3502  
    73! de UN9GW (since 1978) ex UL7-190-007, UL8GCD, UL7GX

,

: 1 (: 0 , : 1)

  1. " "
    dotzz
    : 102
    : 27.09.2020, 04:27
  2. "" .
    AlexanderT
    : 49
    : 16.03.2016, 23:32
  3. : 48
    : 18.04.2011, 13:47
  4. : 1
    : 27.12.2006, 12:54
  5. DDS ""
    RX3AQ
    : 34
    : 27.03.2005, 23:17

  •