2. Ильичев, В.Д. Экология и управление поведением птиц [Текст]/В.Д. Ильичев/- М: Знание, 1984. - 64 с
УДК 621.37
Захаров Д. С студент магистратуры 1 курс, Кафедра «Радиофизика и Электронные системы» СВФУ им. М.КАммосова, Физико-технический институт
Россия, г. Якутск Научный руководитель: Леонтьев Н.А
канд. техн. наук ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ДАННЫХ ПО ПОСЛЕДОВАТЕЛЬНОМУ ПОРТУ В МИКРОКОНТРОЛЛЕРАХ PIC16 Аннотация: в данной статье рассматривается программная реализация передачи данных по последовательному порту в микроконтроллерах PIC16. Разработка алгоритма для передачи данных по последовательному формату и реализация алгоритма на языке программирования Assembler, симуляция в интегрированной среде разработки MPLab IDE. Ключевым слова: UART, передача данных, PIC16
Zakharov J.S Graduate student Faculty of radio physics and electronic systems North-Eastern Federal University, Institute of Physics and Technologies
Russia,Yakutsk The scientific adviser: Leontiev N.A Cand. tech. science
PROGRAM IMPLEMENTATION OF DATA TRANSMISSION ON THE SERIAL PORT IN PIC16 MICROCONTROLLERS
Abstract: This article discusses the software implementation of data transmission on a serial port in PIC16 microcontrollers. Development of an algorithm for data transmission on a consecutive format of data transmission and realization of an algorithm in the Assembler, simulation in an integrated environment of development MPLab IDE. Keyword: UART, data transmission, PIC16
Микроконтроллеры часто применяются в качестве управляющего элемента для датчиков и различных модулей. В данном случае контроль работы осуществляется непосредственно передачей и приемом данных по последовательному (UART) порту. В микроконтроллерах PIC для реализации данной задачи обычно используется модуль USART, которая включается и настраивается изменением соответствующих регистров. В данной статье будет рассматриваться программная реализация последовательной передачи данных без использования модуля USART. [1]
Для реализации передачи данных по иЛЯТ порту используется формат последовательной передачи данных (Рисунок 1). Данный формат подразумевает побитную передачу данных, начиная с младшего бита старшего байта. Перед передачей данных на выходную ножку устанавливается режим ожидания в качестве «1», поначалу передачи данных на ножку подается стартовый бит «0», по окончанию стоповый бит «1». Также следует рассчитать длительность одного бита в зависимости от скорости передачи данных. Скорость передачи данных для большинства устройств 9600 бод, тогда длительность одного передаваемого бита:
1
т =
9600
= 104 мкс
Стартовый
бит Информационные биты
I-
Стоповый бит
Режим ожидания эХ е ¡1 битй firrl Slit Z йпз йяг4 íjrrS бит 6 ■i £ ¿•й бит 7 Режим ожи дан и я ' {
1 0 0 1 1 0 0 1
:
104 мкс
Рисунок 1. Формат последовательных данных Для побитной передачи данных используется команда RRF, которая позволяет сдвигать регистр передаваемых данных направо на один бит. Значение сдвинутого бита присваивается на бит C регистра STATUS. Также необходимо использовать декрементируемый регистр, в котором записывается число 9 (стартовый бит + 8 бит данных). Передача данных производится с помощью команды проверки флага STATUS,C если «0» то на выход подаем «0», если «1» то подаем «1».
_Запись декрементируемого регистра и подготовка стартового бита:
movlw .9 movwf Reg_2 bcf STATUS,C
Передача данных начинается с проверки флага STATUS, C заранее настроенного на стартовый бит. После подачи стартового бита выполняется команда сдвига направо и, начиная с младшего бита, происходит передача данных посредством проверки значение флага STATUS, C и подачей на выход. По окончанию декремента, что соответствует последнему передаваемому биту, устанавливается стоповый бит и режим ожидания «0».
btfsc STATUS,C goto bit1 goto bit0 bit1
bsf PORTB,2 call Pause goto m2 bit0
bcf PORTB,2 call Pause goto m2 m2
rrf Data,1
decfsz Decrement,1 goto m1
bsf PORTB,2 call Pause
После каждой подачи бита необходимо реализовать задержку на 104
мкс начиная со стартового бита:_
Pause movlw .31 movwf Reg_1 wr
decfsz Reg_1, 1 goto wr nop return
_end;_
Результат симуляции программы в среде разработки MPLab IDE:
Рисунок 2. Последовательная передача 2х байтов. Результат проверки алгоритма через логический анализатор.
Рисунок 3. Результат последовательной передачи данных на логическом
анализаторе
Таким образом, данная программа выполняет последовательную передачу данных на микроконтроллере PIC16. Данный формат передачи обычно используется при работе с модулями, которым нужно передавать вычисленные данные для дальнейшей обработки, при передаче каких либо данных на устройство через UART порт.
Использованные источники:
1. Datasheet PIC16F628A [Электронный ресурс] URL: https://www.microchip.com/wwwproducts/en/PIC16F628A