Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программное управление технологическим оборудованием

.pdf
Скачиваний:
1
Добавлен:
29.11.2025
Размер:
11.79 Mб
Скачать

if (x & (0x01 << 1)) LCD_DB5 = 1;

else

LCD_DB5 = 0;

if (x & (0x01 << 0))

LCD_DB4 = 1;

else

LCD_DB4 = 0;

LCD_EN = 1;

Delay_ms(1);

LCD_EN = 0;

Delay_ms(1);

}

// Инициализация используемых линий порта

void LCD_InitPorts()

{

TRISBbits.TRISB

 

//

 

(RB1

1

= 0;

Out

OE

)

LATBbits.LATB1

 

= 0;

// OE

Lo

TRISAbits.TRISA

 

//

 

(RA1

10

= 0;

Out

En

0)

TRISCbits.TRISC

 

//

 

(RС2

2

= 0;

Out

R/W

)

TRISAbits.TRISA

 

//

 

(RA7

7

= 0;

Out

RS

)

TRISBbits.TRISB

 

//

 

(RB1

12

= 0;

Out

DB7

2)

TRISBbits.TRISB

 

//

 

(RB1

14

= 0;

Out

DB6

4)

TRISBbits.TRISB

 

//

 

(RB1

11

= 0;

Out

DB5

1)

TRISBbits.TRISB

 

//

 

(RB1

10

= 0;

Out

DB4

0)

}

// Инициализация контроллера ЖКИ void LCD_Init()

{

LCD_RS = 0;

521

LCD_RW = 0;

LCD_EN = 0;

Delay_ms(30);

LCD_set_half_byte(0x03);

Delay_ms(5);

LCD_set_half_byte(0x03);

Delay_ms(100);

LCD_set_half_byte(0x03);

LCD_set_half_byte(0x02);

4-битный интерфейс, 2 строки, размер символа - 5х8

LCD_set_half_byte(0 x02); LCD_set_half_byte(0 x08); Delay_ms(37);

Курсор выкл., мигание позиции выкл., индикатор вкл.

LCD_set_half_byte(0 x00); LCD_set_half_byte(0 x0C); Delay_ms(37);

Очитска дисплея

LCD_set_half_byte(0x00);

LCD_set_half_byte(0x01); Delay_ms(2);

// Направление перемещения курсора - вправо

LCD_set_half_byte(0x00);

LCD_set_half_byte(0x06);

}

// Отправление данных в DDRAM

контроллера ЖКИ void LCD_send_char(char c)

{

LCD_RS = 1; LCD_set_half_byte(c >> 4); LCD_set_half_byte(c & 0x0f); LCD_RS = 0;

}

void LCD_WriteString(char str[])

{

char i = 0;

while (str[i] != 0)

{

522

LCD_send_char(str

 

[i]); i++;

 

}

 

}

 

void main()

 

{

 

AD1PCFGL = 0xFFFF;

// Отключение АЦП

LCD_InitPorts();

 

LCD_Init(); LCD_WriteString("dsPIC33fj32mc204\0"); while (1)

{

}

}

4 Варианты индивидуальных заданий к лабораторной работе

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

1.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать сумму введённых чисел и вывести результат на

LCD.

2.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать разность введённых чисел и вывести результат на

LCD.

3.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать произведение введённых чисел и вывести результат на LCD.

4.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать остаток от деления введённых чисел и вывести результат на LCD.

5.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать наибольший общий делитель введённых чисел и вывести результат на LCD.

6.Ввести последовательно два числа с клавиатуры, отображая вводимое число на LCD. Клавишу «#» использовать как окончание ввода числа. После ввода рассчитать наименьшее общее кратное введённых чисел и вывести результат на LCD.

523

5 Контрольные вопросы

1.Какой физический принцип заложен в сущности работы ЖКИ?

2.Какие используются режимы отображения ЖКИ?

3.Какое типичное время срабатывания ЖКИ?

4.На какие категории по принципу отображения информации делятся ЖКИ?

5.Как устроен ЖКИ?

6.Какие функции выполняет драйвер ЖКИ?

7.Каким образом происходит управление ЖКИ?

524

Лабораторная работа 12

Исследование средств ввода аналоговой информации в микроконтроллер

Цель работы:

Изучить алгоритм и принцип настройки и работы аналого-цифрового преобразователя. Разработать и отладить программу для сбора аналоговой информации.

Порядок выполнения работы:

1.Изучить теоретические вопросы, связанные с работой аналого-цифрового преобразователя.

2.Изучить принципиальную электрическую схему к лабораторной работе.

