_WELCOMETO Radioland

Главная Схемы Документация Студентам Программы Поиск Top50  
Поиск по сайту



Навигация
Главная
Схемы
Автоэлектроника
Акустика
Аудио
Измерения
Компьютеры
Питание
Прог. устройства
Радио
Радиошпионаж
Телевидение
Телефония
Цифр. электроника
Другие
Добавить
Документация
Микросхемы
Транзисторы
Прочее
Файлы
Утилиты
Радиолюб. расчеты
Программирование
Другое
Студентам
Рефераты
Курсовые
Дипломы
Информация
Поиск по сайту
Самое популярное
Карта сайта
Обратная связь

Студентам


Студентам > Курсовые > Цифровой осциллограф

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

Страница: 6/9

mov SFRPAGE, #00Fh ;Переход на страницу F SFR

;Связывание периферийных устройств с разрядами портов

mov XBR0, #000h

mov XBR1, #080h ;биты SYSCKE T2EXE T2E INT1E T1E INT0E T0E CP1E

;значения 1 0 0 0 0 0 0 0

;/SYSCLK подключен

mov XBR2, #040h ;биты WEAKPUD XBARE CNVST2E T4EXE T4E UART1E EMIFLE CNVST0E

;значения 0 1 0 0 0 0 0 0

;Разрешить установленные перемычки

;Настройка режимов вывода разрядов портов

;1 - режим Push-Pull

;0 - режим Open-Drein

mov P0MDOUT, #03Fh

;Результат настройки портов ввода-вывода

;порт P0

;P0.0 = SYSCLK (Push-Pull Output)(Digital)

;P0.1 = GP I/O (Push-Pull Output)(Digital)

;P0.2 = GP I/O (Push-Pull Output)(Digital)

;P0.3 = GP I/O (Push-Pull Output)(Digital)

;P0.4 = GP I/O (Push-Pull Output)(Digital)

;P0.5 = GP I/O (Push-Pull Output)(Digital)

;P0.6 = GP I/O (Open-Drain Output/Input)(Digital)

;P0.7 = GP I/O (Open-Drain Output/Input)(Digital)

mov P1MDOUT, #0FFh

mov P3MDOUT, #0FFh

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

; Настройка генератора (SYSCLK=100 МГц и на P0.6 выводится 50 МГц )

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

mov SFRPAGE, #00Fh

mov OSCICN, #083h ;1 ;биты IOSCEN IFRDY - - - - IFCN1 IFCN0

;значения 1 0 1 1

;внутренний генератор разрешён

;частота не программируется

;значение предделителя = 1 (SYSCLK=25 МГц)

mov PLL0CN, #000h ;2 ;PLL использует в качестве опорной частоты

;частоту внутреннего генератора

mov SFRPAGE, #000h

mov FLSCL, #030h ;3 ;биты - - FLRT - - - FLWE

;значения 1 1 0

;стирание и запись Flash памяти запрещена

;Память работает на частоте SYSCLK <= 100 MHz

mov SFRPAGE, #00Fh

mov PLL0CN, #001h ;4 ;PLL включен

mov PLL0DIV, #001h ;5 ;предделитель PLL установлен в 1

mov PLL0FLT, #001h ;6 ;диапазон частот, которые делятся 19-30 МГц

;7 ;выходная частота PLL = 65-100 МГц

mov PLL0MUL, #004h ;8 ;коэффициент умножения PLL равен 4

;задержка - 5 мкс ;9

mov i, #040h ;установка задержки

djnz i, $ ;i-- и переход на себя, если не 0

mov PLL0CN, #003h ;10 ;включение PLL

mov i, #0FFh ;установка задержки

PLL_WAIT:

dec i

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 которого считает таймер