مقاله در مورد ترموستات دیجیتال

ترموستات دیجیتالی قابل برنامه ریزی (مهندسی برق)

چکیده:
تغییر سیستم‌های مکانیکی و برقی به سیستم‌های الکترونیکی روز
به روز در حال افرایش است. در بیشتر تکنولوژی‌های عمده، سیستم‌های
الکترونیکی جایگزین بخش‌های مکانیکی شده و از آن پیش افتاده‌اند .امروزه
چاپ الکترونیکی شده است. تلویزیون، کامپیوتر و بسیاری از ابزارهای دیگر نیز
که در زندگی روزمره از آن استفاده می‌کنیم همین گونه‌اند. سیستم‌های
الکترونیکی مسلماً بر تکنولوژی فکری متکی هستند زیرا محاسبات ریاضی و نوشتن
نرم‌افزار و برنامه‌ها کارکرد آنها را ممکن می‌گرداند.
یکی از برجسته‌ترین تغییرات، کوچک شدن وسایلی است که هادی برق هستند یا
تکانه‌های برقی را منتقل می‌کنند. اختراع ترانزیستور تغییری شگرف را به
دنبال داشت: توانایی تولید وسایل میکروالکترونیک با صدها کارکرد از جمله
کنترل، تنظیم، هدایت و حافظه که میکروپرسسورهاومیکروکنترلرها به اجرا
درمی‌آورند. در آغاز هر تراشه ۴ کیلو بایت حافظه داشت که بعدها به ۸، ۱۶،
۳۲، ۶۴ کیلو بایت افزایش یافت و امروزه سازندگان میکروپروسسور تراشه‌هایی
تولید می‌کنند که ظرفیت ذخیره‌سازی آنها چندین مگابایت یا حتی گیگا بایت
است.
امروزه یک تراشه‌ی ریز سیلیکنی(میکروپروسسوریا میکرو کنترلر) حاوی مدارهای
الکترونیکی دارای صدها هزار ترانزیستور و همه‌ی اتصالات لازم و بهای آن فقط
چند دلار است. مداربندی روی این تراشه می‌تواند خود میکروکامپیوتری باشد
با ظرفیت پردازش ورودی / خروجی و حافظه‌ی دستیابی تصادفی و… .

متن مقاله:

نحوه عملکرد ترموستات

