Цифровой осциллограф

      mov ACC, i        ;если нет синхронизации с PLL в течении 5us,

      jz PLL_NOWAIT           ;то ошибка в установках PLL

      mov ACC, PLL0CN

      jnb ACC.4, PLL_WAIT     ;задержка до появления синхроимпульсов с PLL

      mov CLKSEL, #022h ;системная частота берётся с PLL и

                        ;делится на 4 перед выводом на P0.0


PLL_NOWAIT:


     

;----------------------------------------------------------------

; Настройка таймера

;----------------------------------------------------------------


;таймер 3 используется для задания частоты дискретизации сигнала с АЦП

 

      mov SFRPAGE, #001h;


      mov TMR3CF, #008h  ; Таймер 3 тактируется от частоты SysClk

                 




;----------------------------------------------------------------

; Настройка прерываний

;----------------------------------------------------------------

      mov SFRPAGE, #000h

      mov IE, #000h          ;Запретить все прерывания

      mov IP, #000h          ;Все устройства имеют низкий приоритет


;-----------------------------------------------------------------

; Главная часть программы

;-----------------------------------------------------------------


; Настройка контроллера SED1335


ConfigSED1335:

      mov R1,#40h    ;установка системы   

      lcall WrComm

      mov DPTR,#msg1 ;параметры установки системы

      lcall WrData


      mov R1,#44h    ;прокрутка

      lcall WrComm

      mov dptr,#msg2 ;параметры прокрутки

      lcall WrData


      mov r1,#5Dh    ;форма курсора

      lcall WrComm

      mov dptr,#msg3 ;параметры курсора

      lcall WrData


      mov r1,#4Ch    ;направление курсора

      lcall WrComm


      mov R1,#5Ah  ;прокрутка по точкам

      lcall WrComm

      mov DPTR,#msg18  ;параметр прокрутки по точкам

      lcall WrData


      mov dptr,#5Bh  ;наложение

      lcall WrComm

      mov dptr,#msg4 ;параметр наложения

      lcall WrData

     

      mov r1,#59h    ;включение/выключение дисплея

      lcall WrComm

      mov dptr,#msg5; параметр дисплея

      lcall WrData



Dig_osc: 

      mov kf,Button_kf 

     

;Выделение битов b2,b1,b0 и запись в kf1

      mov A, kf

      anl A, #007h

      mov kf1, A


;Выделение битов b5,b4,b3 и запись в kf2

      mov A, kf

      RR A

      RR A

      RR A

      anl A, #007h

      mov kf2, A

 

      mov CoefAmplif,Button_CoefAmplif

      mov switch,CoefAmplif


      call InputADC1

      call Converting


; Вывод осциллограммы

      mov R1,#46h; установка курсора

      lcall WrComm

      mov DPTR,#msg6

      lcall WrData

     

      mov R1,#42h; запись в память дисплея

      lcall WrComm

      mov DPTR,#00h


M0:   movx A, @DPTR           ;загрузка в A данных из XRAM

      cjne A, #0A1h, M1       ;загружены все данные?

      ljmp M2


M1:

      mov R1, A

      clr p3.2    ;a0=0=данные

      mov A, R1   ; послать байт данных

      mov P1, A

      clr P3.0    ; CS - строб

      clr P3.1    ; дисплея

      setb P3.1

      setb P3.0

      inc DPTR

      sjmp M0   ; следующий байт


M2:

      sjmp Dig_osc



; Подпрограммы


; WrComm посылает байт в контроллер в виде команды


WrComm:

      setb P3.2   ; a0=1=команда

WrComm_1:

      mov A, R1   ; послать байт данных

      mov P1, A

      clr P3.0    ; CS - строб

      clr P3.1    ; дисплея

      setb P3.1

      setb P3.0

      ret


Write:  clr p3.2       ;a0=0=данные

      sjmp WrComm_1












; WrData посылает байт на который указывает

; DPTR в контроллер ввиде данных.


WrData: clr A                

      movc A, @A+DPTR       ;загрузка в A значения параметра, записанного в ПЗУ

      cjne A, #0A1h, WrData1;загружены все параметры?

      ret


WrData1:

      mov R1, A

      lcall Write   ; отправить

      inc DPTR

      sjmp WrData   ; следующий байт



;-----------------------------------------------------------------

; Подпрограмма ввода с канала 1 АЦП

;-----------------------------------------------------------------

InputADC1:

      mov SFRPAGE, #00Fh                            


;Ввод в XRAM 240 байтов


      cjne kf1,#001h,_5MHz1

;--------------------------

;Частота дискретизации 10 МГц

;--------------------------

_10MHz1:

      mov DPTR, #000h         ;3 

      mov ACC, Padc1            ;3

      movx @DPTR, A             ;3         

      nop               ;1

      mov DPTR, #001h          

      mov ACC, Padc1           

      movx @DPTR, A                        

      nop  

      mov DPTR, #002h          

      mov ACC, Padc1           

      movx @DPTR, A                        

      nop              

