
- •Введение.
- •Глава 1. Первый уровень иерархии систем автоматизации и управления – логические элементы Лабораторная работа №1. Логические элементы малой степени интеграции.
- •1.1 Формальный язык описания логических элементов.
- •1.2. Функционально полные наборы логических элементов.
- •Элемент и – не Элемент или – не
- •1.4 Работа в среде графического программирования LabView.
- •Типа не и и-не.
- •1.5. Порядок выполнения лабораторной работы №1.
- •Лабораторная работа №2. Логические элементы средней степени интеграции.
- •1.8. Порядок выполнения лабораторной работы №2.
- •Глава 2. Первый уровень иерархии систем автоматизации и управления – элементы памяти Лабораторная работа №3. Изучение принципов работы элементов памяти
- •2.1 Элементы памяти.
- •2.2 Конечные автоматы средней степени интеграции – двоичные счетчики и регистры
- •2.2.1. Счётчики импульсов
- •2.3. Работа в среде визуального редактора Visual Basic 6.0.
- •2.3.1. Интерфейс и форма
- •2.3.2. Программа выполнения логических операций с переменными типа «Byte».
- •2.3.3. Программа выполнения логических операций с переменными типа «Boolean».
- •2.4. Порядок выполнения лабораторной работы №3.
- •Глава 3. Первый уровень иерархии систем автоматизации и управления – элементы силовой электроники
- •3.1 Элементы силовой электроники систем управления
- •3.2 Устройства связи с объектами (усо).
- •Глава 4. Второй и третий уровни иерархии систем автоматизации и управления – микропроцессоры и контроллеры Лабораторная работа №4. Изучение принципов работы контроллера
- •4.1 Контроллер.
- •4.3 Создание управляющей программы контроллера.
- •4.3. Порядок выполнения лабораторной работы №4.
- •Глава 5. Создание программы управления объектом Лабораторная работа №5. Изучение процесса проектирования системы автоматизированного управления 5-го уровня иерархии.
- •5.1 Некоторые положения языка с, наиболее часто применяемые при программировании контроллеров.
- •If (выражение) оператор_1 else оператор_2
- •5.2 Программа обмена информацией между управляющей эвм и контроллером
- •Текст программы управления обменом информацией для контроллера через универсальный асинхронный приёмопередатчик – uart.
- •5.3 Порядок выполнения лабораторной работы №5
- •Заключение
- •Библиографический список
- •Глава 1. Первый уровень иерархии систем автоматизации и
- •Глава 2. Первый уровень иерархии систем автоматизации
- •2.2 Конечные автоматы средней степени интеграции – двоичные счетчики и регистры…………………………………..24
- •Глава 3. Первый уровень иерархии систем автоматизации
- •Глава 4. Второй и третий уровни иерархии систем автоматизации
- •Глава 5. Создание программы управления объектом……………………...52
Текст программы управления обменом информацией для контроллера через универсальный асинхронный приёмопередатчик – uart.
Эта программа может быть написана на языке С или ассемблере и должна обеспечивать выполнение всех действий контроллера, перечисленных в начале главы. Но мы не будем здесь рассматривать все тонкости процесса управления объектом, а обратим внимание на взаимодействие управляющего компьютера и контроллера в этом процессе. Последовательность операций должна быть следующей. После включения питания и начальной установки отдельных регистров, контроллер переходит в режим ожидания команды компьютера о начале работы. Приняв информацию, он сохраняет её в оперативной памяти для последующей обработки, которая здесь не рассматривается и пересылает полученную информацию в регистр данных порта В для наблюдения за процессом. Затем в оперативную память заносится информация, которую надо передать управляющему компьютеру и осуществляется процесс передачи.
Ниже следует откомментированный фрагмент текста программы.
/*********************************************
Project :
Version :
Date : 14.04.2007
Author : TAA
Company : АиУ
Comments: Приём информации через UART по флагу RXC в
регистре состояния USR (Status Register) и передача информации
через UART
Chip type : AT90S2313
Clock frequency : 7,372800 MHz
Memory model : Tiny
Internal SRAM size : 128
External SRAM size : 0
Data Stack size : 32
*********************************************/
#include <90s2313.h>
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
}
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
char oj @0x0f; //Глобальная переменная, используемая для
//хранения принятой информации размещена в регистре r15 (0x0f)
char b=0x1a; //инициализация переменной для наблюдения за её
//изменением при выполнении программы
char *p=&oj; //Объявление инициализированного указателя на
// объект типа char
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B
PORTB=0x00;
DDRB=0x0F;
// Port D
PORTD=0x00;
DDRD=0x42;
//…….
// Пропущены операции инициализации неиспользуемых устройств
// UART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity – 8 бит данных,
// 1 стоп-бит, нет проверки на чётность
// UART Receiver: On. Приёмник включен
// UART Transmitter: On Передатчик включен
// UART Baud rate: 9600 Скорость передачи 9600 Бод
UCR=0x18;
UBRR=0x2F;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
oj=0xab; //имитация принятого сообщения
#asm //Начало текста на ассемблере
r: sbis USR,RXC ;Ожидание установки флага RXC в состояние 1 –
;пропустить следующую строку, если бит RXC в
;регистре состояния USR установлен в состояние 1
rjmp r ;Вернуться к метке r:
in r15,UDR ;Принять информацию из регистра данных UDR в
;регистр r15
#endasm //Окончание текста на ассемблере
b=*p; /*Переменной b присваивается значение величины,
хранящейся в ячейке с адресом, на который указывает указатель *p
(*p, согласно его определению в начале программы, указывает на
адрес переменной oj) */
DDRB=0x00; //Порт В настроен на приём информации
PORTB=b; //Отображение принятой информации в регистре
// данных порта В
oj=0xfa; //Имитация сообщения подлежащего передаче
#asm
out UDR,r15 ;Передача информации в регистр данных UART-a и
;далее в СОМ-порт управляющего компьютера
#endasm
};
}