Блок контроля и регулирования температуры пояльного жала на микроконтроллере на языке C/C++
Заказать уникальную курсовую работу- 31 31 страница
- 5 + 5 источников
- Добавлена 22.01.2024
- Содержание
- Часть работы
- Список литературы
1. ГЛАВА 1 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ 3
2. ГЛАВА 2 ФУНКЦИОНАЛЬНАЯ И ПРИНЦИПИАЛЬНАЯ ЭЛЕКТРИЧЕСКАЯ СХЕМЫ УСТРОЙСТВА 17
3. ГЛАВА 3 АЛГОРИТМ РАБОТЫ МИКРОКОНТРОЛЛЕРА И ОСНОВНЫЕ УЗЛЫ УСТРОЙСТВА 20
4. ГЛАВА 4 РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЙ 21
ЗАКЛЮЧЕНИЕ 22
СПИСОК ЛИТЕРАТУРЫ 23
ПРИЛОЖЕНИЕ А ФУНКЦИОНАЛЬНАЯ СХЕМА 24
ПРИЛОЖЕНИЕ Б ПРИНЦИПИАЛЬНАЯ СХЕМА 25
ПРИЛОЖЕНИЕ В КОД МИКРОКОНТРОЛЛЕРА 26
СПИСОК ЛИТЕРАТУРЫМатюшов, Н.В. Начало работы с микроконтроллерами STM8 / Н.В. Матюшов. - М.: Солон-пресс, 2016. - 208 c.Богомолов, С.А. Основы электроники и цифровой схемотехники: Учебник / С.А. Богомолов. - М.: Academia, 2018. - 208 c.Игумнов, Д.В. Основы полупроводниковой электроники: Учебное пособие для вузов / Д.В. Игумнов, Г.П. Костюнина. - М.: РиС, 2015. - 394 c.Штеренлихт, Д.В. Электротехника и основы электроники: Учебное пособие / Д.В. Штеренлихт. - СПб.: Лань П, 2016. - 432 c.AtollicTrueSTUDIO Электронный ресурс URL:https://www.st.com/en/development-tools/truestudio.htmlSTM8S003F3 Электронный ресурс URL:https://www.st.com/resource/en/datasheet/stm8s003f3.pdfЯзык программирования Си Электронный ресурс URL:http://www.r-5.org/files/books/computers/languages/c/kr/Brian_Kernighan_Dennis_Ritchie-The_C_Programming_Language-RU.pdfПРИЛОЖЕНИЕ А ФУНКЦИОНАЛЬНАЯ СХЕМАПРИЛОЖЕНИЕ Б ПРИНЦИПИАЛЬНАЯ СХЕМАПРИЛОЖЕНИЕ В КОД МИКРОКОНТРОЛЛЕРАhw.h#include"stm8s.h"// портвнешнегопрерыванияпопереходунуля, дляформированиясигналовнанагревателель// используетсяисходныйсигнал 50Гц, которыйпреобразуется в прямоугольныеимпульсы#define PIN_ZERO_DT_PORT GPIOD#define PIN_ZERO_DT GPIO_PIN_3#define CROSS_ZERO_DT_EXTI_RF 0b11000000// пинпереключателя#defineBTN_SW_GPP GPIOC#defineBTN_SW_Pin GPIO_PIN_6// светодиодыиндикациятемепературы#defineLED_Port GPIOC#defineLED_Pins GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5#defineLED_Pins_mask 0b11000111#defineTurnOffLedsLED_Port->ODR &= LED_Pins_mask;#defineTurnOnLed(val) LED_Port->ODR &= LED_Pins_mask; LED_Port->ODR ^= (val<<3);//упарвлениенагревателем#defineHeaterGPP GPIOD#defineHeaterPin GPIO_PIN_4#define HEATER_ON HeaterGPP->ODR &= ~HeaterPin#define HEATER_OFF HeaterGPP->ODR |= HeaterPin//датчиктемпературы#define TEMPERATURE_ADC_CH ADC1_CHANNEL_3voidHW_Init(void);hw.c#include"hw.h"voidGPIO_Config() {//конфигурацияпинапереходачерез 0 (дляформирования ШИМ)//переходчерез 0 используетсядляминимизациинагрузкинауправляющийсимисторPIN_ZERO_DT_PORT->DDR &= ~PIN_ZERO_DT;//входPIN_ZERO_DT_PORT->CR2 |= PIN_ZERO_DT;//использоватькаквходвнешнегопрерывания, плавающий//конфигурацияпинапереключателянастроекуровнятемпературы BTN_SW_GPP->DDR &= ~BTN_SW_Pin;//вход BTN_SW_GPP->CR1 |= BTN_SW_Pin;//включитьподтягивающийрезистор//конфигурациявнешнихпрерыванийдлявходовпереходачерез 0(отвнешнегогенератора) и нажатияуправляющейкнопки EXTI->CR1 &= (uint8_t)(~EXTI_CR1_PAIS);//сборпрерываний EXTI->CR1 |= (uint8_t)(CROSS_ZERO_DT_EXTI_RF);//установкапопереходуиз 1 в 0//конфигурацияпиновдлясветодиоднойиндикациитемпературыLED_Port->DDR |= LED_Pins;//направлениепередачиданныхLED_Port->CR1 |= LED_Pins;//подтяжка//пинуправлениянагревателем (идетдалеенасиловой MOSFET)HeaterGPP->DDR |= HeaterPin;// устанвокатипоткрытыйколлекторHEATER_OFF;}voidTIM4_Config() {TIM4->PSCR |= TIM4_PRESCALER_8;//установкапредделителятаймера TIM4->ARR = 0x90;//значение с учетом 17ms наработу АЦП TIM4->SR1 &= ~TIM4_SR1_UIF;//сбросфлагапрерывания (еслибылустановлен) TIM4->IER |= TIM4_IT_UPDATE;//включениепрерыванияпотаймеру}voidADC_Config(){ ADC1->CSR = ADC1_CSR_RESET_VALUE;//сброс CSR регистра ADC1->CSR |= TEMPERATURE_ADC_CH;//устанавливаемвходнойканал АЦПADC1->CR1 |= ADC1_PRESSEL_FCPU_D18;ADC1->CR2 |= ADC1_CR2_ALIGN;//настройкивыравниванияданных ADC1->CR1 |= ADC1_CR1_ADON;//включаем АЦП ADC1->CSR |= ADC1_CSR_EOCIE;//включаемгенерациюпрерыванияпозавершенииполученияданных}voidHW_Init(){_disable_irq();GPIO_Config();ADC_Config(); TIM4_Config();_enable_irq();}pid.h#include"stm8s.h"typedefstruct {int8_tdstate;//последняяпозициявходаint8_tistate;//состояниеинтергартораint8_timax, imin;//пределыинтегрированияint8_tvmax, vmin;//пределырезультатаint8_tpgain, igain, dgain; //коэффициенты ПИД регулирования} pid_struct;int8_tupdate_pid(pid_struct *pid, int8_t error, uint8_t position);pid.c#include"pid.h"int8_tupdate_pid(pid_struct *pid, int8_t error, uint8_t position) {int16_tpterm, iterm, dterm, res;//вычислениепропорциональнойчастиpterm = pid->pgain * error;//обновлениеинтеграционнойчастиpid->istate += error;if (pid->istate > pid->imax)pid->istate = pid->imax;elseif (pid->istate < pid->imin)pid->istate = pid->imin;//вычислениеинтерграциннойчастиiterm = pid->igain * pid->istate;//вычислениедифференциальнойчастиdterm = pid->dgain * (position - pid->dstate);pid->dstate = position;res = pterm + iterm - dterm;//ограничениепределамиif (res >pid->vmax)res = pid->vmax;elseif (res < pid->vmin)res = pid->vmin;return (int8_t) res;}main.c#include
2.Богомолов, С.А. Основы электроники и цифровой схемотехники: Учебник / С.А. Богомолов. - М.: Academia, 2018. - 208 c.
3.Игумнов, Д.В. Основы полупроводниковой электроники: Учебное пособие для вузов / Д.В. Игумнов, Г.П. Костюнина. - М.: РиС, 2015. - 394 c.
4.Штеренлихт, Д.В. Электротехника и основы электроники: Учебное пособие / Д.В. Штеренлихт. - СПб.: Лань П, 2016. - 432 c.
5.Atollic TrueSTUDIO Электронный ресурс URL:https://www.st.com/en/development-tools/truestudio.html
6.STM8S003F3 Электронный ресурс URL:https://www.st.com/resource/en/datasheet/stm8s003f3.pdf
7.Язык программирования Си Электронный ресурс URL:http://www.r-5.org/files/books/computers/languages/c/kr/Brian_Kernighan_Dennis_Ritchie-The_C_Programming_Language-RU.pdf