;     .

;     .

;       .

      mov DPTR, #0EFh          

      mov ACC, Padc1           

      movx @DPTR, A                        

      nop  


;---------------------------

;Частота дискретизации 5 МГц

;---------------------------

_5MHz1:

      cjne kf1, #002h, _2_5MHz1


      mov DPTR, #000h  

Input1_2:

      mov A, Padc1             

      movx @DPTR, A                        

      inc DPTR           

      mov A, #0F0h             


      ;задержка 70 нс

      nop

      nop

      nop

      nop

      nop

      nop

      nop

      cjne A, DPL, Input1_2       


;-----------------------------

;Частота дискретизации 2.5 МГц

;-----------------------------

_2_5MHz1:

      cjne kf1, #003h, _500KHz1


      ; Задание числа c которого считает таймер

     

      mov DPTR, #000h  

Input1_3:

      mov A, Padc1        ;2     

      movx @DPTR, A                        

      inc DPTR           

      mov A, #0F0h             


      ;задержка 270 нс

      mov i,#008h       ;2

      djnz i,$            ;3

      nop


      nop


      cjne A, DPL, Input1_3       

;-----------------------------

;Частота дискретизации 500 КГц

;-----------------------------

_500KHz1:

      cjne kf1, #004h, _250KHz1


      ; Задание числа c которого считает таймер

      mov SFRPAGE, #001h

      mov RCAP3H,#0FFh

      mov RCAP3L,#05Ch

           

      mov DPTR, #000h  

Input1_4:

      mov SFRPAGE, #00Fh  ;3

      mov A, Padc1          ;2  

      movx @DPTR, A         ;3             

      inc DPTR        ;1   

      mov A, #0F0h          ;2   

      mov SFRPAGE, #001h  ;3

      mov TMR3CN, #004h   ;3

     


      ;задержка 1690 нс


      jnb TMR3CN.7,$     ;4

      nop

      nop



      mov TMR3CN,#000h   ;3

      mov TMR3H,#0FFh ;3

      mov TMR3L,#05Ch ;3


      cjne A, DPL, Input1_4  ;5   

;-----------------------------

;Частота дискретизации 250 КГц

;-----------------------------

_250KHz1:

      cjne kf1, #005h, _50KHz1


      ; Задание числа c которого считает таймер

      mov SFRPAGE, #001h

      mov RCAP3H,#0FEh


      mov RCAP3L,#094h

           

      mov DPTR, #000h  

Input1_5:

      mov SFRPAGE, #00Fh

      mov A, Padc1             

      movx @DPTR, A                        

      inc DPTR           

      mov A, #0F0h             

      mov SFRPAGE, #001h 

      mov TMR3CN, #004h  

     


      ;задержка 3690 нс


      jnb TMR3CN.7,$

      nop

      nop


      mov TMR3CN,#000h       

      mov TMR3H,#0FEh ;3

      mov TMR3L,#094h ;3


      cjne A, DPL, Input1_5       


;-----------------------------

;Частота дискретизации 50 КГц

;-----------------------------

_50KHz1:

      cjne kf1, #006h, _25KHz1


      ;Задание числа c которого считает таймер

     

      mov SFRPAGE, #001h

      mov RCAP3H,#0F8h

      mov RCAP3L,#054h


      mov DPTR, #000h  

Input1_6:

      mov SFRPAGE, #00Fh

      mov A, Padc1             

      movx @DPTR, A                        

      inc DPTR           

      mov A, #0F0h             

      mov SFRPAGE, #001h 

      mov TMR3CN, #004h


        

      ;задержка 19690 нс

      jnb TMR3CN.7,$    

      nop

      nop


      mov TMR3CN,#000h 

      mov TMR3H,#0F8h

      mov TMR3L,#054h


      cjne A, DPL, Input1_6       

;-----------------------------

;Частота дискретизации 25 КГц

;-----------------------------

_25KHz1:

      cjne kf1, #007h, _5KHz1


      mov SFRPAGE, #001h

      mov RCAP3H,#0F0h

      mov RCAP3L,#084h


      mov DPTR, #000h  

Input1_7:

      mov SFRPAGE, #00Fh

      mov A, Padc1             

      movx @DPTR, A                        

      inc DPTR           

      mov A, #0F0h             

      mov SFRPAGE, #001h 

      mov TMR3CN, #004h  


      ;задержка 39 690 нс

      jnb TMR3CN.7,$

      nop

      nop

  

        mov TMR3CN,#000h 

      mov TMR3H,#0F0h

      mov TMR3L,#084h

     

      cjne A, DPL, Input1_7       

;-----------------------------

;Частота дискретизации 5 КГц

;-----------------------------

_5KHz1:

      cjne kf1, #008h, _2_5KHz1


      mov SFRPAGE, #001h

Страницы: 1, 2, 3, 4, 5, 6



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать