Схема сбора информации с логических входов

Архитектура микроконтроллера PIC16F876 фирмы Microchip и построение на его основе микропроцессорной системы логического анализатора. Построение устройств сбора и обработки информации. Кросс-компилятор HI-TECH С for Microchip PIC v7.85. Листинг программы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 24.12.2012
Размер файла 137,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Техническое задание

Необходимо спроектировать схему на основе PIC-контроллера для сбора информации с 16 логических входов. Данные регистрируются при поступлении импульса синхронизации и накапливаются в ОЗУ устройства, подключённом к микроконтроллеру. Данные необходимо передавать на ЭВМ по интерфейсу RS232 со скоростью 9600 Бод при поступлении запроса от ЭВМ.

Необходимо написать программу для контроллера, которая будет обрабатывать поступающие данные, накапливать их в ОЗУ и передавать на ЭВМ.

Уровни входных сигналов, поступающих с внешних линий, соответствуют стандарту ТТЛ, максимальная частота опроса 60 кГц.

Объем ОЗУ 8 кБ.

1. Объект автоматизации

В качестве объекта автоматизации был выбран логический анализатор.

1.1 Параметры устройства

Число каналов - 16;

Тип сигналов - ТТЛ уровни.

Максимальная частота приема данных - 60 кГц

Передача информации - интерфейс RS232;

Скорость передачи по последовательному порту - 9600 Бод;

Регистрация состояния - по переднему фронту.

1.2 Описание и анализ функций, выполняемых МПС устройства

Микропроцессорная система устройства позволяет регистрировать состояние логических уровней на 16 лог. входах и передавать информацию на ЭВМ при поступлении тактового импульса на тактовый вход.

1.3 Микропроцессорная система на основе ОМК PIC16F876

Основанием для выбора данного микроконтроллера послужили следующие причины:

- наличие достаточного количества портов ввода-вывода:

порт А - 6 бит,

порты В, С и D - 8 бит,

порт Е - 3 бита.

- простота реализации устройства на данном контроллере;

- широкое распространение и дешевизна микроконтроллеров данного типа.

2. Описание функционирования устройства

2.1 Функциональная схема

Микроконтроллер снимает со входов информацию о состоянии логических уровней, данная съемка стробируется внешним тактовым импульсом поступающим на его вход С. При приходе от компьютера команды запроса контроллер передаёт накопленную в ОЗУ информацию в ЭВМ по интерфейсу RS232 со скоростью 9600 Бод.

2.2 Принципиальная схема

Логические входы подключены к регистрам-защёлкам DD1 и DD2, а вход синхронизации подключён к входам С регистров и линии RC0 микроконтроллера. При поступлении синхроимпульса, микроконтроллер считывает состояние регистров поочерёдно подавая импульсы на входы ОЕ и считывая данные через порт D и сохраняет данные в ОЗУ.

Запись и чтение данных производится аналогично микроконтроллерам семейства MC'S 51, но PIC-контроллеры не имеют аппаратных средств для подключения ОЗУ, поэтому работа с ним производится программно. Микроконтроллер выдаёт младшую часть адреса на порт В, а старшую на порт А, затем подаёт импульс ALE (линия RE0), и старшая часть адреса защёлкивается в регистре DD5. Затем микроконтроллер активизирует одну из линий, WR (RE2) или RD(RE1), и производит обмен данными через порт В.

Микросхема DD3 преобразует логические уровни контроллера в логические уровни ЭВМ, конденсаторы, подключённые к микросхеме DD3, обеспечивают работу преобразователей уровня.

RC-цепочка R1C6 необходима для сброса микроконтроллера при включении питания. В начальный момент времени напряжение на конденсаторе равно нулю, и происходит сброс микроконтроллера. Далее конденсатор заряжается через резистор до уровня лог. 1, и контроллер начинает работу.

Кварцевый резонатор ZQ1 определяет тактовую частоту микроконтроллера DD4, мы выбрали резонатор на 10МГц. Конденсаторы С7 и С8 обеспечивают стабильность работы тактового генератора.

2.3 Описание элементов схемы