ترموستات طراحی شده قابلیت برنامه ریزی در رنج های دمایی بین C°‌۰ تا C°۱۵۰
را دارد و می توان از آن برای تعدیل دمایی محیط استفاده نمود برای راه
اندازی آن به ولتاژی بین ۶ تا ۹ ولت نیاز است یک رنج دمایی خاصC° ۳۲ C°(۲۵۰
به عنوان پیش فرض در برنامه این ترموستات در نظر گرفته شده است که در
ابتدای راه اندازی و همچنین به هنگام بروز خطا، خود به خود این رنج عملیاتی
پیش فرض فعال می‌شود باتوجه۸ به شکل صفحه بعد مشاهده می شود که یک صفحه
نمایش ،چهار کلید و سه LED در نظر گرفته شده است که کاربر می تواند با استفاده از این کلید ها رنج های دمایی مورد نظر را انتخاب نماید و LED ها برای نشان دادن وضعیت دما و همچنین خطاهای احتمالی در حین کار با ترموستات تعبیه شده است.

وقتی ترموستات فعال می شود رنج دمایی پیش فرض بر روی صفحه نمایش نشان داده می شود و کاربر می تواند با استفاده ار کلید START آن را فعال نموده و یا با استفاده از کلید DOWN, UP,CHANGE آن را تغییر دهد تغییرات مورد نظر برای رنج های دمایی را درحین کار ترموستات نیز با زدن کلید change می توان اعمال نمود  بازدن کلید change رنج دمایی ابتدا به صورت خودکار بر روی MAX رفته و کاربر می تواند با استفاده ارکلید up آن را زیاد و توسط کلید down آن را کم نماید البته توجه داشته باشید که رنج دمایی کمتر از c °۰ را نمی توان به آن اعمال نمود و پس از تنظیم max و زدن کلید start می توان رنج min را انتخاب نمود. حال با زدن کلید start
صفحه نمایش رنج دمایی مورد نظر شما را نمایش داده وشما می توانید آن را
فعال نمایید پس از فعال شدن رنج مورد نظر اگر دمای محیط بین رنج min و max باشد LED زرد به منزله متعادل بودن دما روشن می شود چنانچه دمای محیط بین minو max باشد . LED  قرمز به منزله نا متعادل بودن دما روشن می شود و اگر دمای محیط از min کمتر شود LED
سبز به منزله نامتعادل بودن دما روشن می شود با اتصال این ترموستات به
وسایل جانبی مانند بخاری و کولر در محیط می توان دمارا در شرایط متعادل
نگهداری نمود.

نمایش خطاهای احتمالی به هنگام انتخاب رنج های خاص:

– چنانچه در رنج دمایی انتخاب شده minو max برابر باشند، هر سه LED به صورت چشمک زن فعال شده و ترموستات به صورت خودکار رنج پیش فرض را انتخاب می نماید.

– چنانچه ‌min بیشتر از max انتخاب شود هر سه LED به صورت چشمک زن فعال شده و ترموستات به صورت خودکار، رنج پیش فرض را انتخاب می نماید.

از مشکلات این ترموستات وجود نداشتن اشمیت تر مگیر نرم افزاری در برنامه آن است.

 

مبدل آنالوگ به دیجیتال(ANALOG TO DIGITAL COVERTOR)

متداول ترین انواع ADC ها به قرار زیر است:

۱-  مبدل ADC نوع شمارشی (COUNTING ANALOG TO DIGITAL CONVERTOR)  

۲- مبدل ADC نوع تقریبهای متوالی (SUCCESSIVE – APROXIMATION CONVERTOR)

۳- مبدل ADC با مقایسه موازی(PARALLEI-CIMPARATOR ADC)

۴- مبدل ADC دو شیبه (DUAL- SLOP OR RATIOMETRIC ADC)

 

مبدل نوع SUCCESSIVE- APPROXIMATION

مبدل آنالوگ به دیجیتال داخلی میکروهای AVR که ADC دارند از این نوع است به همین دلیل قصد داریم در مورد این نوع ADC مختصری توضیح دهیم.

بجای شمارنده در این طرح از یک میکروکنترلر یا میکروپروسسور استفاده می شود.

با برنامه ای MSB یک شده و در یک DAC بزرگتر باشد MSB صفر شده و MSB بعدی ۱ می شود و مقایسه می شود واگر کوچکتر باشد MSB 1 باقی مانده و MSB بعدی ۱ می شود واین عمل به همین ترتیب ادامه پیدا می کند تا سیگنال آنالوگ خروجی DAC با سیگنال آنالوگ حاضر در پایه ADC برابر شود.

 

مبدل آنالوگ به دیجیتال داخلی میکرو

خصوصیات مبدل آنالوگ به دیجیتال داخلی AVR به شرح زیر است :

* وضوح ۱۰بیتی

* صحت مطلق ۲LSB

* زمان تبدیل    ۶۵-۲۶۰(CONWERSION TIME)

* وضوح ۱۵KSPS در بالاترین حد

* کانالهای مولتی پلکس شده

* مدهای تبدیل SINGLE .FREE

* ولتاژ ورودی از ۰V تا VCC

* پرچم وقفه پایان تبدیل ADC

* حذف کننده نویز(NOISE CACELER)

ADC بسته به میکرو به چند کانال
آنالوگ مالتی یلکس شده که به هر یک از پایههای پورت اجازه می دهد که به
عنوان یک ورودی مبدل آنالوگ به دیجیتال عمل نماید. مبدل داخلی میکرو دارای
وضوح ۱۰ بیتی است و برای تبدیل با این وضوح،نیاز به فرکانس کلاکی بین ۵۰KHZ بین ۲۰۰KHZ
دارد و این کلاک را از تقسیم فرکانس کریستال تامین می کند. در صورت که
نیاز به وضوح بالا ( کمتر از ۱۰ بیت ) نیست می توان کلاکی بالاتر از ۲۰۰KHZ به آن اعمال کرد. ADC دارای یک SAMPLE AND HOLD است که باعث می شود ولتاژ ونرودی ADC در زمان تبدیل در سطح ثابت نگه داشته شود تا عملیات تبدیل با دقت بیشتری انجام شود.

ADCدارای دومنبع ولتاژ آنالوگ مجزا است.AVCC و AGND که  AGVD بایستی به زمین یا ولتاژ زمین آنالوگ متصل شود و AVCC نباید بیشتر از ۰٫۳V  نسبت به VCC اختلاف داشته باشد ولتاژ مرجع (VOLTAGE REFERENCE) خارجی در صورت وجود باید به پایه AREF وصل شود که این ولتاژ بایستی بین ولتاژ موجود بر روی پایه های AGND-AVCC باشد در غیر این صورت به VCC وصل می شود ADC مقدار آنالوگ ورودی را باتقریب متوالی به مقدار دیجیتال ۱۰ بیتی تبدیل می کند. کمترین مقدار نشان دهنده مقدار آنالوگ موجود در پایه AGVD و بالاترین مقدار، نشان دهنده ولتاژ پایه AREF منهای یک LSB است.

به طور مثال اگر پایه به ولتاژ AREF=3.5V و AGND=0V وصل شده باشد مقدار دیجیتال شده ۱۰۲۳ نشان دهنده ولتاژ ۳٫۵V و مقدار ۰نشان دهنده ولتاژ ۰٫۰V بر روی پایه مبدل ADC انتخاب شده است.ADC دارای دو مد تبدیل SINGLE و FREE است مد SINGLE بایستی توسط کاربر پیکره بندی وکانال دلخواه برای نمونه برداری انتخاب شود درمد FREE و ADC بایک ثابت نمونه برداری رجیستر داده ADCرا UPDATEمی کند.

 

نرم افزار ترموستات

–  برنامه اصلی

$regfile = “m16def.dat”

$crystal = 1000000

Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = Pinc.5 , Rs = Pinc.0 , E = Pinc.1

Config Lcd = 16 * 2

‘*******************’

Config Pinb.0 = 0                                           ‘input

Config Pinb.1 = 0                                           ‘input

Config Pinb.2 = 0                                           ‘input

Config Pinb.3 = 0                                           ‘input

Config Pinb.4 = 1                                           ‘output

Config Pinb.5 = 1                                           ‘output

Config Pinb.6 = 1                                           ‘output

‘*******************’

Ok Alias Pinb.3

Downn Alias Pinb.2

Upp Alias Pinb.1

Change Alias Pinb.0

‘*******************’

Cursor Off

Cls

‘Lcd ” YASER HASHEMI”

‘Lowerline

‘Lcd ”  TEMP PROJECT”

‘Wait 2

Config Adc = Single , Prescaler = Auto

Dim A As Word , Maxim As Byte , Minim As Byte , Ch As Byte , Testing As Byte

Dim I As Word , Bish As Byte , Kam As Byte , Kodam As Byte

Dim Maximtest As Byte , Minimtest As Byte , Jk As Byte

Bish = 0 : Kam = 0 : Kodam = 0

‘******************************************************************************’

Main:

Readeeprom Testing , 10

If Testing > 150 Then

      Goto Getfirst

    Else

      Readeeprom Maxim , 0

      Readeeprom Minim , 2

      Cls

      Lcd ”   ” ; Minim ; “<Temp<” ; “” ; Maxim

      Lowerline

      Lcd “Start     Change”

      Do

         If Ok = 0 Then

            Ddq:

            If Ok = 0 Then Goto Ddq

            Readeeprom Maxim , 0

            Readeeprom Minim , 2

            Cls

            Goto Temptest

         End If

         If Change = 0 Then

            Ddq3:

            If Change = 0 Then Goto Ddq3

            Goto Changetemp

         End If

      Loop

End If

End                                                         ‘end program

‘*****************************    Temptest    *********************************’

Temptest:

Start Adc

Do

   A = Getadc(1)

   Waitms 100

   A = A / 2

   Locate 1 , 1

   Lcd ”   Temp=” ; ” ” ; A ; “‘c”

   Select Case A

   Case Is < Minim

         Reset Portb.4 : Reset Portb.5 : Set Portb.6

         Cls

         Locate 1 , 1

         Lcd ”   Temp=” ; ” ” ; A ; “‘c”

         Lowerline

         Lcd ”      LOW”

   Case Minim To Maxim:

         Reset Portb.4 : Set Portb.5 : Reset Portb.6

         Cls

         Locate 1 , 1

         Lcd ”   Temp=” ; ” ” ; A ; “‘c”

         Lowerline

         Lcd ”     NORMAL”

   Case Is > Maxim

         Set Portb.4 : Reset Portb.5 : Reset Portb.6

         Cls

         Locate 1 , 1

         Lcd ”   Temp=” ; ” ” ; A ; “‘c”

         Lowerline

         Lcd ”      HIGH”

   End Select

   For I = 1 To 3000

       Waitms 1

       If Change = 0 Then

          Dd1:

          If Change = 0 Then Goto Dd1

          Reset Portb.4 : Reset Portb.5 : Reset Portb.6

          Goto Changetemp

       End If

   Next

   If Change = 0 Then

         Dd2:

         If Change = 0 Then Goto Dd2

         Goto Changetemp

   End If

Loop

‘*****************************   ChangeTemp   *********************************’

Changetemp:

Readeeprom Maxim , 0

Readeeprom Minim , 2

Cls

Lcd ”   ” ; Minim ; “<Temp<” ; “” ; Maxim

Waitms 1500

Cls

Gosub Templcd

‘******************  MAX  ********************’

If Kodam = 0 Then

      Fgh:

      If Upp = 0 Then

          Fd:

          If Upp = 0 Then Goto Fd

          Cls

          Incr Bish

          If Bish > 100 Then : Bish = 0 : End If

          Gosub Templcd

      End If

      If Downn = 0 Then

          Fd1:

          If Downn = 0 Then Goto Fd1

          Cls

          Decr Bish

          If Bish = 255 Then : Bish = 0 : End If

          Gosub Templcd

      End If

      If Ok = 0 Then

          Fd2:

          If Ok = 0 Then Goto Fd2

          Ch = Bish : Writeeeprom Ch , 0 : Waitms 5

          Ch = Kam : Writeeeprom Ch , 2 : Waitms 5

          Kodam = 1

          Goto Dfghj

      End If

      Goto Fgh

End If

‘******************  MIN  ********************’

Dfghj:

Cls

Gosub Templcd

If Kodam = 1 Then

      Fgh1:

      If Upp = 0 Then

          Fdd:

          If Upp = 0 Then Goto Fdd

          Cls : Incr Kam

          If Kam > 100 Then : Kam = 0 : End If

          Gosub Templcd

      End If

      If Downn = 0 Then

          Fdd1:

          If Downn = 0 Then Goto Fdd1

          Cls : Decr Kam

          If Kam = 255 Then : Kam = 0 : End If

          Gosub Templcd

      End If

      If Ok = 0 Then

          Fdd2:

          If Ok = 0 Then Goto Fdd2

          Ch = Bish : Writeeeprom Ch , 0 : Waitms 5

          Ch = Kam : Writeeeprom Ch , 2 : Waitms 5

          Readeeprom Maximtest , 0

          Readeeprom Minimtest , 2

          If Minimtest > Maximtest Then

               Ch = 32 : Writeeeprom Ch , 0 : Waitms 5

               Ch = 25 : Writeeeprom Ch , 2 : Waitms 5

               Cls

               Lcd ”  WrongRange”

               Lowerline

               Lcd ”  Min>Max ???”

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

                  Waitms 500

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

                  Waitms 500

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

               Cls

               Kodam = 0

               Goto Main

          End If

          If Minimtest = Maximtest Then

               Ch = 32 : Writeeeprom Ch , 0 : Waitms 5

               Ch = 25 : Writeeeprom Ch , 2 : Waitms 5

               Cls

               Lcd ”  WrongRange”

               Lowerline

               Lcd ”  Min=Max ???”

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

                  Waitms 500

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

                  Waitms 500

                  Set Portb.4 : Set Portb.5 : Set Portb.6

                  Waitms 500

                  Reset Portb.4 : Reset Portb.5 : Reset Portb.6

               Cls

               Kodam = 0

               Goto Main

          End If

          Kodam = 0

          Ch = 120 : Writeeeprom Ch , 10 : Waitms 5

          Goto Main

      End If

      Goto Fgh1

End If

‘*****************************     Templcd    *********************************’

Templcd:

    Lcd “Maxim=” ; “” ; Bish ; ” ‘c”

    Lowerline

    Lcd “Minim=” ; “” ; Kam ; ” ‘c”

    Waitms 100

    Return

‘*****************************    getfirst    *********************************’

Getfirst:

Cls

Ch = 32 : Writeeeprom Ch , 0 : Waitms 5

Ch = 25 : Writeeeprom Ch , 2 : Waitms 5

Lcd ”   ۲۵<Temp<32″

Lowerline

Lcd “Start     Change”

Do

   If Ok = 0 Then

      Dd:

      If Ok = 0 Then Goto Dd

      Readeeprom Maxim , 0

      Readeeprom Minim , 2

      Cls

      Ch = 120 : Writeeeprom Ch , 10 : Waitms 5

      Goto Temptest

   End If

   If Change = 0 Then

      Dd3:

      If Change = 0 Then Goto Dd3

      Goto Changetemp

   End If

Loop

‘*****************************************************************************’

 

دستورات به کار رفته دربرنامه ترموستات :

نرم افزار ترموستات

–        معرفی میکرو: $REGFILE=VAR

–        کریستال :$CRYSTAL=VAR

جهت مشخص کردن فرکانس کریستال استفاده شده بر حسب هرتز

–        پیکره بندی LCD:

CONFIGLCDPIN=PIN,DN4=PN,DB5=PN,DB6=PN,DB7=PN,RS=PN

PN: پایه‌ای دلخواه از میکرو که پایه LCD به آن اتصال می یابد .

–        تعیین نوع LCD: CONFIG LCD= LCD Type

تعیین ورودی و خروجی :

Config pinbo=0                       input

Config pinb4 =1                      Output

–        دستور برای تغییر نام متغیر :ALIAS

DIM:‌از این دستور برای تعریف متغیرهای موجود در برنامه استفاده می شود .

–        دستور تعیین مکان نمای LCD: CURSORDN/OFF

–         دستور CLS: (CLEAR SCREEN)

–        این دستور باعث می شود تمام صفحه نمایش LCD پاک شود .

 دستور LCD :

 این دستور یک یا چند عبارت ثابت یا متغییر را برروی LCD‌نمایش می‌دهد. LCDX

–        دستور LOWER LINE:

–        این دستور مکان نما را به خط پایین تر می برد .

–         دستور WAIT:

 برای ایجاد تأخیر در برنامه از این دستور استفاده می شود .

 

CONFIG ADC= SINGLE/FREE

 برای تبدیل سیگنال آنالوگ خود به دیجیتال می توان از دو مد SINGLE , FREE استفاده نمود . زمانی که حد SINGLE را انتخاب می کنید ، باید از دستور GET ADCC استفاده کنید .

 

–        دستور REEIP EEPROM:

 READE EPROM VAR , ADRESS

 ‌توسط این دستور محتوای EEPROM از آدرس دلخواه خوانده می شود و در متغیر VAR از نوع داده BYTE ذخیره می شود .

 آدرس می تواند یک عدد ثابت یا یک عدد متغیر بسته به حافظه از نوع داده WORD‌یا BYTE باشد .

–         دستور العمل IF

در کلیه حالتهای زیر عبارت Statement  می تواند یک دستورالعمل ساده یا چند دستور العمل مرکب باشد.

–         حالت O:

IF Expression Then Statement

دستورالعمل Statement‌زمانی اجرا میشود که عبارت Expression دارای ارزشی TRUE‌باشد . حالت ۱

 IF Expression Then statement 1

ELSe

statement2

End IF

‌در صورتی که عبارت expression 1‌دارای ارزش True باشد دستورالعمل
 statement  اجرا خواهد شد . در غیر اینصورت دستور العمل statement 2 اجرا می‌شود .

 حالت ۲:

IE Expression Thebn

 statement 1

Elseif [Expression 2 then]

statement 2

Else

statement 3

Endif

–        نرم افزار ترموستات

در صورتی که عبارت expression1 دارای ارزش TRUE باشد دستور العمل  statement 1 اجرا خواهد شد . در صورتی که عبارت expression1 دارای ارزش FAlSE ولی عبارت اختیاری expression2 دارای ارزش TRUE باشد دستورالعمل Statement 2 اجرا خواهد شد . و در غیر اینصورت یعنی در حالتی که هر دو عبارت expression1 , expression2 دارای ارزش FSLSE باشد دستورالعمل staternent3 اجرا خواهد شد .

 همچنین با دستور If می توان یک یا صفر بودن یک بیت از یک متغیر را امتحان کرد.

If bit= 1T HEN or ifbit = 0 THEN

–        دستور GOTO

‌با این دستور می توان به بر چسب  lable پرش کرد . برچسب lable‌ باید با علامت ((Collon پایان یابد و می تواند تا ۳۲ کاراکتر طول داشته باشد .

–        دستور العمل CASE:

 کنترل اجرای دستورات  یک برنامه دارای ترتیب بالا به پایین
است ولی در صورت نیاز می توان توسط دستور العمل انشعاب یا پرش جهت کنترل
اجرای دستورات یک برنامه را تغییر داد یکی از این دستورات SELECT- CASE است که می توان یکی از چندین دستور را با توجه به مقدار ورودی اجرا کرد .

Select Var

Case test1:statement 1

 [CASE test2: statement 2]

CASE ELSE: Statement 3

End select

اگر متغیر Var با مقدار test برابر باشد  Statement 1 اجرا می شود و سپس اجرا برنامه بعد از Endselect ادامه می یابد  در غیر اینصورت اگر متغیر Var با مقدار Test1  برابر نباشد ولی با مقدار test 2 برابر با سبک  statement2  اجرا می شود و سپس اجرا برنامه بعد از End select ادامه می یابد و نهایتاً اگر متغیر Var با هیچکدام از مقادیر test 2 , test 1 برابر نباشد statement 3 اجرا می شود و سپس اجرای برنامه بعد از End select‌ادامه می یابد .

–        پرش به زیر برنامه توسط دستور Gosub

 این دستور به زیر برنامه پرش می کند و اجرای برنامه را از آدرس برچسب ادامه می دهد .

Gosub lable

Label نام برچسبی زیر برنامه است که به آن پرش می شود . توسط دستور RENTURN می توان از SUB برگشت و اجرای برنامه بعد از دستور GOSUB‌ادامه می یابد .

–        دستور Exit :

 با این دستور می توانید فقط از یک ساختار یا حلقه خارج شوید و ادامه برنامه را بعد از ساختار یا حلقه ادامه دهید .

–        دستور العمل For – Next

 فرم کلی دستور For next به صورت زیر می باشد.

For Var= Start To end [stepvalue]

statements

Next Var

Var به عنوان یک کانتر عمل می کند Start مقدار اولیه و end مقدار پایانی است و هردو می توانند یک ثابت عددی یا متغیر عددی باشند . value‌مقدار عددی STEP‌(‌قدمها) را نشان می دهد که می تواند مثبت و یا منفی باشد .در صورت حذف کردن Step Value کامپایلر به صورت پیش فرض مقدار یک را در نظر می گیرد.

–        نرم افزارترموستات

INCR Var

–        دستور INCR

 این دستور یک واحد به متغیر عددی Var می افزاید

–        دستور DECR

DECR VAR

 این دستور  یک واحد از متغیر عددی Var کاهش می دهد .

–        دستور – SET

توسط این دستور میتوان یک بیت را یک کرد .

set Bit/ Pin

Set Var.x

Bit می تواند یک بیت و یا یک SFR مانند Portb.1 باشد و Var متغیری از نوع داده Byte Word , Integer یا Long است .X برای Byte‌می تواند  ۰  تا ۷ ،  ۰ تا ۱۵ برای Word و برای Long می تواند ۰‌تا ۳۱ باشد.

–        دستور RESET:

 توسط این دستور می توان یک بیت را صفر کرد .

set Bit/ Pin

Set Var.x

Bit می تواند یک بیت و یا یک SFR مانند Portb.1 باشد و Var متغیری از نوع داده Byte Word , Integer یا Long و X برای Byte‌می تواند  ۰  تا ۷ ،  ۰ تا ۱۵ برای Word و برای Long می تواند ۰‌تا ۳۱ باشد.

–         دستور العمل Do-Lood

 فرم کلی دستور Do-Lood به صورت زیر می باشد .

 Do

Statements

Lood[until expression]

‌دستورالعمل statements  تا زمانی که expression دارای ارزش True یا عنصر صفر است تکرار خواهد شد بنابراین این نوع حلقه ، حداقل یکبار تکرار شود ، Do-Lood به تنهایی  یک حلقه بی نهایت است که با exit do می توان از درون حلقه خارج شد و اجرای برنامه در خط از حلقه ادامه یابد .

 

–        نرم افزار ترموستات

–        دستور Locate

این دستور مکان نما را به مکان دلخواه در صفحه LCD می برد

Locate x,y

 x‌ثابت یا متغیری از (۱-۴) مشخص کننده سطر و y ثابت به متغیری از (۱-۶۴) که مشخص کننده ستون LCD است .

–         دستور Stop , Start

 توسط دستور ADC , START ADC شروع به نمونه برداری از سیگنال آنالوگ کرده و توسط Stop Adc تغذیه را از ADC قطع می کند و این دستور برای شروع و توقف ADC باید نوشته شود

–        دستور WRITEEEPROM:

WEITEEEPROM VAR, APPRESS

–    محتوای متغیر VAR در آدرس حافظه EEPROM‌ داخلی نوشته می شود . بعد از دستور WRITEEEPROM‌با توجه VCC‌باید ۲٫۵-۴ms تأخیر ایجاد کنید تا عملیات نوشتن تکمیل شود . آدرس می تواند  یک عدد ثابت یا متغیر بسته به حافظه از نوع داده word‌یا BYTE باشد .

–         پایان برنامه END

 این دستور در انتهای برنامه قرار می گیرد و اجرای برنامه را متوقف می کند ، با دستور END تمام وقفه ها غیر فعال شده و یک حلقه بی نهایت تولید و برنامه خاتمه می یابد.



چرا بعضي افراد بيش از حد به ديگران محبت مي‌كنند؟

بسیاری از ما در دورانی از زندگی خود در شرایطی قرارگرفته‌ایم که مجبور شده‌ایم بیش از حد به دیگران محبت یا کمک کنیم.

دست‌کم اگر خودمان در این شرایط نبوده باشیم حتما با کسانی برخورد
کرده‌ایم که اینگونه رفتار کرده‌اند. مثلا در جمع دوستانمان کسانی هستند که
دائم به دیگران کمک می‌کنند، بدون اینکه درخواستی از طرف آنها شنیده
باشند. آیا تا به حال فکر کرده‌اید که چرا عده‌ای اینگونه رفتار می‌کنند؟
درصد زیادی از این افراد به دلیل جلب توجه دیگران و نداشتن اعتماد به نفس
کافی اینگونه رفتار می‌کنند. آنها گمان می‌کنند اگر تا جایی که می‌توانند
به دیگران محبت کنند هیچ‌وقت هیچ‌کس از آنها ناراحت نمی‌شود و بدین ترتیب
می‌توانند همیشه رابطه خوبی با آنها داشته باشند ولی متاسفانه اینگونه
افراد به قدری برای دیگران وقت می‌گذارند که تقریبا از زندگی خود باز
می‌مانند و دیر یا زود خسته و گاه افسرده می‌شوند.

چرا بعضي افراد بيش از حد به ديگران محبت مي‌كنند؟
معمولا
افرادی که میل به بذل محبت بیش از حد به دیگران دارند، در مقابل افرادی
قرار می‌گیرند که عشق خود را ازآنها دریغ می‌کنند زیرا محبت سالم وقتی درست
به کار نمی‌رود خیلی زود به محبت ناسالم تبدیل می‌شود و وقتی فردی بدون
درخواست، توجه زیادی می‌بیند ارزشی برای آن قائل نمی‌شود. افرادی که بیش از
حد محبت می‌کنند از موضوعی هراس دارند؛ هراس از تنها شدن، از اینکه کسی
آنها را دوست نداشته باشد، هراس از اینکه ارزشمند به نظر نرسند، خیلی زود
فراموش شوند و…؛ بنابراین آنقدر محبت می‌کنند تا تنها نشوند، حال آنکه
اینگونه نخواهد بود. در واقع موضوع عشق و دوست داشتن بی‌تناسب- که معمولا
در زنان بیشتر دیده می‌شود- نشانه افکار، احساسات و رفتارهای بیمارگونه
است؛ البته بسیاری از این افراد در خانواده‌هایی بزرگ شده‌اند که مشکلات
زیادی داشته و رنج زیادی تحمل کرده‌اند اما در مواردی هم اینگونه نبوده و
مشکل بعدا به وجود آمده است. با بررسی این افراد به ماهیت محبت بیش از
اندازه بیشتر پی می‌بریم و درمی‌یابیم که تجارب دوران کودکی آنها تا چه‌حد
می‌تواند بر رابطه‌هایشان تاثیر بگذارد. بررسی‌ها نشان می‌دهد که زنان
بیشتر از مردان دچار محبت‌کردن‌های بی‌تناسب به دیگران، به ویژه به
همسرانشان می‌شوند و این شاید به این خاطر باشد که مردها به دلایل گوناگون و
از جمله عوامل فرهنگی بیشتر می‌توانند از خود حمایت کرده و با پرداختن به
جنبه‌های بیرونی زندگی، دردهای درونی خود و تجارب مخرب دوران کودکی را
تعدیل کنند. آنها با غرق‌شدن زیاد در کار یا سرگرمی‌های گوناگون بیشتر
می‌توانند از رنج‌های گذشته خود فاصله بگیرند اما زنان اغلب کمبودها و
تجربه‌های مخرب خود را در روابط‌شان نشان می‌دهند.

علل و عوامل
تمام
افرادی که میل به محبت بیش از حد دارند بدون توجه به اینکه چه مدتی با طرف
مقابل خود زندگی کرده‌اند خصوصیات مشابهی دارند. دوست داشتن بیش از اندازه
به ‌معنای محبت عمیق نیست بلکه به این معناست که شخص پیوسته به همسر یا
کسی فکر می‌کند که دوستش دارد و شاید اسم آن را عشق می‌گذارد اما اینگونه
رفتار دیر یا زود فرد را خسته و بیمار می‌کند. در واقع این نوع عشق‌ورزیدن
همراه با زجر و عذابی است که گاه تحمل آن بسیار سخت و طاقت‌فرساست، ضمن
اینکه در بسیاری موارد کسی هم که به او محبت بیش از اندازه می‌کنیم راضی و
قدردان نیست.

اندکی با خود فکر کنید شاید شما هم در زمره این افراد قرار دارید ولی
شجاعت بیان آن را ندارید. شاید دوران کودکی شما نیز با مشکلات فراوانی
مواجه بوده، شاید پدرتان با وجود محبت‌های بسیار و فراهم آوردن تمامی معیشت
خانواده، از دوست داشتن صحیح شما ناتوان بوده و اکنون شما هم نمی‌توانید
خودتان را دوست بدارید. اگر می‌خواهید مشکل‌تان برطرف شود باید آن را
شناسایی کنید. اگر اعتمادبه نفس کمی دارید و خود را لایق خوشبختی نمی‌دانید
و می‌خواهید هر طور شده همسرتان را کنترل کنید و بر روابط خود با اشخاص
مسلط باشید و بیش از حد به نیازهای دیگران توجه می‌کنید و می‌خواهید حتما
آنها را برطرف کنید باید راه حلی برای خود بیابید. هنگامی که شخصی محبت
بی‌تناسب دارد دوست دارد بی‌جهت رفتار طرف مقابل را تغییر ‌دهد و کاری کند
که احساسی متفاوت نسبت به او داشته باشد؛ بدین ترتیب برای عملی‌کردن
خواسته‌های خود رفتاری سلطه‌جویانه خواهد داشت، به همین علت هم هست که
اینگونه افراد با وجود مهر و محبتی که به دیگران می‌کنند مورد تایید آنها
واقع نمی‌شوند زیرا اغلب توقعاتی بیش از حد انتظار دارند.

نیازهای بی‌پاسخ
بسیاری
از افراد نمی‌توانند مشکلات آنهایی را که محبت بیش از اندازه می‌کنند درک
کنند ولی باید ریشه بسیاری از این رفتارها را در تجارب دوران کودکی آنها
جست‌و جو کرد. اغلب ما براساس آموزش‌های دوران کودکی خود رفتار می‌کنیم.
بسیاری از زنان در کودکی یاد گرفته‌اند نیاز افراد خانواده مقدم بر آنهاست و
شاید در بسیاری موارد مجبور شده‌اند کارهای افراد خانواده را انجام دهند و
مسئولیت‌های زیادی هم بر عهده آنها بوده و چه بسا مجبور شده‌اند خیلی
اوقات خود را نادیده بگیرند، پس طبیعی است هنگام بزرگسالی نیز نتوانند به
خود اطمینان داشته باشند و از حق و حقوق خود آگاه باشند. وقتی نیازهای
افراد در کودکی بی‌پاسخ مانده باشد، در بزرگسالی به سختی می‌توانند امیدوار
باشند که دیگران به نیازهایشان توجه کنند، پس سعی می‌کنند با برآورده‌کردن
تقاضاهای دیگران خود را دوست‌داشتنی نشان دهند.

افرادی که به دلیل مشکلات گذشته خود، اکنون بیش‌ازحد محبت می‌کنند برای
بهبود رنج‌های گذشته باید بتوانند آنها را بشناسند و ارتباط‌شان را با
رنج‌های اکنون خود دریابند. این افراد در کودکی، دائم تحت کنترل دیگران
بوده‌اند و اکنون دوست دارند دیگران را تحت کنترل خود درآورند. افرادی که
محبت بی‌اندازه دارند، اغلب تقصیرها و مشکلات همسرشان را نمی‌بینند و به
گونه‌ای آنها را انکار می‌کنند ولی باید دانست انکار و کنترل دیگران نه
تنها چیزی از مشکلات ما کم نمی‌کند بلکه روابط ما را نیز با مشکل مواجه
می‌کند. اما بهترین راه این است که واقعیت‌ها را به همان صورتی که هست
بپذیریم و هیچ‌گاه در مقام تغییرشان برنیاییم. فراموش نکنید که شادی و
موفقیت با توجه داشتن به درون ما به وجود می‌آید.

چه باید کرد
افرادی
که دچار محبت کردن‌های بی‌تناسب و بیش از حد هستند معمولا در بسیاری از
موارد شباهت‌هایی با یکدیگر دارند. اما کسانی که به نتیجه رسیده و
موفق‌شده‌اند اقداماتی برای بهبود خود کنند که از پس این موارد برآمده‌اند؛
نخست باید بدانید که مشکل دارید و حل آن را نخستین اولویت زندگی خود قرار
دهید. می‌توانید در این خصوص از دیگران، به ویژه افرادی که مشکلی مشابه شما
داشته‌اند و اکنون بهبود یافته‌اند کمک بگیرید. هرگز درصدد کنترل‌کردن
دیگران برنیایید. با خودتان مهربان‌تر باشید، استعدادها و توانایی‌هایتان
را شناسایی کنید و بیشتر برای استراحت و آرامش خود وقت بگذارید. از خودتان
سؤال کنید تا چه زمان می‌خواهید دیگران را بیشتر از خود دوست بدارید و تا
چه زمانی می‌توانید بیشتر توان خود را برای دیگران و تغییر دادن آنها صرف
کنید؟ آیا بهتر نیست انرژی خود را صرف بهبود حال خودتان بکنید؟ فراموش
نکنید اگر تمام توان خود را هم برای تغییردادن دیگران به کار ببرید
نتیجه‌ای نمی‌گیرید اما اگر همین انرژی را صرف تغییر خود کنید حتما موفق
خواهید شد. بنابراین کاملا به خود متعهد باشید تا بتوانید پیروز شوید. برای
کمک بیشتر به خود می‌توانید مطالعات‌تان را در این زمینه بیشتر کنید. مثلا
اگر در خانواده‌ای بوده‌اید که محبت و توجه لازم را دریافت نکرده‌اید
می‌توانید در این زمینه کتاب بخوانید یا از مشاور کمک بگیرید. هنگامی که
متوجه ریشه مسائل خود می‌شوید امکان انتخاب پیدا می‌کنید، بنابراین هر چه
درک و فهم شما از شرایط موجود بیشتر ‌شود آزادی انتخابتان نیز بیشتر خواهد
شد.

فراموش نکنید اگر قدم در راه بهبود گذاشته‌اید نباید دیگران را کنترل
کنید. البته نه اینکه به آنها کمک یا نصیحت و همدردی نکنید. شاید فکر
می‌کنید کسی که قصد کمک‌کردن به او را دارید به اندازه شما آگاهی ندارد اما
اگر شما به جای او کارهایش را انجام بدهید و مسائلش را حل کنید او را از
قید مسئولیت‌هایی که در قبال خود دارد رها می‌کنید. بدین ترتیب او
نمی‌تواند به رشد کافی برسد و همیشه منتظر می‌ماند تا دیگران کارهایش را
انجام دهند؛ پس می‌بینید که این کار نه به نفع اوست و نه خود شما.

باید بیاموزید هنگامی که کسی از شما کمکی نخواسته، پیش‌قدم نشوید.
بگذارید دیگران خودشان مشکلات را تجربه کنند و این شانس را به آنها بدهید
تا بزرگ شوند و رشد کنند. در این شرایط حرفی نزنید، کاری هم نکنید. شاید
این برای شما یکی از دشوارترین وظایفی است که برای بهبود خود باید انجام
دهید. هنگامی که فکر می‌کنید با تمام وجود می‌خواهید به دیگران بگویید چه
کار کنند و آنها را نصیحت یا راهنمایی کنید، یا هر طور شده شرایط را به سود
خود تغییر دهید، آرام بگیرید و هیچ کاری نکنید. به دیگران احترام بگذارید و
این حق را به آنها بدهید خودشان تصمیم نهایی را بگیرند. نگران این نباشید
که اگر کاری نکنید مشکلی پیش می‌آید. به جای سلطه‌جویی بر دیگران، کاری
کنید که از شر ترس‌های بیهوده خود رها شوید.

هنگامی که از کنترل کردن دیگران دست برمی‌دارید، احساس رهایی بیشتری
می‌کنید. فکر نکنید فقط با تغییرکردن دیگران به احساس خوبی دست می‌یابید.
ممکن است دیگران هرگز تغییر نکنند، بنابراین بی‌جهت آنها را تحت فشار قرار
ندهید. شما باید بیاموزید در هر شرایطی احساس خوشبختی کنید و شادمانی خود
را در گرو شادمانی دیگران قرار ندهید.تا زمانی که نیروی خود را صرف تغییر
دیگران کنید نمی‌توانید از نیرویتان برای کمک به خود و رسیدن به شادمانی
بیشتر استفاده کنید.باید راه‌های جدیدی برای برقراری ارتباط با خود و
دیگران بیابید؛ راه‌هایی که نشان می‌دهند خودتان می‌خواهید مسئولیت
زندگی‌تان را بر عهده بگیرید.

خواسته‌ها، سلامتی، کار، تفریح و سرگرمی و فعالیت‌های مربوط به خودتان
را در اولویت قرار دهید و همیشه دیگران را مقدم بر خود ندانید. باید
بیاموزید خواسته‌ها و نیازهای شما مهم هستند و این وظیفه شماست که این
خواسته‌ها را برآورده کنید.هنگامی که بهبود پیدا کردید می‌آموزید برای کمک
به دیگران این فقط شما نیستید که راضی می‌شوید، دیگران هم احساس خوبی
خواهند داشت اما کمک شما قبل از این خالصانه نبود. شما باید محبت و علاقه
خود را خالصانه و بدون هیچ انتظاری نثار دیگران بکنید.



    ویدیو : مقاله در مورد ترموستات دیجیتال
این مطلب را به اشتراک بگذارید :

a b