66. Программа определения адресов 1 wire устройств на ассемблере (Урок 57. Теория)

Поделиться
HTML-код
  • Опубликовано: 8 сен 2016
  • В уроке написана программа для определения адресов 1 wire устройств, подключенных к одной ножке микроконтроллера. Программа написана на языке ассемблер для микроконтроллера PIC16F84A. Программа написана на основе упрощённого алгоритма, не включающего контроль отсутствия 1 wire устройств на шине и без проверки CRC. Информация об адресах 1 wire устройств выводится на светодиоды. Урок является продолжением предыдущих теоритических уроков по интерфейсу 1 wire. Программа в которой происходило написание программы для PIC16F84A MPLAB X v 2.35. Программа для проверки схемы с микроконтроллером и 1 wire устройством были Proteus 7.6
    Ссылка на код программы написанной в уроке:
    drive.google.com/open?id=0B3l...
    Спасибо за Like и за Подписку на мой канал.
    Получить информацию о канале можно и на странице в вконтакте! Страница в вконтакте: mychippic

Комментарии • 13

  • @serjvorobjov3333
    @serjvorobjov3333 7 лет назад +1

    Михаил Петрович! Продолжайте выпуск Ваших отличнейших уроков! Они нам всем так нужны! Спасибо Вам огромное за нелегкий ТРУД!

    • @MyChipPic
      @MyChipPic  7 лет назад

      Спасибо! Снял сегодня следующий урок! Наконец появился день свободный. Осталось смонтировать и выложить в интернет.

    • @user-dk4sn3vw7o
      @user-dk4sn3vw7o 7 лет назад

      Здравствуйте Михаил Петрович! Столкнулся со следующей проблемой как правильно сконфигурировать PIC16F628a и можно ли записать туда код мигалки который мы изучали в первых уроках?

    • @MyChipPic
      @MyChipPic  7 лет назад

      Если вы говорите про __CONFIG, то вроде да, можно использовать то же значение. Если вы хотите чтоб у вас все ножки управлялись как и в PIC16F84A, т.е. были цифровыми, тогда нужно не забыть отключить компараторы. Для этого необходимо в соответствующий регистр записать нужное значение. В документации можно увидеть: ww1.microchip.com/downloads/en/DeviceDoc/40044G.pdf на 33 -ей странице, что перед использованием ножек порта, вначале записывают значение 0x07 в регистр CMCON, после этого ножки доступны как цифровые. Ответ понятен?

    • @user-dk4sn3vw7o
      @user-dk4sn3vw7o 7 лет назад

      Здравствуйте Михаил Петрович! Ответ понятен, я записал код для PORTA,
      LIST p=16F628a
      __CONFIG 0FF2DH

      STATUS equ 03h
      PORTA equ 05h
      TRISA equ 05h
      org 0
      bsf STATUS,5
      bcf TRISA,1
      bcf TRISA,2
      bcf TRISA,3
      bcf STATUS,5
      bcf TRISA,7
      bcf TRISA,4
      bsf PORTA,2
      bsf PORTA,3
      bsf PORTA,1
      end
      Я установил в компиляторе внешний кварц XT и отключил не нужные биты конфигурации, код в протеусе работает, на портах А присутствует лог. уровень, правильно ли я CONFIG написал и если собрать на макетной плате схему будет работать я еще не проверил ее?

  • @totk4308
    @totk4308 7 лет назад +1

    Наконец-то продолжение! Спасибо Вам Михаил Петрович!

  • @MyChipPic
    @MyChipPic  7 лет назад +2

    В уроке написана программа для определения адресов 1 wire устройств, подключенных к одной ножке микроконтроллера. Программа написана на языке ассемблер для микроконтроллера PIC16F84A. Программа написана на основе упрощённого алгоритма, не включающего контроль отсутствия 1 wire устройств на шине и без проверки CRC. Информация об адресах 1 wire устройств выводится на светодиоды. Урок является продолжением предыдущих теоритических уроков по интерфейсу 1 wire. Программа в которой происходило написание программы для PIC16F84A MPLAB X v 2.35. Программа для проверки схемы с микроконтроллером и 1 wire устройством были Proteus 7.6

  • @user-dk4sn3vw7o
    @user-dk4sn3vw7o 7 лет назад

    Здравствуйте Михаил Петрович ! Вообщем проблема сохранилась я не могу прошить pic16f628a рабочим кодом код написал в вашем ответе, шью pickit3 из под MPLAB IPE а pic16f84a прошиваю, подскажите что может быть не так

  • @user-tn8qe7jh1x
    @user-tn8qe7jh1x 7 лет назад

    Доброго дня.Михаил! как можно прописать в программе биты конфигурации расположенные по адресам 2007h и 2008h микроконтроллер PIC16F767?

    • @MyChipPic
      @MyChipPic  7 лет назад

      Здравствуйте.
      __CONFIG 2007h, 02F61h
      __CONFIG 2008h, 02A61h
      Значения 02F61h и 02A61h - приведены в качестве примера.
      Если подключить файл с обозначениями регистров, флагов, битов то формат может быть таким:
      #include
      __CONFIG _CONFIG1, _XT_OSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _BOREN_OFF .....
      __CONFIG _CONFIG2, _FCMEN_OFF & _BORSEN_OFF & _IESO_OFF
      Где _CONFIG1 и _CONFIG2 - это адреса 2007h и 2008h соответсвтенно, а занчения после запятой определяет конфигурацию. Т.е. _XT_OSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _BOREN_OFF ..... тоже даёт некоторый результат, который который будет восприниматься МК также как и в первом случае.
      Я тут рассказал как прописать в программе биты конфигурации, но не о конкретных значениях этих бит.

    • @user-tn8qe7jh1x
      @user-tn8qe7jh1x 7 лет назад

      Большое спасибо Вам,всё получилось,не поставил просто запятую между 2007h и 02F61h,2008h и 02A61h,вот компилятор и ругался

  • @user-dk4sn3vw7o
    @user-dk4sn3vw7o 7 лет назад

    А так при записи
    Programming...
    program memory
    Address: 0 Expected Value: 1683 Received Value: 0
    Failed to program device
    2016-10-12T14:25:45+0600- Programming failed
    Pass Count: 10

  • @user-dk4sn3vw7o
    @user-dk4sn3vw7o 7 лет назад

    Так происходит чтение
    2016-10-12T14:20:42+0600- Reading...
    The following memory area(s) will be read:
    program memory: start address = 0x0, end address = 0x7ff
    configuration memory
    EEData memory
    User Id Memory
    Reading...
    Read complete
    2016-10-12T14:20:45+0600- Read complete