Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры

контрактная разработка, преобразователь интерфейса i2c, преобразователь интерфейса MicroLan, преобразователь интерфейса ModBas, сигма дельта ацп, управление гидравлическими приводами, конвертор интерфейса, конвертор протоколов, конвертор скоростей, макетная плата, промышленная автоматика, модульные контроллеры, basic, микроконтроллер basic, конвертор usb, конвертор rs232, конвертор rs422, конвертор rs485, преобразователь usb, преобразователь rs232, преобразователь rs422, преобразователь rs485, узел автоматики, шаговый двигатель, работа с термодатчиком, подключение ds18, репитер, модули входов, модули гальванической развязки, модуль ацп, модуль цап, модуль индикации, речевой модуль, модуль выходов, графический жки, примеры программ, программируемый логический контроллер
Преобразователь USB | Конвертор интерфейсов USB RS232 RS485 RS422 I2C Microlan Modbus RTU SPI Ethernet | Конверторы протоколов и скоростей | Узлы автоматики | Модульные контроллеры
Главная|Прайс-лист|FAQ|Обмен опытом|Контакты|Новости|DOWNLOAD| | Добавить в избранное | Назад
Комплект модулей MCU4 [OUT9-1.1 ]
Комплект модулей MCU4 - OUT9-1.1 - Активный модуль управления 2 шаговыми/линейными двигателями)

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Активный модуль управления 2 шаговыми/линейными двигателями)
Конвертеры интерфейсов [RSX5-4 ]
Конверторы интерфейсов - RSX5-4 - Репитер RS485 с гальванической развязкой

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Репитер RS485 с гальванической развязкой
Узлы автоматики [MCX52-3.1 DIN ]
Узлы автоматики - MCX52-3.1 DIN - Узел 10 линий ввода-вывода в 70мм - DIN конструктиве (USB+RS232+RS485 <=opto=> 10 in/out {10*сигма-дельта АЦП 24bit} PIC18F2520 ref 2.5)

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Узел 10 линий ввода-вывода в 70мм - DIN конструктиве (USB+RS232+RS485 <=opto=> 10 in/out {10*сигма-дельта АЦП 24bit} PIC18F2520 ref 2.5)

Разделы:

О фирме
 
Продукция
Программы
Справочник
 
Ссылки


RSX4-5.x    Преобразователь USB - RS485

Преобразователь / конвертор интерфейсов USB - RS485
  • Чип моста      CP2104
  • USB 2.0 full-speed (12 Mbps)
  • Поддержка Windows , WinCE, Macintosh, Linux, Android
  • Поддерживаемые форматы данных: 5-8D, 0-1P, 1-1.5-2S
  • Число узлов    до 256
  • Диапазон скоростей    до 1 000 000 bps
  • Длина линии до    1200 м
  • ESD Protection    не менее 15 kV
  • Гальваническая развязка    2500 V rms
  • Галванический зазор      8 мм
  • Индикация
  • Подтяжка сигналов RS485 к питанию 1кОм/1кОм
  • Терминатор      120 Ом
  • Диапазон рабочих температур   -40...+75 Град
  • Размер    52(+13) * 18 * 9(+4)  мм
  •  

    Скачать

    ;******************************************************************************
    ; *
    ; Filename: MCX52-3_1_2.asm *
    ; Date: 18.05.07 *
    ; File Version: 1.02 *
    ; *
    ; Author: Tarasov A.V. *
    ; Company: Fractal *
    ; *
    ;******************************************************************************
    ; Files required: P18F2520.INC *
    ;******************************************************************************
    ;укажем версию и тип процессора
    #DEFINE VERS 0x0102 ;версия программы
    #DEFINE TYPE_PIC 1 ;1 => PIC18F2520

    ;v1.02 при копировании значений ADC24 запрещаются прерывания для целостности данных
    ;v1.01
    ;проверено на версии 4.36
    ;ЧАСТОТА кварца 32 000 000 Гц
    ;******************************************************************************
    ;RA0-AN вход IN5(X7) ->AN0
    ;RA1-AN вход IN8(X10) ->AN1
    ;RA2-AN вход IN9(X11) ->AN2
    ;RA3-AN_REF опорное напряжение 4.096В
    ;RA4-x
    ;RA5-x
    ;RB0-AN вход IN0(X2) ->AN12
    ;RB1-AN вход IN1(X3) ->AN10
    ;RB2-AN вход IN2(X4) ->AN8
    ;RB3-AN вход IN3(X5) ->AN9
    ;RB4-AN вход IN4(X6) ->AN11
    ;RB5-x
    ;RB6-x
    ;RB7-x
    ;RC0-OUT-DIR-UART
    ;RC1-x
    ;RC2-x
    ;RC3-x
    ;RC4-x
    ;RC5-x
    ;RC6-OUT-UART
    ;RC7-IN-UART
    ;******************************************************************************
    ;Драйвер загружаемый в узлы MCX52-3.x поверх основной прошивки Fractal
    ;Производится измерение 8 аналоговых входов с использованием
    ; встроенного в микроконтроллер АЦП 10 бит(для PIC18F2520) или 12 бит(для PIC18F2523)
    ;В ячейках ADCx_x пользователь получает измерения по соответствующему каналу
    ;преобразования идут каждые 100мкс (т.е. 800мкс на все каналы)

    ;Производятся измерения 10 разных значений АЦП24 с периодом 10мс* PERIOD (по умолчанию 200мс)
    ;и сохраняются в ячейках ADC24x_x.
    ;По умолчанию 10 измерений назначены на 10 разных псевдодифференциальных канала в биполярном режиме.
    ;Пользователь может менять последовательность,режимы и количество каналов сам,
    ;занося в ADC24x_R необходимый номер и режим канала
    ;значение этой ячейки будет занесено в регистр 0x02 AD7718 см.описание AD7718.
    ;значение 0x00 приведет к возврату к первой ячейке цикла

    ;###############################################################################
    if TYPE_PIC==1
    LIST P=18F2520, F=INHX32 ;directive to define processor and file format
    #include
    #DEFINE BEG_USER 0x2000
    endif
    if TYPE_PIC==2
    LIST P=18F2620, F=INHX32 ;directive to define processor and file format
    #include
    #DEFINE BEG_USER 0x4000
    endif
    if TYPE_PIC==3
    LIST P=18F4520, F=INHX32 ;directive to define processor and file format
    #include
    #DEFINE BEG_USER 0x2000
    endif
    if TYPE_PIC==4
    LIST P=18F6520, F=INHX32 ;directive to define processor and file format
    #include ;processor specific variable definitions
    #DEFINE BEG_USER 0x2000
    endif
    if TYPE_PIC==5
    LIST P=18F6621, F=INHX32 ;directive to define processor and file format
    #include ;processor specific variable definitions
    #DEFINE BEG_USER 0x4000
    endif
    if TYPE_PIC==6
    LIST P=18F6527, F=INHX32 ;directive to define processor and file format
    #include ;processor specific variable definitions
    #DEFINE BEG_USER 0x2000
    endif
    if TYPE_PIC==7
    LIST P=18F2523, F=INHX32 ;directive to define processor and file format
    #include ;processor specific variable definitions
    #DEFINE BEG_USER 0x2000
    endif
    ;###############################################################################
    CBLOCK 0x000
    ;результаты преобразования АЦП в PIC
    ADC_0L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC_0H ;старшие два (четыре) бита измеренного напряжения IN0=X2->RB0
    ADC_1L ;младший байт измеренного напряжения IN1=X3->RB1
    ADC_1H ;старший два (четыре) бита измеренного напряжения IN1=X3->RB1
    ADC_2L ;младший байт измеренного напряжения IN2=X4->RB2
    ADC_2H ;старшие два (четыре) бита измеренного напряжения IN2=X4->RB2
    ADC_3L ;младший байт измеренного напряжения IN3=X5->RB3
    ADC_3H ;старший два (четыре) бита измеренного напряжения IN3=X5->RB3
    ADC_4L ;младший байт измеренного напряжения IN4=X6->RB4
    ADC_4H ;старшие два (четыре) бита измеренного напряжения IN4=X6->RB4
    ADC_5L ;младший байт измеренного напряжения IN5=X7->RA0
    ADC_5H ;старший два (четыре) бита измеренного напряжения IN5=X7->RA0
    ADC_6L ;младший байт измеренного напряжения IN8=X10->RA1
    ADC_6H ;старшие два (четыре) бита измеренного напряжения IN8=X10->RA1
    ADC_7L ;младший байт измеренного напряжения IN9=X11->RA2
    ADC_7H ;старший два (четыре) бита измеренного напряжения IN9=X11->RA2
    ENDC
    CBLOCK 0x010
    ;результаты преобразования АЦП 24 бит
    ADC24_0R ;режим канала
    ADC24_0L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_0M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_0H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_1R ;режим канала
    ADC24_1L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_1M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_1H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_2R ;режим канала
    ADC24_2L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_2M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_2H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_3R ;режим канала
    ADC24_3L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_3M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_3H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_4R ;режим канала
    ADC24_4L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_4M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_4H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_5R ;режим канала
    ADC24_5L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_5M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_5H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_6R ;режим канала
    ADC24_6L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_6M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_6H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_7R ;режим канала
    ADC24_7L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_7M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_7H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_8R ;режим канала
    ADC24_8L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_8M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_8H ;старший байт измеренного напряжения IN0=X2->RB0
    ADC24_9R ;режим канала
    ADC24_9L ;младший байт измеренного напряжения IN0=X2->RB0
    ADC24_9M ;средний байт измеренного напряжения IN0=X2->RB0
    ADC24_9H ;старший байт измеренного напряжения IN0=X2->RB0
    ENDC
    ;рабочие ячейки
    CBLOCK 0x040
    ; REGIM24 ;режим работы 24бит АЦП : 0=> псевдодиф., 0xFF=> дифференциальный
    PERIOD ;период измерения 24бит АЦП
    TMP1
    N_ADC ;номер преобразуемого канала быстрого АЦП PIC
    N_ADC24 ;номер преобразуемого канала АЦП 24бит
    ENDC
    N_SPI EQU 0x58 ;ячейка числа байт SPI-телеграммы
    ;константы
    ;адреса
    adree_PERIOD EQU 0x00 ;адрес ячейки хранения величины периода меджу измерениями 24бит АЦП
    adrrm_BUF_SPI EQU 0x300 ;начало буфера SPI-телеграмм
    adrfl_SPI_CALL EQU 0x1E10 ;вектор стандартной подпрограммы
    ;предустановки
    const_PERIOD EQU D'20' ;величина периода меджу измерениями 24бит АЦП
    const_ADC24_0R EQU 0x07 ;псевд. + AIN1-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_1R EQU 0x17 ;псевд. + AIN2-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_2R EQU 0x27 ;псевд. + AIN3-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_3R EQU 0x37 ;псевд. + AIN4-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_4R EQU 0x47 ;псевд. + AIN5-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_5R EQU 0x57 ;псевд. + AIN6-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_6R EQU 0x67 ;псевд. + AIN7-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_7R EQU 0x77 ;псевд. + AIN8-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_8R EQU 0xE7 ;псевд. + AIN9-AINCOM (+ биполярный + диап=2560мВ)
    const_ADC24_9R EQU 0xF7 ;псевд. + AIN10-AINCOM (+ биполярный + диап=2560мВ)

    ;******************************************************************************
    ;Таблица пользовательских векторов
    ;достаточно определить переменную VECT
    #DEFINE VECT 0x00E2
    ;0x0080 ;REG_USER<7>=1 передать управление на адрес BEG_USER + 0x00 после инициализации контроллера
    ;0x0040 ;REG_USER<6>=1 передать управление на адрес BEG_USER + 0x04 перед завершением цикла MAIN
    ;0x0020 ;REG_USER<5>=1 передать управление на адрес BEG_USER + 0x08 после обработки IntHi 10 000 Гц
    ;0x0010 ;REG_USER<4>=1 передать управление на адрес BEG_USER + 0x0C после обработки IntLo
    ;0x0008 ;REG_USER<3>=1 передать управление на адрес BEG_USER + 0x10 для дальнейшей обработки команд MODBUS
    ;0x0004 ;REG_USER<2>=1 передать управление на адрес BEG_USER + 0x14 после обработки IntHi 1000 Гц
    ;0x0002 ;REG_USER<1>=1 передать управление на адрес BEG_USER + 0x18 после обработки IntHi 100 Гц
    ;0x0001 ;REG_USER<0>=1 передать управление на адрес BEG_USER + 0x1C выполнить один раз
    ;0x8000 ;REG_USER2<7>=1 передать управление на адрес BEG_USER + 0x20 до обработки HiInt
    ;0x4000 ;REG_USER2<6>=1 передать управление на адрес BEG_USER + 0x24 до обработки LoInt

    ORG BEG_USER + 0x00 ;точка входа после инициализации (REG_USER<7>=1)
    if low VECT & B'10000000'
    goto Init
    else
    return
    endif
    ORG BEG_USER + 0x04 ;точка входа Main (REG_USER<6>=1)
    if low VECT & B'01000000'
    goto Main
    else
    return
    endif
    ORG BEG_USER + 0x08 ;точка входа 10 000гц или после Hi_Int (REG_USER<5>=1)
    if low VECT & B'00100000'
    goto HiInt
    else
    return
    endif
    ORG BEG_USER + 0x0C ;точка входа после Lo_Int (REG_USER<4>=1)
    if low VECT & B'00010000'
    goto LoInt
    else
    return
    endif
    ORG BEG_USER + 0x10 ;точка входа после Modbus (REG_USER<3>=1)
    if low VECT & B'00001000'
    goto Modbus
    else
    return
    endif
    ORG BEG_USER + 0x14 ;точка входа 1 000гц (REG_USER<2>=1)
    if low VECT & B'00000100'
    goto T1000Hz
    else
    return
    endif
    ORG BEG_USER + 0x18 ;точка входа 100гц (REG_USER<1>=1)
    if low VECT & B'00000010'
    goto T100Hz
    else
    return
    endif
    ORG BEG_USER + 0x1C ;точка входа выполнить один раз (REG_USER<0>=1)
    if low VECT & B'00000001'
    goto One
    else
    return
    endif
    ORG BEG_USER + 0x20 ;точка входа перед обработкой Hi_Int (REG_USER2<7>=1)
    if high VECT & B'10000000'
    goto PreHi
    else
    return
    endif
    ORG BEG_USER + 0x24 ;точка входа перед обработкой Lo_Int (REG_USER2<6>=1)
    if high VECT & B'01000000'
    goto PreLo
    else
    return
    endif
    ;***************************************************************************
    ORG BEG_USER + 0x40
    ;Инициализация
    Init ;зададим конфигурацию контроллера
    ;ADC
    movlw B'00010000' ;все входы аналоговые, опора от RA3=4.096V
    movwf ADCON1
    movlw B'10010010' ;правое выравнивание,пред-пауза=4*Tad,Tad=Fosc/32(общее время=16мкс)
    movwf ADCON2
    movlw B'00000001' ;АЦП включен
    movwf ADCON0


    lfsr FSR0,0x000 ;почистим RAM c 0x000 по 0x04F
    Init_1 clrf POSTINC0
    btfss FSR0L,6
    bra Init_1
    btfss FSR0L,4
    bra Init_1
    ;константы из EEPROM
    movlw adree_PERIOD ;загрузим длительность периода
    movwf EEADR
    bsf EECON1,RD
    movff EEDATA,PERIOD
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_0R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_1R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_2R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_3R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_4R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_5R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_6R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_7R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_8R ;вспомним режим
    incf EEADR,f
    bsf EECON1,RD
    movff EEDATA,ADC24_9R ;вспомним режим

    ;инициализация АЦП24
    lfsr FSR2,adrrm_BUF_SPI ;указатель на начало буфера SPI
    movlw 0x01
    movwf POSTINC2 ;перепишем в телеграмму
    movlw 0x43
    movwf POSTDEC2 ;вернем указатель
    movlw 0x02 ;число байт в телеграмме =2
    movwf N_SPI
    call adrfl_SPI_CALL,0 ;позовем подпрограмму

    return
    ;***************************************************************************
    ;Время
    HiInt ;попадаем сюда каждые 100мкс, АЦП уже гарантировано закончил преобразование (всего ~16мкс)
    movlw 0x00 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_1
    movff ADRESL,ADC_0L ;запоминаем результат
    movff ADRESH,ADC_0H
    movlw B'00101011' ;запустим преобразование следующего канала AN10(X3)
    bra Hi_end
    Hi_1 movlw 0x01 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_2
    movff ADRESL,ADC_1L ;запоминаем результат
    movff ADRESH,ADC_1H
    movlw B'00100011' ;запустим преобразование следующего канала AN8(X4)
    bra Hi_end
    Hi_2 movlw 0x02 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_3
    movff ADRESL,ADC_2L ;запоминаем результат
    movff ADRESH,ADC_2H
    movlw B'00100111' ;запустим преобразование следующего канала AN9(X5)
    bra Hi_end
    Hi_3 movlw 0x03 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_4
    movff ADRESL,ADC_3L ;запоминаем результат
    movff ADRESH,ADC_3H
    movlw B'00101111' ;запустим преобразование следующего канала AN11(X6)
    bra Hi_end
    Hi_4 movlw 0x04 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_5
    movff ADRESL,ADC_4L ;запоминаем результат
    movff ADRESH,ADC_4H
    movlw B'00000011' ;запустим преобразование следующего канала AN0(X7)
    bra Hi_end
    Hi_5 movlw 0x05 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_6
    movff ADRESL,ADC_5L ;запоминаем результат
    movff ADRESH,ADC_5H
    movlw B'00000111' ;запустим преобразование следующего канала AN1(X10)
    bra Hi_end
    Hi_6 movlw 0x06 ;т.к. каналы не по порядку, сразу отсортируем(по номеру разъема см.выше)
    cpfseq N_ADC
    bra Hi_7
    movff ADRESL,ADC_6L ;запоминаем результат
    movff ADRESH,ADC_6H
    movlw B'00001011' ;запустим преобразование следующего канала AN2(X11)
    bra Hi_end
    Hi_7 ;последнюю проверку можно не делать, и так понятно..
    movff ADRESL,ADC_7L ;запоминаем результат
    movff ADRESH,ADC_7H
    movlw B'00110011' ;запустим преобразование следующего канала AN12(X2)

    Hi_end movwf ADCON0
    incf N_ADC,f ;нарастим указатель
    btfsc N_ADC,3 ;проверим на переполнение
    clrf N_ADC
    return

    ;PS
    ;если бы мы здесь воспользовались например вектором 1 мс
    ;то время бы шло в 10 раз медленее
    ;*************************************************************************;
    T100Hz ;попадаем сюда каждые 10мс
    tstfsz TMP1
    decf TMP1,f
    return
    ;***************************************************************************
    Main tstfsz TMP1
    return
    movff PERIOD,TMP1 ;перевзведем таймер периода

    ;cчитаем уже готовый результат
    lfsr FSR2,adrrm_BUF_SPI ;указатель на начало буфера SPI
    movlw 0x44
    movwf INDF2 ;перепишем в телеграмму
    movlw 0x04 ;число байт в телеграмме =4
    movwf N_SPI
    call adrfl_SPI_CALL,0 ;позовем подпрограмму

    rlncf N_ADC24,w ;вычислим адрес расположения результатов
    rlncf WREG,w
    addlw 0x11 ;(первая ячейка это режим)
    movwf FSR1L
    clrf FSR1H
    lfsr FSR2,adrrm_BUF_SPI +3 ;указатель на ответ SPI
    bcf INTCON,GIEH ;1.02
    movff POSTDEC2,POSTINC1
    movff POSTDEC2,POSTINC1
    movff POSTDEC2,POSTINC1
    bsf INTCON,GIEH ;1.02

    incf N_ADC24,f ;нарастим указатель
    movlw 0x09
    cpfsgt N_ADC24 ;максимальное количество заданий - 10
    bra Mn_1
    clrf N_ADC24
    lfsr FSR1,0x010 ;вернем в начало и указатель

    Mn_1 tstfsz INDF1 ;указатель стоит на следующем режиме, проверим на признак конца измерений
    bra Mn_2
    clrf N_ADC24 ;приказано вернуться в начало
    lfsr FSR1,0x010 ;вернем в начало и указатель
    Mn_2
    ;запустим новое измерение
    lfsr FSR2,adrrm_BUF_SPI ;указатель на начало буфера SPI
    movlw 0x02
    movwf POSTINC2 ;перепишем в телеграмму
    movff INDF1,POSTDEC2 ;сразу вернем указатель
    movlw 0x02 ;число байт в телеграмме =2
    movwf N_SPI
    call adrfl_SPI_CALL,0 ;позовем подпрограмму

    return
    ;***************************************************************************
    ;Служебная область EEPROM:
    ;(0xF0)<= младший байт версии драйвера
    ;(0xF1)<= старший байт версии драйвера
    ;(0xF6)<= младший байт скорости UART2 (для 115200: для PIC18F6520 =>0x10; для PIC18F6621 =>0x43);для PIC18F6527 =>0x44)
    ;(0xF7)<= старший байт скорости UART2 (для 115200 ==>0x00)
    ;(0xF8)<= ((адрес второго I2C))
    ;(0xF9)<= адрес UART2
    ;(0xFA)<= младший вектор пользователя (для данной программы => 0xA0)
    ;(0xFB)<= старший вектор пользователя ==>0x00
    ;(0xFC)<= младший байт скорости UART1 (для 115200: для PIC18F6520 =>0x10; для PIC18F6621 =>0x43);для PIC18F6527 =>0x44)
    ;(0xFD)<= старший байт скорости UART1 (для 115200 ==>0x00)
    ;(0xFE)<= адрес I2C
    ;(0xFF)<= адрес UART1
    ORG 0xF00000 ;константа периода между измерениями 24бит АЦП
    DE const_PERIOD, const_ADC24_0R, const_ADC24_1R, const_ADC24_2R
    DE const_ADC24_3R, const_ADC24_4R, const_ADC24_5R, const_ADC24_6R
    DE const_ADC24_7R, const_ADC24_8R, const_ADC24_9R
    ORG 0xF000F0
    DE low VERS, high VERS
    ORG 0xF000FA
    DE low VECT, high VECT
    ;*************************************************************************;
    ;End of program
    END

    Состояние Вашей корзины:

    Позиций: 0
    Количество: 0
    Сумма заказа: 0
    Оформить заказ

      Выставки

    MCU32-1

    модуль вычислителя промышленный контроллер
  • Микроконтроллер - STM32F103RET6
  • Разрядность - 32 бит
  • Быстродействие 72 MHz / 1.25 DMIPS/MHz (Dhrystone 2.1)
  • Flash 512 Кбайт
  • RAM 64 Кбайт
  • АЦП 3 АЦП 12 бит 1мкс
  • ЦАП 2 ЦАП 12бит
  • ПДП 12 каналов
  • Отладочный разъем Serial wire debug (SWD)
  • Интерфейсы USB, RS485, CAN, I2C, SPI, MicroLan
  • Часы реального времени
  • Питание +5В
  • Размер 25.4 * 76.2 * 13 мм

  • MCX53-32.x DIN

    программируемый логический контроллер
  • Микроконтроллер STM32F103RET6
  • Встроенный однокристальный Fractal-BASIC-Cortex
  • Интерфейсы без развязки - USB, RS485/CAN, I2C, SPI, MicroLan
  • Гальванически развязанные интерфейсы - RS485, MicroLan DS2482-100
  • Часы реального времени с литиевым элементом
  • Универсальные сигнальные входо-выходы - 12
  • Силовые выходы  - 8
  • Питание +9...24В
  • Габариты узла в DIN конструктиве - 105x86x58
  • Главная страница :: Новости :: Прайс-лист :: FAQ :: Обмен опытом :: Ссылки :: О фирме :: Как нас найти :: Как купить :: Полный список модулей :: Преобразователи интерфейсов / Репитеры :: Интерфейсные модули :: Вычислители :: Узлы автоматизации :: Модули входов :: Модули выходов :: Модули аналогового входа/выхода :: Модули питания :: Кроссы, Макетные модули, Переходные модули :: Другие модули ::

    postmaster@fractal.com.ru
    Copyright © 1999-2017 ООО "Фрактал"

    Яндекс цитирования Rambler's Top100
    7317
    522
    13
    2