Съдържание:
- Стъпка 1: Избор на микроконтролер
- Стъпка 2: КОНФИГУРИРАНЕ НА CCP МОДУЛ
- Стъпка 3: Конфигуриране на модул Timer2 (TMR2 регистър)
- Стъпка 4: Конфигуриране на PR2 (Timer2 Period Register)
- Стъпка 5: Конфигурирайте модул CCPR1l
- Стъпка 6: Напишете скицата на MPLAB X IDE на вашия код, който е даден по -долу
![Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки](https://i.howwhatproduce.com/images/010/image-27971-j.webp)
Видео: Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки
![Видео: Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки Видео: Генерирайте PWM вълна с микроконтролер PIC: 6 стъпки](https://i.ytimg.com/vi/Mj5K6ZTT21Q/hqdefault.jpg)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
![Генерирайте PWM вълна с микроконтролер PIC Генерирайте PWM вълна с микроконтролер PIC](https://i.howwhatproduce.com/images/010/image-27971-1-j.webp)
![Генерирайте PWM вълна с микроконтролер PIC Генерирайте PWM вълна с микроконтролер PIC](https://i.howwhatproduce.com/images/010/image-27971-2-j.webp)
![Генерирайте PWM вълна с микроконтролер PIC Генерирайте PWM вълна с микроконтролер PIC](https://i.howwhatproduce.com/images/010/image-27971-3-j.webp)
![Генерирайте PWM вълна с микроконтролер PIC Генерирайте PWM вълна с микроконтролер PIC](https://i.howwhatproduce.com/images/010/image-27971-4-j.webp)
КАКВО Е ШИМ?
ШИМ стойките за модулация на широчината на импулса е техника, чрез която ширината на импулса се променя.
За да се разбере ясно тази концепция, имайте предвид тактовия импулс или всеки сигнал с квадратна вълна, който има 50% работен цикъл, което означава, че периодът Тон и Тоф е еднакъв. Общата продължителност, за която сигналът е бил висок, и продължителността, за която сигналът е нисък, се нарича обща времеви период.
За изображението, показано по -горе, тази вълна има работен цикъл от 50%
Работен цикъл = (време на включване / общо време)*100
ON time - време, за което сигналът е висок
OFF time - време на враг, чийто сигнал е нисък Общо време - Общ период от време на импулса (време за включване и изключване)
Стъпка 1: Избор на микроконтролер
![Избор на микроконтролер Избор на микроконтролер](https://i.howwhatproduce.com/images/010/image-27971-5-j.webp)
Избирането на подходящ микроконтролер за проекта това е съществената част от проекта ШИМ сигналите могат да бъдат генерирани в микроконтролери с ШИМ канали (CCP регистри). За този проект планирам да се придържам към pic16f877. можете да изтеглите връзката към листа с данни е дадена по -долу
PIC16F877a лист с данни щракнете тук
Модулът CCP е отговорен за производството на PWM сигнал. CCP1 и CCP2 са мултиплексирани с PORTC. PORTC е 8-битов широк двупосочен порт. Съответният регистър за посока на данни е TRISC. Задаването на бита TRISC (= 1) ще накара съответния PORTC щифт да бъде въведен. Изчистването на бит TRISC (= 0) ще направи съответния PORTC извод изход.
TRISC = 0; // Изчистването на този бит ще направи PORTC като изход
Стъпка 2: КОНФИГУРИРАНЕ НА CCP МОДУЛ
![КОНФИГУРИРАНЕ НА CCP МОДУЛ КОНФИГУРИРАНЕ НА CCP МОДУЛ](https://i.howwhatproduce.com/images/010/image-27971-6-j.webp)
![КОНФИГУРИРАНЕ НА CCP МОДУЛ КОНФИГУРИРАНЕ НА CCP МОДУЛ](https://i.howwhatproduce.com/images/010/image-27971-7-j.webp)
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 (TMR2 регистър) Конфигуриране на модул Timer2 (TMR2 регистър)](https://i.howwhatproduce.com/images/010/image-27971-8-j.webp)
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 на вашия код, който е даден по -долу
![Напишете скицата на MPLAB X IDE, кодът е даден по -долу Напишете скицата на MPLAB X IDE, кодът е даден по -долу](https://i.howwhatproduce.com/images/010/image-27971-9-j.webp)
#включва
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 радио антена с четвърт вълна от Асни Нор Ризуан: 10 стъпки Двулентова VHF/UHF радио антена с четвърт вълна от Асни Нор Ризуан: 10 стъпки](https://i.howwhatproduce.com/images/003/image-7369-j.webp)
Двулентова VHF/UHF радио антена с четвърт вълна от Асни Нор Ризуан: A Simple & Евтината двулентова антена ще ви спести наличието на две различни антени за UHF и VHF
Токоизправител с пълна вълна (за начинаещи): 6 стъпки
![Токоизправител с пълна вълна (за начинаещи): 6 стъпки Токоизправител с пълна вълна (за начинаещи): 6 стъпки](https://i.howwhatproduce.com/images/009/image-24185-j.webp)
Мостови токоизправител с пълна вълна (за начинаещи): Мостовият токоизправител с пълна вълна е електронна схема, която преобразува променлив ток в постоянен ток. Електричеството, което излиза от стенен контакт, е променлив ток, докато повечето съвременни електронни устройства се захранват от постоянен ток. Това означава, че е
Генерирайте Banggood партньорски (препращащи) връзки по -лесно от всякога: 4 стъпки
![Генерирайте Banggood партньорски (препращащи) връзки по -лесно от всякога: 4 стъпки Генерирайте Banggood партньорски (препращащи) връзки по -лесно от всякога: 4 стъпки](https://i.howwhatproduce.com/images/002/image-3041-12-j.webp)
Генериране на Banggood партньорски (препращащи) връзки по -лесно от всякога: Съкратената версия на тази инструкция може да бъде намерена в моя личен блог Продажбите на партньори са чудесен източник на допълнителни приходи за създателите на съдържание и много хора на инструктажи ги използват. Партньорската програма е Ban
Мини въртене от слънчева вълна: 27 стъпки
![Мини въртене от слънчева вълна: 27 стъпки Мини въртене от слънчева вълна: 27 стъпки](https://i.howwhatproduce.com/images/004/image-9578-22-j.webp)
Mini Spinner от Solar Waver: Не са необходими познания по електроника за изграждането на това устройство
Скулптура с кинетична вълна: 5 стъпки
![Скулптура с кинетична вълна: 5 стъпки Скулптура с кинетична вълна: 5 стъпки](https://i.howwhatproduce.com/images/002/image-3970-62-j.webp)
Скулптура с кинетична вълна: Този проект е кинетична скулптура, интегрирана с Bluetooth високоговорители. Механизмът на проекта зависи от движението на много жици, свързани помежду си, така че ако със проводниците се случи специално въртене, частиците ще започнат да се движат