ترموستات دیجیتالی قابل برنامه ریزی (مهندسی برق)
چکیده:
تغییر سیستمهای مکانیکی و برقی به سیستمهای الکترونیکی روز
به روز در حال افرایش است. در بیشتر تکنولوژیهای عمده، سیستمهای
الکترونیکی جایگزین بخشهای مکانیکی شده و از آن پیش افتادهاند .امروزه
چاپ الکترونیکی شده است. تلویزیون، کامپیوتر و بسیاری از ابزارهای دیگر نیز
که در زندگی روزمره از آن استفاده میکنیم همین گونهاند. سیستمهای
الکترونیکی مسلماً بر تکنولوژی فکری متکی هستند زیرا محاسبات ریاضی و نوشتن
نرمافزار و برنامهها کارکرد آنها را ممکن میگرداند.
یکی از برجستهترین تغییرات، کوچک شدن وسایلی است که هادی برق هستند یا
تکانههای برقی را منتقل میکنند. اختراع ترانزیستور تغییری شگرف را به
دنبال داشت: توانایی تولید وسایل میکروالکترونیک با صدها کارکرد از جمله
کنترل، تنظیم، هدایت و حافظه که میکروپرسسورهاومیکروکنترلرها به اجرا
درمیآورند. در آغاز هر تراشه 4 کیلو بایت حافظه داشت که بعدها به 8، 16،
32، 64 کیلو بایت افزایش یافت و امروزه سازندگان میکروپروسسور تراشههایی
تولید میکنند که ظرفیت ذخیرهسازی آنها چندین مگابایت یا حتی گیگا بایت
است.
امروزه یک تراشهی ریز سیلیکنی(میکروپروسسوریا میکرو کنترلر) حاوی مدارهای
الکترونیکی دارای صدها هزار ترانزیستور و همهی اتصالات لازم و بهای آن فقط
چند دلار است. مداربندی روی این تراشه میتواند خود میکروکامپیوتری باشد
با ظرفیت پردازش ورودی / خروجی و حافظهی دستیابی تصادفی و… .
متن مقاله:
نحوه عملکرد ترموستات
ترموستات طراحی شده قابلیت برنامه ریزی در رنج های دمایی بین C°0 تا C°150
را دارد و می توان از آن برای تعدیل دمایی محیط استفاده نمود برای راه
اندازی آن به ولتاژی بین 6 تا 9 ولت نیاز است یک رنج دمایی خاصC° 32 C°(250
به عنوان پیش فرض در برنامه این ترموستات در نظر گرفته شده است که در
ابتدای راه اندازی و همچنین به هنگام بروز خطا، خود به خود این رنج عملیاتی
پیش فرض فعال میشود باتوجه8 به شکل صفحه بعد مشاهده می شود که یک صفحه
نمایش ،چهار کلید و سه LED در نظر گرفته شده است که کاربر می تواند با استفاده از این کلید ها رنج های دمایی مورد نظر را انتخاب نماید و LED ها برای نشان دادن وضعیت دما و همچنین خطاهای احتمالی در حین کار با ترموستات تعبیه شده است.
وقتی ترموستات فعال می شود رنج دمایی پیش فرض بر روی صفحه نمایش نشان داده می شود و کاربر می تواند با استفاده ار کلید START آن را فعال نموده و یا با استفاده از کلید DOWN, UP,CHANGE آن را تغییر دهد تغییرات مورد نظر برای رنج های دمایی را درحین کار ترموستات نیز با زدن کلید change می توان اعمال نمود بازدن کلید change رنج دمایی ابتدا به صورت خودکار بر روی MAX رفته و کاربر می تواند با استفاده ارکلید up آن را زیاد و توسط کلید down آن را کم نماید البته توجه داشته باشید که رنج دمایی کمتر از c °0 را نمی توان به آن اعمال نمود و پس از تنظیم max و زدن کلید start می توان رنج min را انتخاب نمود. حال با زدن کلید start
صفحه نمایش رنج دمایی مورد نظر شما را نمایش داده وشما می توانید آن را
فعال نمایید پس از فعال شدن رنج مورد نظر اگر دمای محیط بین رنج min و max باشد LED زرد به منزله متعادل بودن دما روشن می شود چنانچه دمای محیط بین minو max باشد . LED قرمز به منزله نا متعادل بودن دما روشن می شود و اگر دمای محیط از min کمتر شود LED
سبز به منزله نامتعادل بودن دما روشن می شود با اتصال این ترموستات به
وسایل جانبی مانند بخاری و کولر در محیط می توان دمارا در شرایط متعادل
نگهداری نمود.
نمایش خطاهای احتمالی به هنگام انتخاب رنج های خاص:
– چنانچه در رنج دمایی انتخاب شده minو max برابر باشند، هر سه LED به صورت چشمک زن فعال شده و ترموستات به صورت خودکار رنج پیش فرض را انتخاب می نماید.
– چنانچه min بیشتر از max انتخاب شود هر سه LED به صورت چشمک زن فعال شده و ترموستات به صورت خودکار، رنج پیش فرض را انتخاب می نماید.
از مشکلات این ترموستات وجود نداشتن اشمیت تر مگیر نرم افزاری در برنامه آن است.
مبدل آنالوگ به دیجیتال(ANALOG TO DIGITAL COVERTOR)
متداول ترین انواع ADC ها به قرار زیر است:
1- مبدل ADC نوع شمارشی (COUNTING ANALOG TO DIGITAL CONVERTOR)
2- مبدل ADC نوع تقریبهای متوالی (SUCCESSIVE – APROXIMATION CONVERTOR)
3- مبدل ADC با مقایسه موازی(PARALLEI-CIMPARATOR ADC)
4- مبدل ADC دو شیبه (DUAL- SLOP OR RATIOMETRIC ADC)
مبدل نوع SUCCESSIVE- APPROXIMATION
مبدل آنالوگ به دیجیتال داخلی میکروهای AVR که ADC دارند از این نوع است به همین دلیل قصد داریم در مورد این نوع ADC مختصری توضیح دهیم.
بجای شمارنده در این طرح از یک میکروکنترلر یا میکروپروسسور استفاده می شود.
با برنامه ای MSB یک شده و در یک DAC بزرگتر باشد MSB صفر شده و MSB بعدی 1 می شود و مقایسه می شود واگر کوچکتر باشد MSB 1 باقی مانده و MSB بعدی 1 می شود واین عمل به همین ترتیب ادامه پیدا می کند تا سیگنال آنالوگ خروجی DAC با سیگنال آنالوگ حاضر در پایه ADC برابر شود.
مبدل آنالوگ به دیجیتال داخلی میکرو
خصوصیات مبدل آنالوگ به دیجیتال داخلی AVR به شرح زیر است :
* وضوح 10بیتی
* صحت مطلق 2LSB
* زمان تبدیل 65-260(CONWERSION TIME)
* وضوح 15KSPS در بالاترین حد
* کانالهای مولتی پلکس شده
* مدهای تبدیل SINGLE .FREE
* ولتاژ ورودی از 0V تا VCC
* پرچم وقفه پایان تبدیل ADC
* حذف کننده نویز(NOISE CACELER)
ADC بسته به میکرو به چند کانال
آنالوگ مالتی یلکس شده که به هر یک از پایههای پورت اجازه می دهد که به
عنوان یک ورودی مبدل آنالوگ به دیجیتال عمل نماید. مبدل داخلی میکرو دارای
وضوح 10 بیتی است و برای تبدیل با این وضوح،نیاز به فرکانس کلاکی بین 50KHZ بین 200KHZ
دارد و این کلاک را از تقسیم فرکانس کریستال تامین می کند. در صورت که
نیاز به وضوح بالا ( کمتر از 10 بیت ) نیست می توان کلاکی بالاتر از 200KHZ به آن اعمال کرد. ADC دارای یک SAMPLE AND HOLD است که باعث می شود ولتاژ ونرودی ADC در زمان تبدیل در سطح ثابت نگه داشته شود تا عملیات تبدیل با دقت بیشتری انجام شود.
ADCدارای دومنبع ولتاژ آنالوگ مجزا است.AVCC و AGND که AGVD بایستی به زمین یا ولتاژ زمین آنالوگ متصل شود و AVCC نباید بیشتر از 0.3V نسبت به VCC اختلاف داشته باشد ولتاژ مرجع (VOLTAGE REFERENCE) خارجی در صورت وجود باید به پایه AREF وصل شود که این ولتاژ بایستی بین ولتاژ موجود بر روی پایه های AGND-AVCC باشد در غیر این صورت به VCC وصل می شود ADC مقدار آنالوگ ورودی را باتقریب متوالی به مقدار دیجیتال 10 بیتی تبدیل می کند. کمترین مقدار نشان دهنده مقدار آنالوگ موجود در پایه AGVD و بالاترین مقدار، نشان دهنده ولتاژ پایه AREF منهای یک LSB است.
به طور مثال اگر پایه به ولتاژ AREF=3.5V و AGND=0V وصل شده باشد مقدار دیجیتال شده 1023 نشان دهنده ولتاژ 3.5V و مقدار 0نشان دهنده ولتاژ 0.0V بر روی پایه مبدل 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 ” 25<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باشد . حالت 1
IF Expression Then statement 1
ELSe
statement2
End IF
در صورتی که عبارت expression 1دارای ارزش True باشد دستورالعمل
statement اجرا خواهد شد . در غیر اینصورت دستور العمل statement 2 اجرا میشود .
حالت 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 پایان یابد و می تواند تا 32 کاراکتر طول داشته باشد .
– دستور العمل 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می تواند 0 تا 7 ، 0 تا 15 برای Word و برای Long می تواند 0تا 31 باشد.
– دستور RESET:
توسط این دستور می توان یک بیت را صفر کرد .
set Bit/ Pin
Set Var.x
Bit می تواند یک بیت و یا یک SFR مانند Portb.1 باشد و Var متغیری از نوع داده Byte Word , Integer یا Long و X برای Byteمی تواند 0 تا 7 ، 0 تا 15 برای Word و برای Long می تواند 0تا 31 باشد.
– دستور العمل Do-Lood
فرم کلی دستور Do-Lood به صورت زیر می باشد .
Do
Statements
Lood[until expression]
دستورالعمل statements تا زمانی که expression دارای ارزش True یا عنصر صفر است تکرار خواهد شد بنابراین این نوع حلقه ، حداقل یکبار تکرار شود ، Do-Lood به تنهایی یک حلقه بی نهایت است که با exit do می توان از درون حلقه خارج شد و اجرای برنامه در خط از حلقه ادامه یابد .
– نرم افزار ترموستات
– دستور Locate
این دستور مکان نما را به مکان دلخواه در صفحه LCD می برد
Locate x,y
xثابت یا متغیری از (1-4) مشخص کننده سطر و y ثابت به متغیری از (1-64) که مشخص کننده ستون LCD است .
– دستور Stop , Start
توسط دستور ADC , START ADC شروع به نمونه برداری از سیگنال آنالوگ کرده و توسط Stop Adc تغذیه را از ADC قطع می کند و این دستور برای شروع و توقف ADC باید نوشته شود
– دستور WRITEEEPROM:
WEITEEEPROM VAR, APPRESS
– محتوای متغیر VAR در آدرس حافظه EEPROM داخلی نوشته می شود . بعد از دستور WRITEEEPROMبا توجه VCCباید 2.5-4ms تأخیر ایجاد کنید تا عملیات نوشتن تکمیل شود . آدرس می تواند یک عدد ثابت یا متغیر بسته به حافظه از نوع داده wordیا BYTE باشد .
– پایان برنامه END
این دستور در انتهای برنامه قرار می گیرد و اجرای برنامه را متوقف می کند ، با دستور END تمام وقفه ها غیر فعال شده و یک حلقه بی نهایت تولید و برنامه خاتمه می یابد.
چرا بعضي افراد بيش از حد به ديگران محبت ميكنند؟
بسیاری از ما در دورانی از زندگی خود در شرایطی قرارگرفتهایم که مجبور شدهایم بیش از حد به دیگران محبت یا کمک کنیم.
دستکم اگر خودمان در این شرایط نبوده باشیم حتما با کسانی برخورد
کردهایم که اینگونه رفتار کردهاند. مثلا در جمع دوستانمان کسانی هستند که
دائم به دیگران کمک میکنند، بدون اینکه درخواستی از طرف آنها شنیده
باشند. آیا تا به حال فکر کردهاید که چرا عدهای اینگونه رفتار میکنند؟
درصد زیادی از این افراد به دلیل جلب توجه دیگران و نداشتن اعتماد به نفس
کافی اینگونه رفتار میکنند. آنها گمان میکنند اگر تا جایی که میتوانند
به دیگران محبت کنند هیچوقت هیچکس از آنها ناراحت نمیشود و بدین ترتیب
میتوانند همیشه رابطه خوبی با آنها داشته باشند ولی متاسفانه اینگونه
افراد به قدری برای دیگران وقت میگذارند که تقریبا از زندگی خود باز
میمانند و دیر یا زود خسته و گاه افسرده میشوند.
چرا بعضي افراد بيش از حد به ديگران محبت ميكنند؟
معمولا
افرادی که میل به بذل محبت بیش از حد به دیگران دارند، در مقابل افرادی
قرار میگیرند که عشق خود را ازآنها دریغ میکنند زیرا محبت سالم وقتی درست
به کار نمیرود خیلی زود به محبت ناسالم تبدیل میشود و وقتی فردی بدون
درخواست، توجه زیادی میبیند ارزشی برای آن قائل نمیشود. افرادی که بیش از
حد محبت میکنند از موضوعی هراس دارند؛ هراس از تنها شدن، از اینکه کسی
آنها را دوست نداشته باشد، هراس از اینکه ارزشمند به نظر نرسند، خیلی زود
فراموش شوند و…؛ بنابراین آنقدر محبت میکنند تا تنها نشوند، حال آنکه
اینگونه نخواهد بود. در واقع موضوع عشق و دوست داشتن بیتناسب- که معمولا
در زنان بیشتر دیده میشود- نشانه افکار، احساسات و رفتارهای بیمارگونه
است؛ البته بسیاری از این افراد در خانوادههایی بزرگ شدهاند که مشکلات
زیادی داشته و رنج زیادی تحمل کردهاند اما در مواردی هم اینگونه نبوده و
مشکل بعدا به وجود آمده است. با بررسی این افراد به ماهیت محبت بیش از
اندازه بیشتر پی میبریم و درمییابیم که تجارب دوران کودکی آنها تا چهحد
میتواند بر رابطههایشان تاثیر بگذارد. بررسیها نشان میدهد که زنان
بیشتر از مردان دچار محبتکردنهای بیتناسب به دیگران، به ویژه به
همسرانشان میشوند و این شاید به این خاطر باشد که مردها به دلایل گوناگون و
از جمله عوامل فرهنگی بیشتر میتوانند از خود حمایت کرده و با پرداختن به
جنبههای بیرونی زندگی، دردهای درونی خود و تجارب مخرب دوران کودکی را
تعدیل کنند. آنها با غرقشدن زیاد در کار یا سرگرمیهای گوناگون بیشتر
میتوانند از رنجهای گذشته خود فاصله بگیرند اما زنان اغلب کمبودها و
تجربههای مخرب خود را در روابطشان نشان میدهند.
علل و عوامل
تمام
افرادی که میل به محبت بیش از حد دارند بدون توجه به اینکه چه مدتی با طرف
مقابل خود زندگی کردهاند خصوصیات مشابهی دارند. دوست داشتن بیش از اندازه
به معنای محبت عمیق نیست بلکه به این معناست که شخص پیوسته به همسر یا
کسی فکر میکند که دوستش دارد و شاید اسم آن را عشق میگذارد اما اینگونه
رفتار دیر یا زود فرد را خسته و بیمار میکند. در واقع این نوع عشقورزیدن
همراه با زجر و عذابی است که گاه تحمل آن بسیار سخت و طاقتفرساست، ضمن
اینکه در بسیاری موارد کسی هم که به او محبت بیش از اندازه میکنیم راضی و
قدردان نیست.
اندکی با خود فکر کنید شاید شما هم در زمره این افراد قرار دارید ولی
شجاعت بیان آن را ندارید. شاید دوران کودکی شما نیز با مشکلات فراوانی
مواجه بوده، شاید پدرتان با وجود محبتهای بسیار و فراهم آوردن تمامی معیشت
خانواده، از دوست داشتن صحیح شما ناتوان بوده و اکنون شما هم نمیتوانید
خودتان را دوست بدارید. اگر میخواهید مشکلتان برطرف شود باید آن را
شناسایی کنید. اگر اعتمادبه نفس کمی دارید و خود را لایق خوشبختی نمیدانید
و میخواهید هر طور شده همسرتان را کنترل کنید و بر روابط خود با اشخاص
مسلط باشید و بیش از حد به نیازهای دیگران توجه میکنید و میخواهید حتما
آنها را برطرف کنید باید راه حلی برای خود بیابید. هنگامی که شخصی محبت
بیتناسب دارد دوست دارد بیجهت رفتار طرف مقابل را تغییر دهد و کاری کند
که احساسی متفاوت نسبت به او داشته باشد؛ بدین ترتیب برای عملیکردن
خواستههای خود رفتاری سلطهجویانه خواهد داشت، به همین علت هم هست که
اینگونه افراد با وجود مهر و محبتی که به دیگران میکنند مورد تایید آنها
واقع نمیشوند زیرا اغلب توقعاتی بیش از حد انتظار دارند.
نیازهای بیپاسخ
بسیاری
از افراد نمیتوانند مشکلات آنهایی را که محبت بیش از اندازه میکنند درک
کنند ولی باید ریشه بسیاری از این رفتارها را در تجارب دوران کودکی آنها
جستو جو کرد. اغلب ما براساس آموزشهای دوران کودکی خود رفتار میکنیم.
بسیاری از زنان در کودکی یاد گرفتهاند نیاز افراد خانواده مقدم بر آنهاست و
شاید در بسیاری موارد مجبور شدهاند کارهای افراد خانواده را انجام دهند و
مسئولیتهای زیادی هم بر عهده آنها بوده و چه بسا مجبور شدهاند خیلی
اوقات خود را نادیده بگیرند، پس طبیعی است هنگام بزرگسالی نیز نتوانند به
خود اطمینان داشته باشند و از حق و حقوق خود آگاه باشند. وقتی نیازهای
افراد در کودکی بیپاسخ مانده باشد، در بزرگسالی به سختی میتوانند امیدوار
باشند که دیگران به نیازهایشان توجه کنند، پس سعی میکنند با برآوردهکردن
تقاضاهای دیگران خود را دوستداشتنی نشان دهند.
افرادی که به دلیل مشکلات گذشته خود، اکنون بیشازحد محبت میکنند برای
بهبود رنجهای گذشته باید بتوانند آنها را بشناسند و ارتباطشان را با
رنجهای اکنون خود دریابند. این افراد در کودکی، دائم تحت کنترل دیگران
بودهاند و اکنون دوست دارند دیگران را تحت کنترل خود درآورند. افرادی که
محبت بیاندازه دارند، اغلب تقصیرها و مشکلات همسرشان را نمیبینند و به
گونهای آنها را انکار میکنند ولی باید دانست انکار و کنترل دیگران نه
تنها چیزی از مشکلات ما کم نمیکند بلکه روابط ما را نیز با مشکل مواجه
میکند. اما بهترین راه این است که واقعیتها را به همان صورتی که هست
بپذیریم و هیچگاه در مقام تغییرشان برنیاییم. فراموش نکنید که شادی و
موفقیت با توجه داشتن به درون ما به وجود میآید.
چه باید کرد
افرادی
که دچار محبت کردنهای بیتناسب و بیش از حد هستند معمولا در بسیاری از
موارد شباهتهایی با یکدیگر دارند. اما کسانی که به نتیجه رسیده و
موفقشدهاند اقداماتی برای بهبود خود کنند که از پس این موارد برآمدهاند؛
نخست باید بدانید که مشکل دارید و حل آن را نخستین اولویت زندگی خود قرار
دهید. میتوانید در این خصوص از دیگران، به ویژه افرادی که مشکلی مشابه شما
داشتهاند و اکنون بهبود یافتهاند کمک بگیرید. هرگز درصدد کنترلکردن
دیگران برنیایید. با خودتان مهربانتر باشید، استعدادها و تواناییهایتان
را شناسایی کنید و بیشتر برای استراحت و آرامش خود وقت بگذارید. از خودتان
سؤال کنید تا چه زمان میخواهید دیگران را بیشتر از خود دوست بدارید و تا
چه زمانی میتوانید بیشتر توان خود را برای دیگران و تغییر دادن آنها صرف
کنید؟ آیا بهتر نیست انرژی خود را صرف بهبود حال خودتان بکنید؟ فراموش
نکنید اگر تمام توان خود را هم برای تغییردادن دیگران به کار ببرید
نتیجهای نمیگیرید اما اگر همین انرژی را صرف تغییر خود کنید حتما موفق
خواهید شد. بنابراین کاملا به خود متعهد باشید تا بتوانید پیروز شوید. برای
کمک بیشتر به خود میتوانید مطالعاتتان را در این زمینه بیشتر کنید. مثلا
اگر در خانوادهای بودهاید که محبت و توجه لازم را دریافت نکردهاید
میتوانید در این زمینه کتاب بخوانید یا از مشاور کمک بگیرید. هنگامی که
متوجه ریشه مسائل خود میشوید امکان انتخاب پیدا میکنید، بنابراین هر چه
درک و فهم شما از شرایط موجود بیشتر شود آزادی انتخابتان نیز بیشتر خواهد
شد.
فراموش نکنید اگر قدم در راه بهبود گذاشتهاید نباید دیگران را کنترل
کنید. البته نه اینکه به آنها کمک یا نصیحت و همدردی نکنید. شاید فکر
میکنید کسی که قصد کمککردن به او را دارید به اندازه شما آگاهی ندارد اما
اگر شما به جای او کارهایش را انجام بدهید و مسائلش را حل کنید او را از
قید مسئولیتهایی که در قبال خود دارد رها میکنید. بدین ترتیب او
نمیتواند به رشد کافی برسد و همیشه منتظر میماند تا دیگران کارهایش را
انجام دهند؛ پس میبینید که این کار نه به نفع اوست و نه خود شما.
باید بیاموزید هنگامی که کسی از شما کمکی نخواسته، پیشقدم نشوید.
بگذارید دیگران خودشان مشکلات را تجربه کنند و این شانس را به آنها بدهید
تا بزرگ شوند و رشد کنند. در این شرایط حرفی نزنید، کاری هم نکنید. شاید
این برای شما یکی از دشوارترین وظایفی است که برای بهبود خود باید انجام
دهید. هنگامی که فکر میکنید با تمام وجود میخواهید به دیگران بگویید چه
کار کنند و آنها را نصیحت یا راهنمایی کنید، یا هر طور شده شرایط را به سود
خود تغییر دهید، آرام بگیرید و هیچ کاری نکنید. به دیگران احترام بگذارید و
این حق را به آنها بدهید خودشان تصمیم نهایی را بگیرند. نگران این نباشید
که اگر کاری نکنید مشکلی پیش میآید. به جای سلطهجویی بر دیگران، کاری
کنید که از شر ترسهای بیهوده خود رها شوید.
هنگامی که از کنترل کردن دیگران دست برمیدارید، احساس رهایی بیشتری
میکنید. فکر نکنید فقط با تغییرکردن دیگران به احساس خوبی دست مییابید.
ممکن است دیگران هرگز تغییر نکنند، بنابراین بیجهت آنها را تحت فشار قرار
ندهید. شما باید بیاموزید در هر شرایطی احساس خوشبختی کنید و شادمانی خود
را در گرو شادمانی دیگران قرار ندهید.تا زمانی که نیروی خود را صرف تغییر
دیگران کنید نمیتوانید از نیرویتان برای کمک به خود و رسیدن به شادمانی
بیشتر استفاده کنید.باید راههای جدیدی برای برقراری ارتباط با خود و
دیگران بیابید؛ راههایی که نشان میدهند خودتان میخواهید مسئولیت
زندگیتان را بر عهده بگیرید.
خواستهها، سلامتی، کار، تفریح و سرگرمی و فعالیتهای مربوط به خودتان
را در اولویت قرار دهید و همیشه دیگران را مقدم بر خود ندانید. باید
بیاموزید خواستهها و نیازهای شما مهم هستند و این وظیفه شماست که این
خواستهها را برآورده کنید.هنگامی که بهبود پیدا کردید میآموزید برای کمک
به دیگران این فقط شما نیستید که راضی میشوید، دیگران هم احساس خوبی
خواهند داشت اما کمک شما قبل از این خالصانه نبود. شما باید محبت و علاقه
خود را خالصانه و بدون هیچ انتظاری نثار دیگران بکنید.