site logo
  • Կայքի մասին
  • Ծրագրավորում
  • Ժեշտ
  • Անվտանգություն
  • Հարց ու Պատասխան (ՀուՊ)
Հուլիս 22, 2014  |  By Aren Marukjan In

ՊՐՈՊՈՐՑԻՈՆԱԼ  ՂԵԿԱՎԱՐՄԱՄԲ ԹԵՐՄՈՍՏԱՏ  PIC12F675 ՄԻԿՐՈԿՈՆՏՐՈԼԼԵՐՈՎ և ՀԵՌԱԽՈՍԻ ԷԿՐԱՆՈՎ

termostat cxem

Սարքը իրենից ներկայացնում է հզորության կարգավորիչ, որը ղեկավարվում է միկրոկոնտրոլլերի միջոցով: Ի տարբերություն ռելեային ջերմակարգավորիչների , որոնք աշխատում են ջեռուցիչի պարբերաբար միացման-անջատման սկզբմունքով , այս սարքը  միավոր ժամանակում ջեռուցիչից վերցնում է  այնքան  ջերմաքանակ որը համեմատական է  կարգավորված և ռեալ  ջերմաստիճանների տարբերությանը: օրինակ երբ  ջերմաստիճանների  տարբերությունը  հավասար է 5-ի  ,սարքը ջեռուցիչը  միացնում է իր հզորության 50  տոկոսի չափով, 3-ի դեպքում՝ 30 տոկոսի չափով : Այս  հատկության շնորհիվ հնարավոր է դառնում ապահովել ջերմաստիճանի ավելի մեծ ճշտություն: termostat cxem

Տրված և ռեալ ջերմաստիճանների տարբերություն Ջեռուցիչի հզորություն  %
0 0%
1 10%
2 20%
3 30%
4 40%
5 50%
6 60%
7 70%
8 80%
9 90%
10 100%
10-ից մեծ 100%

ՍԱՐՔԻ ԱՇԽԱՏԱՆՔԻ ՍԿԶԲՄՒՆՔԸ Հոսանքը միացնելուց հետո միկրկոնտրոլլոերը 1 անգամ կատարելով իր ներքին մոդուլների ինիցիլիզացիան ,անցնում է անվերջ ցիկլի որտեղ 1. ընդունում և մշակում է ջերմատվիչի LM35-ի  ազդակը, և ստացված տվյալը ջերմաստիճանի տեսքով տպում է էկրանին: 2.Էկրանին տպում է տրված կարգավորված ջերմաստիճանը 3 SET կոճակի սեղման դեպքում ցիկլիկ կերպով փոփոխում է տրված կարգավորվելիք ջերմաստիճանը 4.Էկրանին տպում է ջերմաստիճանների տարբերությունը ,որը փաստացի հզորության չափն է տոկոսներով   Փոփոխական հոսանքի 0-ով անցման ժամանակ միկրոկոնտրոլլերը անցնում է ընդհատման ,որտեղ էլ վերը նշված տվյալների հիման վրա ձևավորում է սիմիստորի ղեկավարման ազդանշան: որպես էկրան օգտագործվել է Motorola  115  հեռախոսի էկրանը (Տես նկարը): foto termostat   ՋԵՐՄ բառի դիմաց տպվում է ռեալ ջերմաստիճանը,իսկ ԿԱՐԳ  նշանակւմ է Կարգավոված ջերմաստիճան:  Վերջին թիվը  նշված ջերմաստիճանների տարբերությունն է, փաստացի ջեռուցիչից վերցրած հզորության չափը: Ստորև բերված է  միկրոկոնտրոլլերի ծրագիրը ,գրված Basic  ծրագրավորման լեզվով,  հուսով եմ որ ծրագրի  առանձին մոդուլներ ձեզ պետք կգան սեփական նախագծերում:

************************************************************

program TERMOSTAT

include “out8”

include “tarer”

SYMBOL kn= gpio.3

symbol vix=gpio.0

dim cnt as word

dim cc,pz,t1,t2,set_temp,term,kk as byte

dim per,k as short

‘*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*–*-*-*-*-*-*–*-*-**

‘*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

‘*********************LCD-INIT*****************************

‘**********************************************************

sub procedure initlcd ‘C115

soft_i2c_config(gpio,4,5)

soft_i2c_start

soft_i2c_write(0x78)

soft_i2c_write(0x00)

soft_i2c_write(0x2e)

soft_i2c_write(0x21)

soft_i2c_write(0x12)

soft_i2c_write(0xc0)

soft_i2c_write(0x0b)

soft_i2c_write(0x20)

soft_i2c_write(0x11)

soft_i2c_write(0x0c)

soft_i2c_write(0x40)

soft_i2c_write(0x80)

soft_i2c_stop

end sub

‘***************************************

‘***************************************

‘************GOTO (X,Y)*****************

sub procedure xy(dim x,y as byte)

dim x1 as byte

dim y1 as byte

x1=x

y1=y

soft_i2c_start

soft_i2c_write(0x78)

soft_i2c_write(0x00)

soft_i2c_write(0x20)

soft_i2c_write(x1+0x80)

soft_i2c_write(y1+0x40)

soft_i2c_stop()

end sub

sub procedure dataa(dim dat as byte)

soft_i2c_start()

soft_i2c_write(0x78)

soft_i2c_write(0x40)

soft_i2c_write(dat)

soft_i2c_stop()

end sub

sub procedure lcdclr

for cnt=0 to 912

dataa(0)

next cnt

end sub

‘************************************************************************************************************

‘*********——PRint_TIV———-**X,Y KETUM TPUM E  TIVY*************************