Микросхема DD3 - преобразователь уровня ТТЛ - СОМ-порт, необходима для согласования электрических уровней микроконтроллера и COM-порта компьютера. Уровень логического нуля и единицы у микроконтроллера равны 0 и +5В, а у COM-порта компьютера +12В и -12В соответственно. Микросхема питается напряжением +5В, а напряжения ±12В она генерирует с помощью встроенных преобразователей напряжения.

Микросхема DD4 - однокристальный микроконтроллер семейства PIC Micro. Имеет следующие особенности:

- 5 канальный, 10 разрядный АЦП;

- 3 порта ввода-вывода

- выполнен по высокоскоростной RISC-технологии;

Микросхемы DD1, DD2, DD5 - регистры-защёлки, 8 информационных входов, 8 выходов. Запись информации происходит при поступлении лог. 0 на вход С. Лог.1 на входе ОЕ переводит выходы регистра в третье (высокоимпедансное) состояние.

3. Описание программы

3.1 Алгоритм работы программы

Общий алгоритм работы программы приведен на рис. 1.

Рисунок 1. Общий алгоритм работы программы

При включении контроллера происходит настройка портов ввода-вывода на вводи вывод, все линии портов А и Е контроллера настраиваются как входы, а линии портов В и С - как выходы. После этого контроллер начинает выполнять бесконечный цикл, в котором отслеживается состояние входа, подключённого к линии синхронизации. В случае поступления синхроимпульса производится запись информации в ОЗУ.

Запись в ОЗУ производится по алгоритму, представленному на рис. 2.

Рисунок 2. Алгоритм записи информации в ОЗУ

3.2 Листинг программы

микроконтроллер микропроцессорный анализатор компилятор

 // подключаем модуль с описанием регистров PIC

#include <pic.h>

#define uchar unsigned char

#define uint unsigned int

#define PORTBIT (adr, bit) ((unsigned) (&adr)*8+(bit))

static bit ALE @ PORTBIT (PORTE, 0);

static bit RD @ PORTBIT (PORTE, 1);

static bit WR @ PORTBIT (PORTE, 2);

static bit SYN @ PORTBIT (PORTC, 0);

static bit L @ PORTBIT (PORTC, 1);

static bit H @ PORTBIT (PORTC, 2);

uint start, stop, adr;

 // -

void Write (uint adress, uchar data)

{

uchar pause=10;

PORTA=adress>>8; // старшая часть адр.

TRISB=0; // порт на выход

PORTB=adress; // мл. часть адр.

ALE=0; // импульс для записи мл. адр. в рег-р

while (pause-); // пауза для записи в рег-р

ALE=1;

PORTB=data; // выдали данные

WR=0; // записали их в ОЗУ

pause=10;

while (pause-); // пауза для записи в ОЗУ

WR=1; // запись окончена

RD=1;

TRISB=0xFF;

}

 // -

uchar Read (uint adress)

{

uchar data, pause=10;

PORTA=adress>>8; // старшая часть адр.

TRISB=0; // порт на выход

PORTB=adress; // мл. часть адр.

ALE=0; // импульс для записи мл. адр. в рег-р

while (pause-); // пауза для записи в рег-р

ALE=1;

TRISB=0xFF; // порт на ввод

RD=0; // читаем данные

data=PORTB; // принимаем их через порт

RD=1; // чтение окончено

WR=1;

return data; // возвращаем считанные данные

}

 // -

interrupt INTR() // обработка прерываний

{

if (RСIF) // прерывание от УАПП - приём

{

if (RCREG==0xAA) // если принято 0хАА - передача на ЭВМ

{

TXIE=1; // разрешение прерывания от УАПП при передаче

start=adr;

stop=adr-1;

 // записью в TXREG инициировали передачу,

 // при окончании передачи возникнет прерывание TXIF

TXREG=Read (start++);

}

RСIF=0;

}

if (TXIF)

{

TXREG=Read (start++); // передаём очередной байт

if (start>8191) start=0; // передаём по кругу

 // запрещение прерывания от УАПП при передаче

 // когда передали всю память

if (start==stop) TXIE=0;

TXIF=0;

}

}

 // -

void main (void)

