Автор работы: Пользователь скрыл имя, 31 Марта 2013 в 16:38, курсовая работа
На сегодняшний день лифт стал неотъемлемой частью нашей жизни. В современных многоэтажных зданиях их число доходят до трех. Различают грузовые, пассажирские, пожарные и другие типы лифтов. Но несмотря на их функциональное различие, принцип работы и система управления во многом схожи.
Далеко не каждый человек задумывается, что скрывается за простым алгоритмом нажатия кнопки и прибытием на нужный этаж.
Также выделим и функции, которые возлагаются на программу, загружаемую в микроконтроллер:
4.2 Составление программы
После того, как были определены все требования, предъявляемые требования к программному средству, и выполняемые им функции, можно приступить к проектированию схемы алгоритма программы. Конечно схема работы программного средства была приведена в предыдущих пунктах, но она была укрупнённая. А наша задача сейчас составить более детальную схему алгоритма программы.
Схема алгоритма программы для устройства измерения и анализа веса представлена на рисунке 4.2.1.
Рисунок 4.2.1 – Схема алгоритма программы для МПС
4.3 Выбор среды программирования
Программное средство было решено реализовывать с помощью инструментальных средств фирмы Keil Software. Поскольку данный пакет было достаточно детально изучен на лабораторных занятиях. Также следует отметить, что представленная фирма поддерживает все стадии разработки приложения: создание исходного файла на С или Ассемблере, трансляцию, исправление ошибок, линкование объектных файлов, тестирование приложения. В пакете Keil Software содержатся практически все необходимые средства разработки для микроконтроллера 8051 /9/. Компилятор С51 поддерживает стандарт ANSI С, разработан специально для 8051 семейства и позволяет создавать программы на языке С (который является наиболее освоенным разработчиком данного курсового проекта), сохраняя эффективность и скорость оптимизации Ассемблера. Расширения, включенные в инструментальные средства Keil, обеспечивают полный доступ к ресурсам микроконтроллеров 8051.
Заключение
В ходе выполнения данного курсового проекта было разработано устройство, осуществляющее контроль температуры и влажности в инкубаторе. Основной же идеей этого проектирования являлось получение начальных навыков проектирования микропроцессорной системы, которое заключается в поэтапной реализации разрабатываемого устройства.
В процессе разработки были решены следующие задачи:
Логическим завершением
данного курсового
Список использованной литературы
Приложение А
(обязательное)
Функциональная схема МПС
Приложение Б
(обязательное)
Принципиальная электрическая схема МПС
Приложение В
(обязательное)
Перечень элементов
Приложение Г
(обязательное)
Листинг программы
#include "ADuC812.h"
#include "max.h"
#include "KB.h"
#include "i2c.h"
#include "lcd.h"
#include "rtc.h"
void Buzz(void)
{
unsigned char i;
unsigned short dur;
for(dur = 0; dur < 500; dur++)
{
WriteMax(ENA,0x24);
for(i=0; i < 2; i++)continue;
WriteMax(ENA,0x20);
for(i=0; i < 2; i++)continue;
}
}
extern int sprintf (char *, const char *, ...);
extern int abs (int val);
int T,VL,DV,kol,Tmin,Tmax;
TIME Opros,iztemp;
TIME vrem;
char outstr[16];
unsigned int ch;
int i;
unsigned char diap;
void FROM_TM0(void) interrupt 1
{
TH0=0xDC;
TL0=0x31;
kol++;
if (kol==100)
{
kol=0;
TR0=0;
GetTime(&vrem);
sprintf (outstr,"%d:%d:%d ", (int)vrem.hour, (int)vrem.min, (int)vrem.sec);
LCD_GotoXY(0,0);
LCD_Type(&outstr);
if (((vrem.min*60+vrem.sec)-(
{
LCD_GotoXY(0,1);
sprintf (outstr,"Temp %d Vlag %d", (int)T, (int)VL);
LCD_Type(&outstr);
Opros=vrem;
ch=0;
if ((VL<=47)||(VL>=52)) {ch=ch | 1;}
if ((T<=Tmin)||(T>=Tmax)) {ch= ch | 2;}
if (T<=20) {Buzz();}
if (DV==1) {Buzz(); DV=0;}
WriteMax(SV,ch);
}
if ((vrem.min-iztemp.min)==diap)
{
iztemp=vrem;
if (diap==1) {diap=2;Tmin=36;Tmax=40;T=38;}
else {diap=1;T=28; Tmin=26; Tmax=30;}
}
TR0=1;
}
}
void SetVector(unsigned char xdata *Address, void *Vector)
{
unsigned short xdata *TmpVector;
*Address = 0x02;
TmpVector = (unsigned short xdata *) (Address+1);
*TmpVector = (unsigned short) Vector;
}
void main(void)
{
unsigned char s;
T=38;
Tmin=36;
Tmax=40;
diap=2;
VL=50;
DV=0;
s=0;
kol=0;
InitLCD();
SetVector(0x200B,(void *) FROM_TM0);
TMOD=1;
ET0=1;
EA=1;
TH0=0xDC;
TL0=0x31;
GetTime(&Opros);
iztemp=Opros;
TR0=1;
while (1)
{
while (ScanKBOnce(&s)==0) {}
if (s=='1') {T-=5;}
if (s=='2') {T+=5;}
if (s=='4') {VL-=5;}
if (s=='5') {VL+=5;}
if (s=='0') {DV=1;}
for (i=0;i<20000;i++)
{Delay();}
}
}
Информация о работе Разработка микропроцессорной системы управления лифтом