Агуулгын хүснэгт:

PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх: 6 алхам
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх: 6 алхам

Видео: PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх: 6 алхам

Видео: PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх: 6 алхам
Видео: debounce - bounce filtering - seribu satu jalan ke roma (Subtittled) 2024, Арваннэгдүгээр
Anonim
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх
PIC микроконтроллер ашиглан ХОУХ -ны долгион үүсгэх

PWM гэж юу вэ?

Импульсийн өргөнийг модуляцлах ХОУХ -ны зогсолт бол импульсийн өргөнийг янз бүрээр өөрчлөх арга юм.

Энэхүү ойлголтыг ойлгохын тулд цагны импульс эсвэл квадрат долгионы дохиог 50% -ийн ажлын мөчлөгтэй гэж үзэх нь зүйтэй бөгөөд энэ нь Тон ба Тоффын хугацаа ижил байна гэсэн үг юм. цаг хугацаа.

Дээр үзүүлсэн зургийн хувьд энэ долгион нь 50% -ийн ажлын мөчлөгтэй байдаг.

Үүргийн мөчлөг = (ON цаг / Нийт хугацаа)*100

ON time - дохио өндөр байсан цаг

OFF цаг - дохио бага байсан дайсан Нийт цаг - Импульсийн нийт хугацаа (ON ба OFF цаг аль аль нь)

Алхам 1: Микроконтроллерийг сонгох

Микроконтроллерыг сонгож байна
Микроконтроллерыг сонгож байна

Төсөлд тохирох микроконтроллерыг сонгох нь энэ төслийн чухал хэсэг юм ХОУХ -ны дохиог ХОУХ -ны сувгууд (ХКН -ийн бүртгэлүүд) бүхий микроконтроллеруудад үүсгэж болно. Энэ төслийн хувьд би pic16f877 -тэй ажиллахаар төлөвлөж байна. Та мэдээллийн хүснэгтийн линкийг доороос татаж авч болно

PIC16F877a мэдээллийн хуудсыг энд дарна уу

CCP модуль нь PWM дохио үйлдвэрлэх үүрэгтэй. PORTC нь 8 битийн өргөнтэй хоёр чиглэлтэй порт юм. Мэдээллийн чиглэлийн холбогдох бүртгэл нь TRISC юм. TRISC бит (= 1) тохируулснаар холбогдох PORTC зүүг оролт болгоно. TRISC битийг (= 0) цэвэрлэх нь харгалзах PORTC зүүг гаралт болгоно.

TRISC = 0; // Энэ битийг арилгаснаар PORTC нь гаралт болно

Алхам 2: CCP модулийг тохируулах

ХКН -ийн модулийг тохируулах
ХКН -ийн модулийг тохируулах
ХКН -ийн модулийг тохируулах
ХКН -ийн модулийг тохируулах

CCP - CAPTURE/COMPARE/PWM MODULES

Capture/Compare/PWM (CCP) модуль бүр нь дараах байдлаар ажиллах боломжтой 16 битийн бүртгэлийг агуулдаг.

• 16 битийн Capture бүртгэл

• 16 битийн харьцуулах бүртгэл

• ХБХ -ийн мастер/боолын үүргийн мөчлөгийн бүртгэл

CCP1CON бүртгэлийг PWM горимд тохируулна уу

Бүртгүүлэх тайлбар

CCPxCON Энэхүү бүртгэл нь CCP модулийг Capture/Compare/PWM үйлдлийн тохиргоонд ашигладаг.

CCPRxL Энэхүү бүртгэл нь ХОУ-ын 8-Msb битийг агуулдаг бөгөөд 2 битийн доод хэсэг нь CCPxCON бүртгэлийн нэг хэсэг байх болно.

TMR2 Чөлөөт гүйдлийн тоолуурыг ХОУХ -ны гаралтыг бий болгоход CCPR1L ба PR2 -тай харьцуулах болно.

Одоо би CCP1CON бүртгэлийг тохируулахын тулд битүүдийг төлөөлөх хоёртын файлыг ашиглах болно.

дээрх зургийг үзнэ үү.

CCP1CON = 0b00001111;

Та мөн зургаан өнцөгт форматыг ашиглаж болно

CCP1CON = 0x0F; // ХОУХ горимд CCP1CON бүртгэлийг тохируулах

