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
Михаил Петрович! Продолжайте выпуск Ваших отличнейших уроков! Они нам всем так нужны! Спасибо Вам огромное за нелегкий ТРУД!
Спасибо! Снял сегодня следующий урок! Наконец появился день свободный. Осталось смонтировать и выложить в интернет.
Здравствуйте Михаил Петрович! Столкнулся со следующей проблемой как правильно сконфигурировать PIC16F628a и можно ли записать туда код мигалки который мы изучали в первых уроках?
Если вы говорите про __CONFIG, то вроде да, можно использовать то же значение. Если вы хотите чтоб у вас все ножки управлялись как и в PIC16F84A, т.е. были цифровыми, тогда нужно не забыть отключить компараторы. Для этого необходимо в соответствующий регистр записать нужное значение. В документации можно увидеть: ww1.microchip.com/downloads/en/DeviceDoc/40044G.pdf на 33 -ей странице, что перед использованием ножек порта, вначале записывают значение 0x07 в регистр CMCON, после этого ножки доступны как цифровые. Ответ понятен?
Здравствуйте Михаил Петрович! Ответ понятен, я записал код для 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 написал и если собрать на макетной плате схему будет работать я еще не проверил ее?
Наконец-то продолжение! Спасибо Вам Михаил Петрович!
В уроке написана программа для определения адресов 1 wire устройств, подключенных к одной ножке микроконтроллера. Программа написана на языке ассемблер для микроконтроллера PIC16F84A. Программа написана на основе упрощённого алгоритма, не включающего контроль отсутствия 1 wire устройств на шине и без проверки CRC. Информация об адресах 1 wire устройств выводится на светодиоды. Урок является продолжением предыдущих теоритических уроков по интерфейсу 1 wire. Программа в которой происходило написание программы для PIC16F84A MPLAB X v 2.35. Программа для проверки схемы с микроконтроллером и 1 wire устройством были Proteus 7.6
Здравствуйте Михаил Петрович ! Вообщем проблема сохранилась я не могу прошить pic16f628a рабочим кодом код написал в вашем ответе, шью pickit3 из под MPLAB IPE а pic16f84a прошиваю, подскажите что может быть не так
Доброго дня.Михаил! как можно прописать в программе биты конфигурации расположенные по адресам 2007h и 2008h микроконтроллер PIC16F767?
Здравствуйте.
__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 ..... тоже даёт некоторый результат, который который будет восприниматься МК также как и в первом случае.
Я тут рассказал как прописать в программе биты конфигурации, но не о конкретных значениях этих бит.
Большое спасибо Вам,всё получилось,не поставил просто запятую между 2007h и 02F61h,2008h и 02A61h,вот компилятор и ругался
А так при записи
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
Так происходит чтение
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