{

 // настройка портов

TRISA=0;

TRISE=0;

TRISC=0xFF;

TRISB=0xFF;

 // настройка УАПП

SYNC=0; // асинхронный режим

BRGH=1; // высокая скорость передачи

SPBRG=0x81; // 9600 Бод при 20 МГц и BRGH=1

SPEN=1; // работа УАПП разрешена

TXEN=1; // передача разрешена

CREN=1; // приём разрешён

RCIE=1; // разрешение прерывания от УАПП при приёме

PEIE=1; // разрешение прерываний от периферии

GIE=1; // глобальное разрешение прерываний

adr=0;

 // бесконечный цикл

while(1)

{

 // ждём начала синхроимпульса

while(SYN);

L=0;

Write (adr, PORTD);

L=1;

adr++;

H=0;

Write (adr, PORTD);

H=1;

adr++;

 // ожидаем конца синхроимпульса, если он не закончился

while(! SYN);

}

}

Заключение

При выполнении данного курсового проекта была изучена архитектура микроконтроллера PIC16F876 фирмы Microchip и построена на его основе микропроцессорная система логического анализатора. Приобретены навыки программирования микропроцессорных систем и построения на их основе устройств сбора и обработки информации. Также был изучен кросс-компилятор HI-TECH С for Microchip PIC v7.85.

Размещено на Allbest.ru


Подобные документы

  • Архитектура микроконтроллера PIC16F876 фирмы Microchip и построение на его основе микропроцессорной системы управления электронагревателями печи обработки полимеров. Текстовый жидкокристаллический дисплей WH1602A-YYK-CP фирмы Winstar и контроллер.

    контрольная работа [429,4 K], добавлен 24.12.2012

  • Проектирование схемы, выполненной на основе однокристального микроконтроллера 51 серии для получения с 8 аналоговых входов информации о изменении их состояния с течением времени. Параметры устройства, описание элементов схемы, листинг программы.

    курсовая работа [627,2 K], добавлен 24.12.2012

  • Технология сбора информации традиционными методами. Правила сбора оффлайновой информации. Технические средства сбора информации. Операции для быстрого восстановления данных в системах хранения. Технологический процесс и процедуры обработки информации.

    курсовая работа [304,5 K], добавлен 02.04.2013

  • Проектирование схемы сбора информации со ста двадцати восьми датчиков на основе микроконтроллера. Разработка листинга программы для контроллера, обрабатывающей поступающие данные с накоплением их во Flash-памяти с учетом точного времени и текущей даты.

    курсовая работа [891,8 K], добавлен 24.12.2012

  • Алгоритм разработки программного обеспечения. Выбор оптимальной среды программирования. Использование регистров специального назначения. Листинг программы в кодах языка Assambler. Результаты ее компилирования. Блок схема основной программы и макроса RND.

    курсовая работа [416,5 K], добавлен 11.03.2015

  • Принцип действия устройства сбора информации на базе микроконтроллера МК51: индикация, "рабочий режим" и передача данных персонального компьютера. Алгоритм начального опроса датчиков. Электрическая принципиальная схема устройства, текст программы.

    курсовая работа [102,5 K], добавлен 21.10.2012

  • Применение цифровых микросхем для вычисления, управления и обработки информации. Назначение микропроцессора и устройств микропроцессорной системы, их структурная и принципиальная схемы. Системная шина процессора и распределение адресного пространства.

    курсовая работа [1,5 M], добавлен 29.02.2012

  • Разработка устройства последовательного сбора и обработки информации с последующим выводом. Выбор элементной базы. Расчет характеристик элементов функциональной схемы. Определение разрядности АЦП и количества бит, передаваемых в информационном кадре.

    курсовая работа [160,9 K], добавлен 05.05.2013

  • Разработка структурной схемы и обобщенного алгоритма работы прибора. Оценка максимальной погрешности линейного датчика давления и нормирующего усилителя. Разработка элементов принципиальной электрической схемы микропроцессорной системы сбора данных.

    курсовая работа [2,1 M], добавлен 08.02.2015

  • Основные параметры устройства отображения информации. Обоснование выбора используемых ресурсов микроконтроллера и схемы включения. Разработка схемы алгоритма. Описание и отладка программы. Схема электрическая принципиальная и листинг трансляции программы.

    курсовая работа [121,3 K], добавлен 12.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.