3.Разработать программу в соответствии с индивидуальным заданием.

4.Отладить программу в среде MPLAB IDE.

5.Загрузить программу в учебный стенд.

6.Исследовать работу системы сбора аналоговой информации.

7.Оформить отчёт по лабораторной работе.

8.Ответить на контрольные вопросы.

1 Краткие теоретические сведения

1.1 Аналого-цифровые преобразователи

Аналого-цифровые преобразователи (АЦП) предназначены для преобразования аналоговой величины в цифровой код. Другими словами, АЦП - это устройства, которые принимают аналоговые сигналы и генерируют соответствующие им цифровые значения.

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

В системах, где основным критерием является быстродействие, применяют АЦП параллельного преобразования. АЦП этого типа сложны в реализации. Для n-разрядного АЦП необходимо 2n-1 компараторов и параллельный делитель напряжения, который вырабатывает 2n-1 уровней квантования.

Для реализации систем с высокой помехоустойчивостью применяются интегрирующие АЦП. Такой АЦП состоит их двух преобразователей. Измеряемое напряжение преобразуется в длительность импульса, а потом длительность импульса преобразуется в цифровой код.

525

Довольно распространённой является схема построения АЦП, основанная на последовательном сравнении измеряемого сигнала с ½, ¼, ⅛ и т. п. от возможного его максимального значения.

1.2 АЦП микроконтроллера

Микроконтроллеры семейства dsPIC33 могут иметь до 32 аналоговых входов и до 2 модулей АЦП, каждый из которых имеет свой собственный набор регистров управления. В частности, dsPIC33fj32mc204 имеет 9 аналоговых входов, обозначаемых AN0..AN8, и 1 модуль АЦП (ADC0). Аналого-цифровой преобразователь микроконтроллера разработан на основе регистра последовательного приближения. Установка режимов работы и рабочих параметров преобразователя осуществляется с помощью регистров

AD1CON1…AD1CON3, AD1CHS, AD1PCFG и AD1PCFG.

АЦП может работать в 10либо 12-битном режиме. В качестве опорного напряжения может использоваться как напряжение питания контроллера, так и напряжение, подаваемое на специальные входы VREF+ и VREF-. Результаты преобразования сохраняются в массиве 16-битных слов ADC1BUF0.. ADC1BUF8. После каждого полного цикла преобразования может генерироваться соответствующее прерывание.

Структурная схема АЦП микроконтроллера представлена на рисунке

1.1.

Входы аналоговых сигналов через специальный мультиплексор подключаются к усилителю выборки и хранения аналого-цифрового преобразователя. Аналоговый мультиплексор настраивается регистрами AD1CHS123 и AD1CHS0. В каждом из этих регистров присутствует два набора управляющих битов, функциональность которых идентична. Эти два набора позволяют задать две различных конфигурации подключения аналоговых входов к усилителям, варианты подключения при этом обозначают MUXA и MUXB. Модуль АЦП позволяет переключать эти варианты перед началом преобразования.

В преобразователе предусмотрен вариант автоматического сканирования нескольких каналов ввода, режимы автовыборки и автопреобразования, что значительно упрощает управление преобразователем и избавляет разработчика от трудоёмких расчётов временных характеристик преобразования.

526

Рис. 1.1. Структурная схема модуля АЦП микроконтроллера

527

Процесс преобразования аналогового сигнала в цифровой можно представить в виде последовательности двух этапов: этапа выборки и этапа собственно преобразования (рис. 1.2).

Преобразование аналогового сигнала в цифровой код начинается с момента подключения одного из входов АЦП к источнику сигнала (1). На программном уровне это подключение выполняется путём установки бита SAMP регистра управления AD1CON1. Устройство выборки-хранения представляет собой матрицу конденсаторов, которые заряжаются напряжением входного сигнала в течение определённого интервала времени (время выборки). Интервал выборки должен быть достаточно продолжительным, чтобы конденсаторы смогли зарядиться до напряжения, соответствующего входному сигналу. Интервал выборки задаётся программным способом в регистре управления AD1CON3.

По завершении этапа выборки источник входного аналогового сигнала отключается от устройства выборки-хранения, и начинается процесс преобразования накопленного на матрице конденсаторов заряда в цифровой код (2). Для данного этапа предусмотрен целый ряд режимов, позволяющих управлять процессом преобразования вручную или автоматически. Управление этапом преобразования выполняется путём программирования отдельных битов регистра AD1CON1.

