SlideShare a Scribd company logo
1 of 16
Микроконтролери
(за абсолютно начинаещи)
Въведение в микроконтролерите
Тази презентация е част от проведения 14-ти февруари
в гр. Велико Търново „Курс по запояване и микроконтролери“
2015-02-14, Велико Търново
Copyright © 2015, Neven Boyanov
This work by Neven Boyanov is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.
Въведение в микроконтролерите
Тази презентация е част от проведения 14-ти февруари
в гр. Велико Търново „Курс по запояване и микроконтролери“
2015-02-14, Велико Търново
Copyright © 2015, Neven Boyanov
This work by Neven Boyanov is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.
Какво е това микроконтролер
Интегрална схема, съчетаваща в себе си
микропроцесор, тактов генератор,
оперативна памет и входно-изходни
устройства, което и позволява да функционира̀
като самостоятелно компютърно устройство.
Какво можем да правим с
микроконтролер – нещо просто
Какво можем да правим с
микроконтролер – нещо сложно
Как се програмира микроконтролер
Трябват ни …
● Компютър
● Програматор
● Микроконтролер
Как работи микроконтролера
Как контролираме битовете
Примерна програма
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
DDRB &= ~(1 << PB4);
while (1) {
if (PINB & (1 << PB4) == 0) {
PORTB |= (1 << PB3);
} else {
PORTB &= ~(1 << PB3);
}
}
return (0);
}
Мигащ светодиод
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORTB |= (1 << PB3);
_delay_ms(200);
PORTB &= ~(1 << PB3);
_delay_ms(400);
}
return (0);
}
Мигащ светодиод
стъпка 1
#include <avr/io.h>
● Включване на
стандартните за за
микроконтролера
дефиниции с помоща
на #include
директивите.
Мигащ светодиод
стъпка 2
#include <avr/io.h>
int main(void) {
return (0);
}
● Главната за
програмата main()
функция.
Мигащ светодиод
стъпка 3
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
return (0);
}
● Настройка на PB3
като изход.
Мигащ светодиод
стъпка 4
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
}
return (0);
}
● Задаване на безкраен
цикъл wihle(1) за
изпълнение на
програмата.
Мигащ светодиод
стъпка 5
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORTB |= (1 << PB3);
PORTB &= ~(1 << PB3);
}
return (0);
}
● Последователно
установяване на
изхода в …
– 1 = високо ниво
– 0 = ниско ниво
… съответстващо на
включване и
изключване на
светодиода.
Мигащ светодиод
стъпка 6
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORTB |= (1 << PB3);
_delay_ms(200);
PORTB &= ~(1 << PB3);
_delay_ms(400);
}
return (0);
}
● Задаване на
закъснение след всяко
включване и
изключване.
Контакти и препратки
Невен Боянов
● http://www.boyanov.org
● https://twitter.com/boyanov
● https://www.facebook.com/boyanov
Tinusaur
● http://tinusaur.org
● https://www.facebook.com/tinusaur
Programmers' Club in Veliko Turnovo
● http://www.pcvt.org
● https://www.facebook.com/groups/pcvt.org/
Невен Боянов
● http://www.boyanov.org
● https://twitter.com/boyanov
● https://www.facebook.com/boyanov
Tinusaur
● http://tinusaur.org
● https://www.facebook.com/tinusaur
Programmers' Club in Veliko Turnovo
● http://www.pcvt.org
● https://www.facebook.com/groups/pcvt.org/

More Related Content

More from Neven Boyanov

Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериNeven Boyanov
 
Интегриран подход за обучение по математика и информатика със засилени интер...
Интегриран подход за обучение по математика и информатика  със засилени интер...Интегриран подход за обучение по математика и информатика  със засилени интер...
Интегриран подход за обучение по математика и информатика със засилени интер...Neven Boyanov
 
Tinusaur Starter - User Guide
Tinusaur Starter - User GuideTinusaur Starter - User Guide
Tinusaur Starter - User GuideNeven Boyanov
 
Отворена система за управление на потребителите
Отворена система за управление на потребителитеОтворена система за управление на потребителите
Отворена система за управление на потребителитеNeven Boyanov
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаNeven Boyanov
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаNeven Boyanov
 