Алхам 3: Timer2 модулийг тохируулах (TMR2 бүртгэл)

Timer2 модулийг тохируулах (TMR2 бүртгэл)
Timer2 модулийг тохируулах (TMR2 бүртгэл)

Timer2 бол урьдчилсан тооцоолуур болон кальцийн тоолууртай 8 битийн таймер юм. Үүнийг ХКН модуль (ууд) -ын ХОУХ -ны горимд ХОУХ -ны цагийн суурь болгон ашиглаж болно. TMR2 бүртгэлийг унших боломжтой, бичих боломжтой бөгөөд ямар ч төхөөрөмж дээр дахин тохируулах боломжтой.

T2CON бүртгэлийг харуулав

Урьдчилсан болон дараах хуваарь нь үүсгэсэн ХОУХ -ны долгионы гаралтын давтамжийг тохируулна.

Давтамж = цагийн давтамж/(4*prescaler*(PR2-TMR2)*Postscaler*тоо)

Хаана Tout = 1/давтамж

T2CON = 0b00000100;

Энэ нь 2.5 КГц @ 1МГц эсвэл 100КГц @ 4МГц талстыг бий болгоно (энэ ХОУХ -ны давтамжийн хувьд тодорхой мэдээлэл хүснэгтийг үзнэ үү.

Hex дүрслэл

T2CON = 0x04; // T2CON -ийг Prescaler болон хуваарийн дараах тохиргоогүйгээр идэвхжүүлэх

Алхам 4: PR2 -ийг тохируулах (Timer2 хугацааны бүртгэл)

Timer2 модуль нь 8 битийн хугацааны бүртгэлтэй, PR2. Таймер2 нь 00 цагаас PR2 -тэй тэнцэх хүртэл нэмэгддэг бөгөөд дараа нь дараагийн өсөлтийн мөчлөг дээр 00 цаг болж өөрчлөгддөг. PR2 бол унших, бичих боломжтой бүртгэл юм. Дахин тохируулсны дараа PR2 бүртгэлийг FFh болгон эхлүүлнэ.

PR2 -ийн тохирох мужийг тохируулах нь үүсгэсэн ХОУХ -ны долгионы ажлын мөчлөгийг өөрчлөх боломжийг ашиглах болно

PR2 = 100; // Ажлын мөчлөгийг 0-100 хооронд өөрчлөхийн тулд Циклийн хугацааг 100 болгож тохируулна уу

Энгийн байхын тулд би CCPR1L = 80 болгож PR2 = 100 ашиглаж байна; 80% -ийн ажлын мөчлөгт хүрэх боломжтой.

Алхам 5: CCPR1l модулийг тохируулна уу

PR2 = 100 CCPR1l-ийг хүссэн ажлын мөчлөгийг авахын тулд 0-100 хооронд хаана ч тохируулж болно.

Алхам 6: Ноорогоо MPLAB X IDE дээр бичээрэй

MPLAB X IDE дээр ноорог бичнэ үү
MPLAB X IDE дээр ноорог бичнэ үү

#оруулах

void delay (int a) // саатал үүсгэх функц {

for (int i = 0; i <a; i ++)

{

for (int j = 0; j <144; j ++);

}

}

хоосон үндсэн ()

{TRISC = 0; // Энэ битийг арилгаснаар PORTC нь гаралт болно.

CCP1CON = 0x0F; // ХОУХ горимд CCP1CON бүртгэлийг тохируулах

T2CON = 0x04; // T2CON -ийг Prescaler болон хуваарийн дараах тохиргоогүйгээр идэвхжүүлэх.

PR2 = 100; // Ажлын мөчлөгийг 0-100 хооронд өөрчлөхийн тулд Циклийн хугацааг 100 болгож тохируулна уу

байхад (1) {

CCPR1L = 75; // 75% татварын мөчлөгийн саатал үүсгэсэн (1);

}

}

Би мөн кодонд бага зэрэг өөрчлөлт оруулсан бөгөөд ингэснээр үүсгэсэн ХОУХ -ны долгионы давтамжийг хийсэн болно

Энэ кодыг proteus -д дуурайж, ХОУХ -ны долгионыг доор харуулав. Үүнийг өөрийн зураг боловсруулах самбар дээр байршуулахын тулд тохирох битийн хамт #include ашиглана уу.

Баярлалаа

Зөвлөмж болгож буй: