Научная статья на тему 'ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ДАННЫХ ПО ПОСЛЕДОВАТЕЛЬНОМУ ПОРТУ В МИКРОКОНТРОЛЛЕРАХ PIC16'

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ДАННЫХ ПО ПОСЛЕДОВАТЕЛЬНОМУ ПОРТУ В МИКРОКОНТРОЛЛЕРАХ PIC16 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
42
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЛЮЧЕВЫЕ ДЕЯТЕЛЬНОСТИ СЛОВА:UART / ПЕРЕДАЧА ДАННЫХ / PIC16 / KEYWORD: СИСТЕМЕ UART / DATA TRANSMISSION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Захаров Д.С., Леонтьев Н.А.

В данной статье рассматривается программная реализация передачи данных по последовательному порту в микроконтроллерах PIC16. Разработка алгоритма для передачи данных по последовательному формату и реализация алгоритма на языке программирования Assembler, симуляция в интегрированной среде разработки MPLab IDE.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PROGRAM IMPLEMENTATION OF DATA TRANSMISSION ON THE SERIAL PORT IN PIC16 MICROCONTROLLERS

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.

Текст научной работы на тему «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ДАННЫХ ПО ПОСЛЕДОВАТЕЛЬНОМУ ПОРТУ В МИКРОКОНТРОЛЛЕРАХ PIC16»

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

i Надоели баннеры? Вы всегда можете отключить рекламу.