На этапе преобразования каждый бит результата выдается по отдельному синхронизирующему импульсу. Для 10 битного преобразования требуется 10 импульсов синхронизации плюс два дополнительных импульса, т. е. всего 12 импульсов. Период таких импульсов (обозначается как TAD) выбирается программно путем установки соответствующих битов в регистре AD1CON3. По завершении преобразования 10 битный цифровой код результата помещается в один из 16 битных буферных регистров, которые доступны для чтения (3). Об окончании преобразования свидетельствует либо установленный бит DONE в регистре управления состояния AD1CON1, либо установленный флаг прерывания АЦП.

Рис. 1.2. Последовательность выполнения аналого-цифрового преобразования

528

1.3Программная модель АЦП

Спрограммной точки зрения модуль АЦП представляет собой группу регистров, с помощью которых можно задавать как общие параметры преобразования (интервал выборки, частоту преобразования), так и режимы выполнения самого преобразования (возможность сканирования каналов входных сигналов, автоматического запуска преобразования и т.д.).

Модуль АЦП микроконтроллера dsPIC33fj32mc204 имеет 10 регистров управления состояния:

AD1CON1, AD1CON2, AD1CON3, AD1CON4 – регистры управления; AD1CHS123 – регистр выбора входа каналов 1, 2, 3;

AD1CHS0 – регистр выбора входа канала 0;

AD1CSSH, AD0CSSL – старший и младший регистры задания последовательности сканирования;

AD1PCFGH, AD0PCFGL – старший и младший регистры конфигурации порта;

Регистры AD1CON1, AD1CON2, AD1CON3 производят настройку модуля АЦП. С их помощью устанавливается частота преобразования, выбирается конфигурация источников опорного напряжения, а также выполняется программное управление выборкой и преобразованием входного сигнала. Регистр AD1CON4 устанавливает количество результатов преобразований для каждого аналогового входа, автоматически сохраняемых в буфер в память микроконтроллера. Регистры AD1CHS123 и AD1CHS0 позволяет выбрать входные каналы, которые будут подключены к устройству выборки-хранения сигнала преобразователя, а также настроить мультиплексор для работы с входными сигналами. Регистры AD1PCFGH и AD1PCFGL производят настройку линий порта микроконтроллера как аналоговые входы либо как цифровые входы/выходы. Регистры AD1CSSH, AD0CSSL позволяют выбрать каналы входных сигналов для режима сканирования.

Биты регистров и назначения некоторых наиболее часто используемых битов указаны в таблицах 1.1 – 1.10.

Таблица 1.1

Биты регистра AD1CON1

Обозначен

ADO

 

 

 

ADSID

ADDMA

 

 

 

 

ие

N

 

-

 

L

BM

-

AD12B

FORM<1:0>

Номер

 

 

 

 

 

 

 

 

 

 

бита

15

 

14

 

13

12

11

10

9

8

Обозначен

 

SSRC<2

 

 

SIMSA

ASA

 

 

ие

 

:0>

 

 

-

M

M

SAMP

DONE

Номер

 

 

 

 

 

 

 

 

 

 

бита

7

 

6

 

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

529

Таблица 1.2

Назначение некоторых битов регистра AD1CON1

Номер

Обозначени

 

 

е

Описание

бита

 

 

 

 

Управление работой модуля

15

ADON

АЦП

 

 

ADON = 1: модуль АЦП включен

 

 

ADON = 0: модуль АЦП

 

 

отключен

 

AD12

 

10

B

Выбор режима работы

 

 

AD12B = 1: 12-битный

 

 

режим

 

 

AD12B = 0: 10-битный

 

 

режим

 

 

Задание формата данных

9-8

FORM<1:0>

результата

 

 

FORM<1:0> = 00: беззнаковый целочисленный

 

 

формат

 

 

Задание метода инициализации

7-5

SSRC<7:5>

преобразования

 

 

SSRC<7:5> = 111: Процесс выборки контролируется

 

 

внутренним

 

 

счётчиком. По окончании выборки начинается

 

 

преобразование

 

 

(автопреобразование).

 

 

SSRC<7:5> = 010: Окончание выборки контролируется

 

 

таймером

 

 

T3. По окончании выборки начинается

 

 

преобразование.

 

 

SSRC<7:5> = 000: Очистка бита выборки SAMP

 

 

завершает выборку

 

 

и запускает

 

 

преобразование

2

ASAM

Задание автоматического запуска выборки

 

 

ASAM = 1: Выборка начинается сразу после

 

 

предыдущего

 

 

преобразования. Бит SAMP устанавливается

 

 

автоматически.

 

 

ASAM = 0: Выборка запускается вручную при установке

 

 

бита

 

 

SAMP.

 

 

530

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]