100 likes | 238 Views
PIC16F84 MK- də analoq siqnallarının hasil edilməsi. RB=0 hal ında : J 0 = J 1 = J 2 = J 3 = J mak ; J1 0 = J1 1 = J1 2 = J1 3 =0. RB=1 halında : J 0 = J 1 = J 2 = J 3 =0; J1 0 = J1 1 = J1 2 = J1 3 = J1 mak. +5V. J in =∑(RB(i)xJ1 0 ) V aalçıx =kxR ə x J in. J 3. R. R ə. J1 3. R0/8.
E N D
RB=0 halında: J0= J1= J2= J3= Jmak; J10= J11= J12= J13=0. RB=1 halında : J0= J1= J2= J3=0; J10= J11= J12= J13= J1mak. +5V Jin=∑(RB(i)xJ10) V aalçıx=kxRəx Jin J3 R Rə J13 R0/8 RB3 OA R0/4 J0 V analçıx RB2 - RB1 + R0/2 Jin RB0 R0 J10 PIC16F84 Xətti dəyişən siqnalların yaradilması • PIC16F84 MK-nin daxilində RAÇ (DAC-Digital-Analog Convertor) modulu olmadığından qurğunun çıxışında üçün analoq siqnalını hasil etmək əlavə sxemqoşulmaqla pilləvari müqavimətlərdən və OA(Operational Amplifier)-dən ibarət dövrə qurulmalidir
+5V ossilloqraf Vanalçıx R PIC16F84 RA4/ T0CK1 RB7 8 bitl DAC Tçevrilmə .... .... C RB0 PİC-nin çıxışına DAC çipi qoşmaqla analoq çıxış siqnallarının hasil edilməsi • DAC-nin girişinə 00H-FFH intervalında ardıcıl artma istiqamətində dəyişən kodun verilməsi üçün MK-nın daxilindəki TMR0 taymerindən istifadə etmək olar. • FOSCLK=4MHs halında TMR0 tam TO müddəti maksimal qiyməti 65.5 ms olduğundan Vanalout siqnalının dəyişməsi,adətən çıxışa qoşulan ossilloqraf vasitəsilə müşayət edilir. • TMR0-nın T TMR)CLK sayma periodu DAC mikrosxemində hər bir Vanalout qiymətinin hasil edilmə (çevrilmə) müddəti T çevrilmə ilə uzlaşdırılmalıdır.
PİC-nin giriş tezliyinin DAC-nin gecikməsinə əsasən təyini • TMR0-nın sayma siqnalları mənbəyi kimi daxili əmrlər dövrü seçildiyi, TMR0prim=00H və PIC16F84 üçün ən kiçik FOSCLK=4MHs halında TTMR0CLK=Tinstr xPSV ifadəsinə və PSV=256 halında TMR0CLKmak=1mks x256=256mks olacaqdır. • T DACçevr >256mks halında isə TMR0 taymerinin say mənbəyi kimi RA4/TOCK1 girişınə bağlanmış aşağı tezlikli RC dövrəsi seçilməlidir. • Verilmiş T DACçevr =4msvə PSV=256halında xarici siqnalların periodu T xarici = 1/16mks≈60KHs ;T= 4ms/256=16mks və F xarici=1/ T xarici =1/16mks ≈60KHs olur. • F xarici=60KHs halında TMR0delaymak=(256-0)xPSV/Fextern= 256x256/60x103 ≈1s; Tanaloutmak= TMR0delaymak=1s;Fanaloutmin=1Hs; • Yəni çevrilmə müddəti 4ms olan DAC və TMR0 vasitəsilə maksimal olaraq 1s müddətində xətti dəyişən analoq siqnallarını almaq olar
PortB OUT,RA4/TOCK1 –IN; CLR PortB TMR0 qurulması: T0CS=1,T0SE=1,PSV=256,PSA=0 in OPOTION TMR0=00H saymağa başlayır Vanalçıx Xətti impulslar 2.55V TMR0(0-7)–dan RB(0-7) Ötürmə Xətti siqnalların hasil edilməsi TO olmasını yoxla TMR0(0-7)=FFH Tanalçıx T analçıx =1s;F analçıx =1Hs yes no RB(0-7)=0 END PİC16F84-nin çıxışında xətti artan siqnalların hasil edilməsi • DAC mikrosxemində çevrilmə müddətinin qimətinin nəzərə alındığı proqramda TMR0-nın quqrulmasının və onun məzmununun DAC-ə verilməsinin blok-sxemi verilmişdir. • Burada qırıq xətlərlə göstərilən əlavə keçidlərin hesabına minimal tezliyi 1Hs olan mişarvari siqnallar hasil etmək olar.
Vanalout 2.55V Tanalçıx PİC16F84-nin çıxışında xətti artan və azalan(mişarvari) siqnalların hasil edilməsi • TMR0 vasitəsilə xətti artan və azalan kodlardan istifadə etmək olar • 00H vəziyyətindən başlayaraq artma istiqamətində sayan TMR0 –nın cari qiymətləri PORTB-ə çıxarılır və oradan da osiiloqrafa ötürülür • TO vəziyyətindən sonra taymer yenidən saymağa başlayanda PORTB-ə 255-TMR0 qiyməti çıxarılır • TMR0 ikinci dəfə TO vəziyyətinə gəldikdə 1 ədəd mişarvari siqnal çıxışda hasil edilmiş olacaqdır • PİC-nin çıxışında çoxsaylı impulsların alınması üçün bu proses təkrar edilməlidir • TMR) taymeri elə quqrlmalıdır ki, Tanalçıx =2xTMR0 dolma olsun.
PortB–ni OUT et; xarici TOCK siqnallarını vermək üçün RA4 –IN et ;CLR PortB;10 ədəd mişarvari impuls üçün lokal dəyişən n=10 et TMR0qurmaq; OPTION reg.-də PSV=256;PSA=0;T0SE=1;T0CS=1 et no TEST:i=n END yes i=i+1 RB(0-7) =TMR0(0-7) TEST:TMR0=FFH no yes TMR0-da saymanı yenidən başla :TMR0(0-7)=00H RB(0-7) =256-TMR0(0-7) no yes TEST:TMR0=FFH PİC16F84-nin çıxışında xətti artan və azalan(mişarvari) siqnalların hasil edilməsi alqoritmi
Vanalout 5V 1.28V 80H Bu qiymətlər alt proqrama daxil edilir 2.55V FFH 0V 00H PIC16F84-nin çıxışında SİN-dalsiqnalların hasil edilməsi • SİN-nın tam 1 dövründəki qiymətlərialt proqramda qeyd etməli • Hər dəfə alt proqram çağrılanda SİN-nın növbəti qiyməti RETLW (Return with literal in accumulater) əmri ilə main proqrama qaytarılır • Main proqramda W-nin cari qiyməti PORTB-ə çıxarılır
PortB –ni OUT et ;SİN-nın dövr ərzindəki qiymətləri və dalğaların sayı üçün n və m lokal dəyişənləri daxil et of Yeni dövrün başlanğıcı i=0 Callaltprogram; Altproqramda RELW – ilə SİN-nın növbəti qiyməti main proqrama ötürülür W –danPORTB-ə ötür DAC-nin çevrilməsi qədər gecikmə i=i+1 no Test : dalğaların sayı J-=m j=j+1 TEST: dövrdəki qiymətlərin sayı i=n yes yes no END SİN-dalsiqnalların hasil edilməsi alqoritmi
Vçıx Tdavr Tfas Tdav=50% x Tdövr; Tfas=50% x Tdövr;Vçıxorta=50% xVmax V outmax=5V halında Vçıxorta=5x50%=2.5V 5V Vçıx Tdav=75% x Tdövr; Tfas=25% x Tdövr;Vçıxcorta=75% xVmax; V outmax=5V halında Vçıxorta=5x75%=3.75V Tdav Tfas 5V Tdövr TMR0 ilə PWM (Puls-Wide Modulation )siqnalların yaradılması • PWM siqnalların zaman parametrlərini (davamiyyət və fasilə) dəyişməklə düzbucaqlı impulsların orta səviyyəsini tənzimləmək olar • Vçıxorta =Vmax x Tdav/ Tdövr • T dav–impulsun davamiyyət müddəti, Tdövr –impulsun dövrü