Примеры программ на 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 [KIT1-1.75 ]
Комплект модулей MCU4 - KIT1-1.75 - Активный макетный модуль (19in / out)

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Активный макетный модуль (19in / out)
Конвертеры интерфейсов [RSX4-4.x DIN ]
Конверторы интерфейсов - RSX4-4.x DIN - Конвертор интерфейсов В корпусе на DIN линейку (USB <=> RS485 / RS422 / RS232)

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Конвертор интерфейсов В корпусе на DIN линейку (USB <=> RS485 / RS422 / RS232)
Узлы автоматики [MCX51-9.1 DIN ]
Узлы автоматики - MCX51-9.1 DIN - Узел 2-х силовых выходов AC/DC(реле) (AC)250V/8A в 35мм-DIN-конструктиве

Примеры программ на ASSEMBLER. ООО ФРАКТАЛ. Преобразователи - конверторы - интерфейсов промышленная автоматика модульные контроллеры
Узел 2-х силовых выходов AC/DC(реле) (AC)250V/8A в 35мм-DIN-конструктиве

Разделы:

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


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_6_1.asm *
    ; Date: 1.02.07 *
    ; File Version: 1.01 *
    ; *
    ; Author: Tarasov A.V. *
    ; Company: Fractal *
    ; *
    ;******************************************************************************
    ; Files required: P18F2520.INC *
    ;******************************************************************************
    ;укажем версию и тип процессора
    #DEFINE VERS 0x0101 ;версия программы
    #DEFINE TYPE_PIC 7 ;7 => PIC18F2523

    ;v1.01
    ;проверено на версии 4.31
    ;ЧАСТОТА кварца 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мкс на все каналы)
    ;###############################################################################
    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
    ;результаты преобразования
    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 0x040
    N_ADC ;номер преобразуемого канала
    ENDC

    ;******************************************************************************
    ;Таблица пользовательских векторов
    ;достаточно определить переменную VECT
    #DEFINE VECT 0x00A0
    ;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


    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(X3)
    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(X3)
    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(X3)
    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(X3)
    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(X3)
    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(X3)
    bra Hi_end
    Hi_7 ;последнюю проверку можно неделать, и так понятно..
    movff ADRESL,ADC_7L ;запоминаем результат
    movff ADRESH,ADC_7H
    movlw B'00110011' ;запустим преобразование следующего канала AN12(X3)

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

    ;PS
    ;если бы мы здесь воспользовались например вектором 1 мс
    ;то время бы шло в 10 раз медленее
    ;;*************************************************************************;
    ;Служебная область 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 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
    7316
    521
    11
    1