Велокомпьютер на базе микроконтроллера
Курсовая работа, 13 Февраля 2015, автор: пользователь скрыл имя
Краткое описание
Задачей нашего курсового проекта является построение велокомпьютера на базе микроконтроллера. Основными требования, предъявляемыми к такой системе являются:
1) функциональность;
2) точность измерения;
3) минимальные материальный затраты;
4) размер.
Целью курсового проекта является:
1) закрепить, углубить и систематизировать теоретические знания, полученные ранее при изучении общепрофессиональных и специальных схемотехнических дисциплин;
2) получить практические навыки самостоятельного решения комплекса задач, связанных с проектированием ЭВС с использованием микропроцессорных средств, путем выполнения самостоятельной творческой разработки по заданному индивидуальному заданию;
3) научить пользоваться специальной, справочной и другой нормативной-технической литературой, действующими стандартами;
4) подготовить студента к дипломному проектированию и последующей самостоятельной работе по специальности.
Содержание
Введение. Постановка задачи ………..…………………………...….... 5
1. Анализ задачи. ……………………………………………...…….…. 6
1.1 Список функций, выполняемых системой…………………..... 6
1.2 Описание интерфейса между системой и пользователем…….. 7
2. Предварительное проектирование системы…………….……...…. 9
2.1 Разбиение системы на модули ………………………………… 9
2.2 Построение структурной схемы аппаратной части
системы и её описание……………………………………….… 11
3. Проектирование аппаратных средств системы……...……………. 13
3.1 Выбор типа микроконтроллера…………………………..…….. 13
3.2 Разработка принципиальной схемы системы……….………… 17
3.3 Описание работы системы по принципиальной схеме……….. 24
4. Проектирование программного обеспечения...……......…………. 25
4.1 Разработка схемы работы системы на Си……………………… 25
4.2 Описание работы системы и программы……………………... 29
Заключение………………………………………………………........... 31
Список использованных источников………………………………..... 32
ПРИЛОЖЕНИЕ А. Код программы микроконтроллера
на Си….……………………………………..……. 33
ПРИЛОЖЕНИЕ Б. Код программы микроконтроллера
на ассемблере…………………………………….. 40
Прикрепленные файлы: 1 файл
Гончарик А.В. Курсач.docx
— 418.49 Кб (Скачать документ)//=============
//Подпрограмма расчета и вывода на дисплей пройденного пути
//============
if(s4et==1)
{
LCDclear();
LCDstring("Quick distance",0,0);
LCDstring("m",8,1);
qdistance=(3.14*D*qdist)/1000;
////////расстояние в метрах.
sprintf(str16,"%.2f",qdistance);
LCDstring(str16,0,1);
}
if(s4et==2)
{
LCDclear();
LCDstring("Distance",0,0);
LCDstring("km",7,1);
distance=i + ((3.14*D*qdist)/1000000); ////////расстояние в километрах.
sprintf(str16,"%.2f",distance);
LCDstring(str16,0,1);
if(qdist==60)
EEPROM_write(2, distance); // запись в ПЗУ,каждые 60 сек.
//=============
//Подпрограмма вывода на дисплей значения таймера
//=============
}
if(s4et==3)
{
LCDclear();
LCDstring("Time",0,0);
LCDstring("h/m/s",8,1);
sprintf(str16,"%d",sec);
LCDstring(str16,4,1);
LCDstring(":",3,1);
sprintf(str16,"%d",min);
LCDstring(str16,2,1);
LCDstring(":",1,1);
sprintf(str16,"%d",hour);
LCDstring(str16,0,1);
}
//============
//Подпрограмма расчета и вывода на дисплей значения потраченных калорий
//============
if(s4et==4)
{
LCDclear();
LCDstring("Calories",0,0);
LCDstring("cal/min",7,1);
cal = SPEED*0.4125;
sprintf(str16,"%.3f",cal);
LCDstring(str16,0,1);
}
if(s4et!=0 && s4et!=1 && s4et!=2 && s4et!=3 && s4et!=4)
goto metka;
}
}
ПРИЛОЖЕНИЕ Б
Код программы микроконтроллера на ассемблере
Расчет значений для «функции таймера» (таймер 0):
IN R0,0x3F
CLR R1
LDS R24,0x00CE
LDS R25,0x00CF
ADIW R24,0x01
STS 0x00CF,R25
STS 0x0000,R24
CPI R24,0x0F
CPC R25,R1
BRNE PC+0x0E
LDS R24,0x00D0
LDS R25,0x00D1
ADIW R24,0x01
STS 0x00D1,R25
STS 0x00D0,R24
STS 0x00CF,R1
STS 0x00CE,R1
LDS R24,0x00D0
LDS R25,0x00D1
CPI R24,0x3C
CPC R25,R1
BRNE PC+0x0E
LDS R24,0x00D2
LDS R25,0x00D3
ADIW R24,0x01
STS 0x00D3,R25
STS 0x00D2,R24
STS 0x00D1,R1
STS 0x00D0,R1
LDS R24,0x00D2
LDS R25,0x00D3
CPI R24,0x3C
CPC R25,R1
BRNE PC+0x0E
LDS R24,0x00D4
LDS R25,0x00D5
ADIW R24,0x01
STS 0x00D5,R25
STS 0x00D4,R24
STS 0x00D3,R1
STS 0x00D2,R1
OUT 0x3F,R0
RETI
Расчет значений для «функции спидометра» (таймер 1 по прерыванию на INT1):
PUSH R1
PUSH R0
IN R0,0x3F
PUSH R0
CLR R1
LDS R24,0x00D6
LDS R25,0x00D7
SBIW R24,0x00
BRNE PC+0x09
OUT 0x2D,R1
OUT 0x2C,R1
LDI R24,0x01
LDI R25,0x00
STS 0x00D7,R25
STS 0x00D6,R24
LDS R24,0x00D6
LDS R25,0x00D7
CPI R24,0x01
CPC R25,R1
BRNE PC+0x3E
IN R28,0x2C
IN R29,0x2D
LDS R22,0x00DC
LDS R23,0x00DD
LDS R24,0x00DE
LDS R25,0x00DF
LDI R18,0xC3
LDI R19,0xF5
LDI R20,0x48
LDI R21,0x40
RCALL PC-0x06A6
LDI R18,0x00
LDI R19,0x00
LDI R20,0x10
LDI R21,0x42
RCALL PC-0x06AB
MOVW R14,R22
MOVW R16,R24
MOVW R22,R28
CLR R24
SBRC R23,7
COM R24
MOV R25,R24
RCALL PC-0x0763
LDI R18,0x0A
LDI R19,0xD7
LDI R20,0x23
LDI R21,0x3E
RCALL PC-0x06B8
MOVW R18,R22
MOVW R20,R24
MOVW R24,R16
MOVW R22,R14
RCALL PC+0x07FD
STS 0x00E0,R22
STS 0x00E1,R23
STS 0x00E2,R24
STS 0x00E3,R25
LDS R24,0x00DA
LDS R25,0x00DB
ADIW R24,0x01
STS 0x00DB,R25
STS 0x00DA,R24
STS 0x00D9,R1
STS 0x00D8,R1
OUT 0x2D,R1
OUT 0x2C,R1
OUT 0x3F,R0
RETI