Проектирование микропроцессорной системы управления (МКС)
Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.06.2016 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
num = (mvolts / 100) % 10; //извлечение десятых долейвольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
}
}
3.7 Программа управления МКС
Программу управления для МКС назовем control.c. Ее текст может быть следующий.
/************************************************************
Control.c - программа управления микроконтроллерной системой
************************************************************/
/* Определения глобальных переменных */
//присоединение выводов ЖКД
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbitLCD_RS_Direction at TRISB2_bit;
sbitLCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
charkeypadPort at PORTD;
char key;
char counter = 0;
charflag_T = 0;
sbitX1 atRC3_bit; //битовая переменная X1 на линии порта RC3
sbitX2 atRC4_bit; //битовая переменная X2 на линии порта RC4
sbitX3 atRC5_bit; //битовая переменная X3 на линии порта RC5
sbitX4 atRC6_bit; //битовая переменная X4 на линии порта RC6
sbitX5 atRC7_bit; //битовая переменная X5 на линии порта RC7
sbitY1 atRE0_bit; //битовая переменная Y1 на линии порта RE0
unsignedint W1;
unsignedint W2;
unsignedint W3;
unsignedint W4;
unsignedint W5;
const code int K1 = 5
const code int K2 = 7;
const code int K3 = 10;
const code int K4 = 5;
const code int K5 = 4;
const code int Q = 20;
int M;
int N;
voidinit();
void digit();
void analog();
void display();
voidinterrupt()
{
if(INTF == 1) //если запрос прерывания по INT
{
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,5,"ERROR");
Sound_Play(500,10000); //частоты 500Гц, 10секунд
while (1)
{
PORTB.B1 = 1; //включитьсветодиод
Delay_ms(500);
PORTB.B1 = 0;
Delay_ms(500);
}
}
//запрос прерывания от таймера TMR0
counter++;
if(counter == 280) //если прошло время опроса 4.2 с
{
flag_T = 1; //установить флаг окончания отсчета
//времени Топр= 4.2с
counter = 0;
}
TMR0 = 22; //перезагрузить таймер
T0IF_bit = 0; //сбросить флаг запроса прерывания T0IF
}
voidmain ()
{
init();
again:
digit();
analog();
opros:
key = 0;
key = Keypad_Key_Click();
if (key !=0)
display();
if (flag_T == 0)
gotoopros
else
{
flag_T = 0;
counter = 0;
TMR0 = 22;
goto again;
}
}
voidinit ()
{
TRISA = 0xFF;
TRISB = 0b11111101;
TRISC = 0b11111000;
TRISE = 0;
TRISD = 0xFF;
PORTE = 0;
PORTC.B0 = 0;
PORTC.B1 = 0;
PORTC.B2 = 0;
PORTB.B1 = 0;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,4, "Work Mode");
ADC_Init();
Keypad_Init();
PWM1_Init(5000);
PWM2_Init(5000);
PWM1_Start();
PWM2_Start();
Sound_Init(&PORTC,0);
OPTION_REG = 0b11111111;
TMR0 = 22;
INTCON = 0xB0;
}
voiddigit()
{
bitf; //битовая переменная для хранения результата
//вычисления логической функции
f() =X1 || (!X2) && (!(X3 || X4 || X5));//вычисление //логической функции
if(f==1) //если результат равен 1
{
Y1=1;
Delay_us(40);
Y1=0;
}
}
voidanalog()
{
intg; //двухбайтные переменные для хранения
inte; //результатов вычисления
inth; //функцийg(), e(), h()
charDC; //переменная для рабочего цикла ШИМ
//чтение кодов АЦП
W1 = ADC_Read(0); //аналоговый канал 0 (сигнал U1)
W2 = ADC_Read(1); //аналоговый канал 0 (сигнал U2)
W3 = ADC_Read(2); //аналоговый канал 0 (сигнал U3)
W4 = ADC_Read(3); //аналоговый канал 0 (сигнал U4)
W5 = ADC_Read(4); //аналоговый канал 0 (сигнал U5)
N=K1+W2; //вычисление функции g()
M=(W3+K3)/8;
if (N>M)
g =9•W1+N;
else
g =9•W1+M;
if(g>=Q)
{
Y3=1; //выводсигнала Y3
Delay_ms(58);
Y3=0;
}
else
{
Y2 = 1;
Delay_ms(16);
Y2 = 0;
}
e()=3•W4/K4; //вычислениефункцииe()
DC=e; //определить величину рабочего цикла
PWM1_Set_Duty(DC); //установить текущий рабочий цикл для //PWM1
h = 7•W5/K5; //вычисление функции h()
DC = h; //определить величину рабочего цикла
PWM2_Set_Duty(DC); //установить текущий рабочий цикл для //PWM2
}
voiddisplay()
{
intmvolts; //переменная для хранения величины напряжения в
//милливольтах
charnum; //переменная для хранения цифр напряжения в
//вольтах
switch(key)
{
case 1:
{
mvolts = ((long)W1*5000) / 0x03FF; //преобразование
//кода W1 в/милливольты
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4, "WorkMode");
Lcd_Out(2,4, "U1=");
num = mvolts / 1000;
Lcd_Chr_Cp(48+num); // выводцифрывкодеASCII
Lcd_Chr_Cp('.'); //вывод на ЖКД десятичной точки
num = (mvolts / 100) % 10; //извлечение десятых долей
//вольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
case 2:
{
mvolts = ((long)W2*5000) / 0x03FF; //преобразование кода W2 вмилливольты
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4, "Work Mode");
Lcd_Out(2,4, "U2=");
num = mvolts / 1000;
Lcd_Chr_Cp(48+num); // выводцифры в коде ASCII
Lcd_Chr_Cp('.'); //вывод на ЖКД десятичной точки
num = (mvolts / 100) % 10; //извлечение десятых долей
//вольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
case 3:
{
mvolts = ((long)W3*5000) / 0x03FF; //преобразование кода W3 вмилливольты
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4, "Work Mode");
Lcd_Out(2,4, "U3=");
num = mvolts / 1000;
Lcd_Chr_Cp(48+num); // выводцифры в коде ASCII
Lcd_Chr_Cp('.'); //вывод на ЖКД десятичной точки
num = (mvolts / 100) % 10; //извлечение десятых долей
//вольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
case 4:
{
mvolts = ((long)W4*5000) / 0x03FF; //преобразование кода W4 вмилливольты
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4, "Work Mode");
Lcd_Out(2,4, "U4=");
num = mvolts / 1000;
Lcd_Chr_Cp(48+num); // выводцифры в коде ASCII
Lcd_Chr_Cp('.'); //вывод на ЖКД десятичной точки
num = (mvolts / 100) % 10; //извлечение десятых долейвольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
case 5:
{
mvolts = ((long)W5*5000) / 0x03FF; //преобразование кода W5 вмилливольты
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,4, "Work Mode");
Lcd_Out(2,4, "U5=");
num = mvolts / 1000;
Lcd_Chr_Cp(48+num); // выводцифры в коде ASCII
Lcd_Chr_Cp('.'); //вывод на ЖКД десятичной точки
num = (mvolts / 100) % 10; //извлечение десятых долейвольта
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Chr_Cp(48+num);
num = (mvolts / 10) % 10;
Lcd_Out_Cp("V"); //в текущую позицию курсора
break;
}
}
}
ЗАКЛЮЧЕНИЕ
В курсовом проекте с поставленной задачей справились. Была разработана МКС управления некоторым технологическим объектом, а именно:
1. Структура МКС состоящая из объекта управления, микроконтроллера, пульта управления и аппаратуры их взаимной связи.
2. Структурная схема МКС.
3. Принципиальная схема МКС.
4. Программное обеспечение работы МКС.
Список литературы
Размещено на Allbest.ru
Подобные документы
Разработка микропроцессорной системы для контроля и индикации параметров изменяющегося по случайному закону 8-ми разрядного двоичного кода. Проектирование принципиальной схемы микроконтроллера, описание работы схемы. Разработка блок-схемы программы.
курсовая работа [752,4 K], добавлен 10.01.2013Проект структурной схемы микропроцессорной системы управления. Блок-схема алгоритма работы МПС; создание программы, обеспечивающей его выполнение. Распределение области памяти под оперативное и постоянное запоминающие устройства. Оценка ёмкости ПЗУ и ОЗУ.
курсовая работа [467,9 K], добавлен 21.05.2015Электронный замок: общая характеристика и принцип действия. Анализ вариантов реализации устройства. Разработка алгоритма функционирования, структурной и электрической принципиальной схемы электронного замка. Блок-схема алгоритма работы программы.
курсовая работа [363,3 K], добавлен 10.05.2015Порядок описания и разработки структурной и функциональной схемы микропроцессорной системы на основе микроконтроллера К1816ВЕ31. Обоснование выбора элементов, разработка принципиальной схемы данной системы, программы инициализации основных компонентов.
курсовая работа [260,4 K], добавлен 16.12.2010Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы.
контрольная работа [275,4 K], добавлен 08.01.2014Создание микропроцессорной системы на базе микроконтроллера, предназначенного для функциональной диагностики цифровых и интегральных микросхем. Разработка и расчёт блоков микроконтроллера, сопряжения, управления, питания, цифровой и диодной индикации.
курсовая работа [1,5 M], добавлен 28.01.2016Разработка структурной и принципиальной схемы микропроцессора. Подключение шины адреса, данных и управления к соответствующим блокам на схеме. Формирование блока устройства памяти (ОЗУ и ПЗУ) и подключение его к шинам блока центрального процессора.
контрольная работа [220,5 K], добавлен 08.07.2012Описание работы системы автоматической регулировки напряжения. Разработка принципиальной схемы. Источник питания АЦП микроконтроллера. Аттенюаторы мелкого и крупного шага. Описание блок-схемы алгоритма работы блока управления АРН. Расчет сметы затрат.
дипломная работа [96,1 K], добавлен 22.02.2012Изобретение и развитие микропроцессоров. Микроконтроллеры различных типов. Принципиальная схема микропроцессорной системы. Выбор датчиков Расчет основных элементов МПС. Составление алгоритма работы схемы, программы для нее. Сборка МПС в программе Proteus.
курсовая работа [387,3 K], добавлен 25.04.2016