Съдържание:
- Стъпка 1: Избор на микроконтролер
- Стъпка 2: КОНФИГУРИРАНЕ НА CCP МОДУЛ
- Стъпка 3: Конфигуриране на модул Timer2 (TMR2 регистър)
- Стъпка 4: Конфигуриране на PR2 (Timer2 Period Register)
- Стъпка 5: Конфигурирайте модул CCPR1l
- Стъпка 6: Напишете скицата на MPLAB X IDE на вашия код, който е даден по -долу
Видео: Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
КАКВО Е ШИМ?
ШИМ стойките за модулация на широчината на импулса е техника, чрез която ширината на импулса се променя.
За да се разбере ясно тази концепция, имайте предвид тактовия импулс или всеки сигнал с квадратна вълна, който има 50% работен цикъл, което означава, че периодът Тон и Тоф е еднакъв. Общата продължителност, за която сигналът е бил висок, и продължителността, за която сигналът е нисък, се нарича обща времеви период.
За изображението, показано по -горе, тази вълна има работен цикъл от 50%
Работен цикъл = (време на включване / общо време)*100
ON time - време, за което сигналът е висок
OFF time - време на враг, чийто сигнал е нисък Общо време - Общ период от време на импулса (време за включване и изключване)
Стъпка 1: Избор на микроконтролер
Избирането на подходящ микроконтролер за проекта това е съществената част от проекта ШИМ сигналите могат да бъдат генерирани в микроконтролери с ШИМ канали (CCP регистри). За този проект планирам да се придържам към pic16f877. можете да изтеглите връзката към листа с данни е дадена по -долу
PIC16F877a лист с данни щракнете тук
Модулът CCP е отговорен за производството на PWM сигнал. CCP1 и CCP2 са мултиплексирани с PORTC. PORTC е 8-битов широк двупосочен порт. Съответният регистър за посока на данни е TRISC. Задаването на бита TRISC (= 1) ще накара съответния PORTC щифт да бъде въведен. Изчистването на бит TRISC (= 0) ще направи съответния PORTC извод изход.
TRISC = 0; // Изчистването на този бит ще направи PORTC като изход
Стъпка 2: КОНФИГУРИРАНЕ НА CCP МОДУЛ
CCP - МОДУЛИ ЗА УЛИВАНЕ/СРАВНЯВАНЕ/ШИМ
Всеки модул Capture/Compare/PWM (CCP) съдържа 16-битов регистър, който може да работи като:
• 16-битов регистър за улавяне
• 16-битов регистър за сравнение
• Регистър PWM Master/Slave Duty Cycle
Конфигурирайте регистъра CCP1CON в режим PWM
Описание на регистъра
CCPxCON Този регистър се използва за конфигуриране на CCP модула за работа на Capture/Compare/PWM.
CCPRxL Този регистър съдържа 8-Msb бита на PWM, по-ниските 2-бита ще бъдат част от регистъра CCPxCON.
TMR2 Свободно работещ брояч, който ще бъде сравнен с CCPR1L и PR2 за генериране на ШИМ изход.
Сега ще използвам двоичен код за представяне на битовете за конфигуриране на регистъра CCP1CON.
вижте изображението по -горе.
CCP1CON = 0b00001111;
Можете също така да имате шестнадесетичен формат
CCP1CON = 0x0F; // конфигуриране на CCP1CON регистър за PWM режим
Стъпка 3: Конфигуриране на модул Timer2 (TMR2 регистър)
Timer2 е 8-битов таймер с прескалер и постскалер. Може да се използва като времева база за ШИМ за режима ШИМ на модула (ите) на CCP. Регистърът TMR2 е четим и записваем и се изчиства на всяко устройство Нулиране.
Показва се регистър T2CON
Предварителното и постмащабното ниво ще регулират изходната честота на генерираната ШИМ вълна.
Честота = тактова честота/(4*прескалиране*(PR2-TMR2)*Мащабиране на постове*брой)
Където Tout = 1/честота
T2CON = 0b00000100;
Това ще генерира кристал от 2.5 KHz @ 1Mhz или 100KHz @ 4MHz (практически има ограничение за тази PWM честота, вижте конкретен лист с данни за повече подробности)
шестнадесетично представяне
T2CON = 0x04; // активиране на T2CON без предварителна настройка и конфигурация на мащаб
Стъпка 4: Конфигуриране на PR2 (Timer2 Period Register)
Модулът Timer2 има 8-битов период регистър, PR2. Timer2 се увеличава от 00h до съвпадение с PR2 и след това се нулира до 00h при следващия цикъл на нарастване. PR2 е регистър за четене и запис. Регистърът PR2 се инициализира на FFh при нулиране.
Задаването на подходящ диапазон за PR2 ще позволи използването за промяна на работния цикъл на генерираната PWM вълна
PR2 = 100; // Задайте времето на цикъла на 100 за промяна на работния цикъл от 0-100
За простота използвам PR2 = 100, като правя CCPR1L = 80; 80% работен цикъл може да бъде постигнат.
Стъпка 5: Конфигурирайте модул CCPR1l
Тъй като PR2 = 100 CCPR1l може да бъде конфигуриран навсякъде между 0-100, за да се получи желаният работен цикъл.
Стъпка 6: Напишете скицата на MPLAB X IDE на вашия код, който е даден по -долу
#включва
void delay (int a) // функция за генериране на забавяне {
for (int i = 0; i <a; i ++)
{
for (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Изчистването на този бит ще направи PORTC като изход.
CCP1CON = 0x0F; // конфигуриране на CCP1CON регистър за PWM режим
T2CON = 0x04; // активиране на T2CON без предварителна настройка и конфигурация на мащаб.
PR2 = 100; // Задайте времето на цикъла на 100 за промяна на работния цикъл от 0-100
докато (1) {
CCPR1L = 75; // генерирано 75% забавяне на работния цикъл (1);
}
}
Направих и малка промяна в кода, така че честотата на генерираната ШИМ вълна
Този код е симулиран в протеус и изходната PWM вълна е показана по -долу. За да качите това на вашите карти за разработка на снимки, използвайте #include с подходящи битове за конфигуриране.
Благодаря ти
Препоръчано:
Двулентова VHF/UHF радио антена с четвърт вълна от Асни Нор Ризуан: 10 стъпки
Двулентова VHF/UHF радио антена с четвърт вълна от Асни Нор Ризуан: A Simple & Евтината двулентова антена ще ви спести наличието на две различни антени за UHF и VHF
Токоизправител с пълна вълна (за начинаещи): 6 стъпки
Мостови токоизправител с пълна вълна (за начинаещи): Мостовият токоизправител с пълна вълна е електронна схема, която преобразува променлив ток в постоянен ток. Електричеството, което излиза от стенен контакт, е променлив ток, докато повечето съвременни електронни устройства се захранват от постоянен ток. Това означава, че е
Генерирайте Banggood партньорски (препращащи) връзки по -лесно от всякога: 4 стъпки
Генериране на Banggood партньорски (препращащи) връзки по -лесно от всякога: Съкратената версия на тази инструкция може да бъде намерена в моя личен блог Продажбите на партньори са чудесен източник на допълнителни приходи за създателите на съдържание и много хора на инструктажи ги използват. Партньорската програма е Ban
Мини въртене от слънчева вълна: 27 стъпки
Mini Spinner от Solar Waver: Не са необходими познания по електроника за изграждането на това устройство
Скулптура с кинетична вълна: 5 стъпки
Скулптура с кинетична вълна: Този проект е кинетична скулптура, интегрирана с Bluetooth високоговорители. Механизмът на проекта зависи от движението на много жици, свързани помежду си, така че ако със проводниците се случи специално въртене, частиците ще започнат да се движат