More from Neven Boyanov (6)

Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролери
 
Интегриран подход за обучение по математика и информатика със засилени интер...
Интегриран подход за обучение по математика и информатика  със засилени интер...Интегриран подход за обучение по математика и информатика  със засилени интер...
Интегриран подход за обучение по математика и информатика със засилени интер...
 
Tinusaur Starter - User Guide
Tinusaur Starter - User GuideTinusaur Starter - User Guide
Tinusaur Starter - User Guide
 
Отворена система за управление на потребителите
Отворена система за управление на потребителитеОтворена система за управление на потребителите
Отворена система за управление на потребителите
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продукта
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продукта
 

Въведение в Микроконтролерите - PCVT/20150214

  • 1. Микроконтролери (за абсолютно начинаещи) Въведение в микроконтролерите Тази презентация е част от проведения 14-ти февруари в гр. Велико Търново „Курс по запояване и микроконтролери“ 2015-02-14, Велико Търново Copyright © 2015, Neven Boyanov This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Въведение в микроконтролерите Тази презентация е част от проведения 14-ти февруари в гр. Велико Търново „Курс по запояване и микроконтролери“ 2015-02-14, Велико Търново Copyright © 2015, Neven Boyanov This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
  • 2. Какво е това микроконтролер Интегрална схема, съчетаваща в себе си микропроцесор, тактов генератор, оперативна памет и входно-изходни устройства, което и позволява да функционира̀ като самостоятелно компютърно устройство.
  • 3. Какво можем да правим с микроконтролер – нещо просто
  • 4. Какво можем да правим с микроконтролер – нещо сложно
  • 5. Как се програмира микроконтролер Трябват ни … ● Компютър ● Програматор ● Микроконтролер
  • 8. Примерна програма #include <avr/io.h> int main(void) { DDRB |= (1 << PB3); DDRB &= ~(1 << PB4); while (1) { if (PINB & (1 << PB4) == 0) { PORTB |= (1 << PB3); } else { PORTB &= ~(1 << PB3); } } return (0); }
  • 9. Мигащ светодиод #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3); _delay_ms(200); PORTB &= ~(1 << PB3); _delay_ms(400); } return (0); }
  • 10. Мигащ светодиод стъпка 1 #include <avr/io.h> ● Включване на стандартните за за микроконтролера дефиниции с помоща на #include директивите.
  • 11. Мигащ светодиод стъпка 2 #include <avr/io.h> int main(void) { return (0); } ● Главната за програмата main() функция.
  • 12. Мигащ светодиод стъпка 3 #include <avr/io.h> int main(void) { DDRB |= (1 << PB3); return (0); } ● Настройка на PB3 като изход.
  • 13. Мигащ светодиод стъпка 4 #include <avr/io.h> int main(void) { DDRB |= (1 << PB3); while (1) { } return (0); } ● Задаване на безкраен цикъл wihle(1) за изпълнение на програмата.
  • 14. Мигащ светодиод стъпка 5 #include <avr/io.h> int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3); PORTB &= ~(1 << PB3); } return (0); } ● Последователно установяване на изхода в … – 1 = високо ниво – 0 = ниско ниво … съответстващо на включване и изключване на светодиода.
  • 15. Мигащ светодиод стъпка 6 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3); _delay_ms(200); PORTB &= ~(1 << PB3); _delay_ms(400); } return (0); } ● Задаване на закъснение след всяко включване и изключване.
  • 16. Контакти и препратки Невен Боянов ● http://www.boyanov.org ● https://twitter.com/boyanov ● https://www.facebook.com/boyanov Tinusaur ● http://tinusaur.org ● https://www.facebook.com/tinusaur Programmers' Club in Veliko Turnovo ● http://www.pcvt.org ● https://www.facebook.com/groups/pcvt.org/ Невен Боянов ● http://www.boyanov.org ● https://twitter.com/boyanov ● https://www.facebook.com/boyanov Tinusaur ● http://tinusaur.org ● https://www.facebook.com/tinusaur Programmers' Club in Veliko Turnovo ● http://www.pcvt.org ● https://www.facebook.com/groups/pcvt.org/