sub procedure print_tiv(dim x as byte,dim y as byte,dim tiv as byte)

intcon.inte=0

intcon.inte=0

xy(x,y)

for cc=0 to 7

dataa(outx8[8*tiv+cc])

next cc

intcon.inte=1

intcon.inte=1

end sub

””””””””””””””””””””””””’

‘******************************************************

sub procedure bcdd(dim num as byte)

intcon.inte=0

intcon.inte=0

t2=num mod 10

t1=num div 10

intcon.inte=1

intcon.inte=1

end sub

‘******************INTRRUPT*************

sub procedure interrupt

if intcon.intf=1 then

intcon.inte=0

intcon.inte=0

 

if k>=0  then

k=k-1

vix=1

end if

if k<0 then

if pz>0 then

pz=pz-1

vix=0

end if

end if

if pz=0 then

k=per

if k>10 then k=10

end if

pz=10-k

end if

”———————————–

”———————————–

intcon.inte=1

intcon.inte=1

intcon.intf=0

end if

end sub

””””””””MAIN PROGRAM””””””””””””””””””””””””””””

‘***************CPU_INIT+DEFAULT set_temp,K,PZ*****************

main:

delay_ms(100)

osccal=30

set_temp=20

k=10

pz=10-k

trisio=%00000110

option_reg.intedg=1

cmcon=7

ansel=%01010010

initlcd

lcdclr()

‘==========================================================

‘==========================================================

for mm=1 to 100

xy(0,0)

for kk=0 to 100

dataa(%00000101)

next kk

xy(0,7)

for kk=0 to 100

dataa(%00010101)

next kk

‘*******************************************************************************************

‘*****************PRINT TEMPERATURE*****************************************

xy(3,1)

for  kk=0 to 3

for cc=0 to 7

dataa(tarerx8[8*kk+cc])

next cc

dataa(0)

dataa(0)

next kk

 

‘*******************************************************************************************

‘*****************PRINT SET_TEMPERATURE**********************************

xy(3,3)

for  kk=4 to 7

for cc=0 to 7

dataa(tarerx8[8*kk+cc])

next cc

dataa(0)

dataa(0)

next kk

 

 

 

‘***************MAIN CYCLE***************

‘*************************************************

while true

‘*************TEMPERATURE READ/KORREKT***

term=adc_read(1)/2

if term>30 then

term=30

end if

if term<5 then

term=5

end if

‘***************************************

‘********KOCHAKI SEXMMAN STWUGWUM (set_temp)************

if kn=0 then

set_temp=set_temp+1

if set_temp>30 then’ maximum 75%

set_temp=5

end if

if set_temp<5 then

set_temp=5

end if

end if

 

‘***************************************

‘***********HZORUTJAN CHAPI STACUM(PER)*

per=set_temp-term

if per<0 then per=0

end if

if per>10 then

per=10

end if

‘************************************************************

‘*****LCD-TO TEMPERATURE REAL***********

bcdd(term)

print_tiv(50,1,t1)

print_tiv(60,1,t2)

‘***************************************

‘*****LCD-TO TEMPERATURE SET*************

bcdd(set_temp)

print_tiv(50,3,t1)

print_tiv(60,3,t2)

‘***************************************

‘*****LCD-TO PERIOD(POWER-%)************

bcdd(per)

print_tiv(50,5,t1)

print_tiv(60,5,t2)

‘***************************************

‘***************************************

‘————————————————————————

intcon.inte=1

intcon.gie=1

delay_ms(200)

next mm

 

wend

end

 

ՊՐՈՊՈՐՑԻՈՆԱԼ  ՂԵԿԱՎԱՐՄԱՄԲ ԹԵՐՄՈՍՏԱՏ  PIC12F675 ՄԻԿՐՈԿՈՆՏՐՈԼԼԵՐՈՎ և ՀԵՌԱԽՈՍԻ ԷԿՐԱՆՈՎ, 10.0 out of 10 based on 1 rating
Ժեշտ
Previous StoryArduino Programming – Մաս 2
Next StoryONEPLUS ONE. դրոշակակիր խելախոսների չոռն ու գրողը

Comments: no replies

Join in: leave your comment Cancel Reply

(will not be shared)

Որոնում

Նշագրեր

*Nix-եր (18) android (17) C++ (19) C և C++ (27) Excel (10) html (10) Network Administration (16) System Administration (28) Windows 7 (14) Ալգորիթմներ (15) Անվտանգություն (29) ԳՆՈՒ/Լինուքս (16) Թեյնիկներին (57) Ժեշտ (44) Լակոնիկ (21) Լինուքս/Յունիքս հրամաններ (29) Լուսանկարչություն և մշակում (15) Խելախոսներ (19) Ծրագրավորման լեզուներ (16) Ծրագրավորում (64) Ծրագրեր (48) Հայականացում (28) Հումոր (11) Ուսումնական նյութեր (34) Սոցցանցային Հմտություններ (19) Վեբ (25) Վերլուծություն (10) Վորդպրես (21) ՏՏ և փիլիսոփայություն (21) Տվյալների բազաներ (12) Օպերացիոն համակարգեր (27) Օֆիսային ծրագրեր (22) անդրոիդ (16) բաշ (10) ինտերնետ (11) խելախոսներ (13) համացանց (15) հայատառ (10) հայերեն (11) հայերեն ստեղնաշար (11) հայկական սոֆթ (11) ստեղնաշար (10) սքրիփթ (14) վինդոուս (12) տեսանյութ (23)
Copyright ©2017 ThemeFuse. All Rights Reserved