ايران ويج

نسخه‌ی کامل: مدار محافظ رگولاتور
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سیعد جان دمت گرم
برنامه اول خودمو با دستور alias دوباره نوشتم
یه مشکل واسم پیش اومده اینه که زمانی که برنامه داخل ِdo-loop اول میره اگه میکرو سویچ بالا و کلید استارت فشرده شده باشه میره به اجرا برنامه تازمانی که میکروسویچ پایین فعال بشه حالا اگر دکمه استاپ فشرده بشه روند کار به طور کامل متوقف میشه اما اگه دکمه استارت دوباره فشرده شود هیچ عکس العملی دیده نمیشه مگر اینکه میکروسویچ پایین فعال شده باشه منظورم اینه که میخوام تو برنامه یه کاری بکنم اگر کلیدئ استارت فشرده شد برنامه با مشکل بالا مواجه نشه

[align=left]
کد php:
$regfile "m16def.dat"
$crystal 8000000
'///////////////////////////////////////////////////////////////////////////////
Dim Jack_delay As Byte
Dim Role_delay As Byte
Dim Check As Byte
Dim A As Byte
Dim Flag As Byte
Dim Number As Byte
Dim Temp As Word
Dim Final As Word
Dim Temp_1 As Integer
Dim Set_point As Byte
Dim Modes As String * 4

Deflcdchar 0 , 1 , 12 , 18 , 16 , 16 , 18 , 12 , 32
'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Config Portc Input
Config Pina.0 
Input
Config Portd.5 
Output
Config Portd.6 
Output
Config Portd.7 
Output
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Starts Alias Pinc.0
Stops Alias Pinc.1
Menu Alias Pinc.2
Incrs Alias Pinc.3
Decrs Alias Pinc.4
Swup Alias Pinc.5
Swdown Alias Pinc.6
Heater Alias Portd.5
Role Alias Portd.6
Jack Alias Portd.7
Portc = &B11111111
Portd = &B00011111
'
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Config Timer0 Timer Prescale 8
Enable Interrupts
Enable Timer0
Timer0 
0
Stop Timer0
Start Timer0
On Timer0 Steps
Config Adc 
Single Prescaler Auto Reference Avcc

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Cursor Off : Cls : Start Adc

Main:
Readeeprom Jack_delay , 1
Readeeprom Role_delay , 2
Readeeprom Number , 3
Readeeprom Set_point , 4


Do
 Home
 Delay
 Lcd Modes
 Locate 1 , 6
 Lcd "No="
 Lcd Number
 Lcd " "
 Locate 2 , 1
 Lcd "T="
 Lcd Temp_1
 Lcd Chr(0)
 Lcd " "
 If Temp_1 > Set_point Then
 Lcd "HEATER OFF"
 Lcd " "
 Else
 Lcd "HEATER ON"
 Lcd " "
 End If

 [color=#FF69B4]If Starts = 0 And Swup = 0 Then

 Set Jack
 Bitwait Swdown , Reset
 Waitms Jack_delay
 Reset Jack
 Set Role
 Waitms Role_delay
 Reset Role
 Decr Number
 Writeeeprom Number , 3
 End If[/color]


Loop


Steps:
Incr Check
Select Case Check

Case 1[color=#FF69B4] :
Stop Timer0 : Timer0 = 0
Modes = ""
Modes = "RUN"
If Stops = 0 Then
 Reset Jack
 Reset Role
 Reset Swdown
End If
Start Timer0
[/color]

'
**********************************<<TERMOMETER UNIT>>**************************
Case 
2:
Stop Timer0 Timer0 Incr Flag
Temp 
Getadc(0)
Final = 
Temp + Final
If 
Flag 200 Then
Temp_1 
= Final / 200
Temp_1 
Temp_1 2
Flag 
: Final = 0
End 
If
 If 
Temp_1 Set_point Then
 Heater 
0
 
Else
 
Heater 1
 End 
If

Start Timer0

'*******************************<<SETTING>>*************************************
Case 3:
Stop Timer0 : Timer0 = 0 : Stop Adc
If Menu = 0 Then
Incr A
Waitms 5
 If A = 200 Then
 Cls : Cls : Locate 1 , 5 : Lcd "SETTING" : Waitms 400 : Cls

 Do
 Home : Lcd "JACK=" ; Jack_delay ; "s" : Lcd " "
 Waitms 250
 If Incrs = 0 Then : Jack_delay = Jack_delay + 50 : End If
 If Decrs = 0 Then : Jack_delay = Jack_delay - 50 : End If
 Writeeeprom Jack_delay , 1 : Waitms 35
 Loop Until Menu = 0
 Waitms 350
 Do
 Home : Locate 2 , 1 : Lcd "ROLE=" ; Role_delay ; "s" : Lcd " "
 Waitms 250
 If Incrs = 0 Then : Role_delay = Role_delay + 50 : End If
 If Decrs = 0 Then : Role_delay = Role_delay - 50 : End If
 Writeeeprom Role_delay , 2 : Waitms 35
 Loop Until Menu = 0
 Waitms 350
 Do
 Home : Locate 1 , 11 : Lcd "No=" ; Number : Lcd " "
 Waitms 250
 If Incrs = 0 Then : Number = Number + 1 : End If
 If Decrs = 0 Then : Number = Number - 1 : End If
 Writeeeprom Number , 3 : Waitms 35
 Loop Until Menu = 0
 Waitms 350
 Do
 Home : Locate 2 , 11 : Lcd "T=" ; Set_point : Lcd Chr(0) : Lcd " "
 Waitms 250
 If Incrs = 0 Then : Set_point = Set_point + 1 : End If
 If Decrs = 0 Then : Set_point = Set_point - 1 : End If
 Writeeeprom Set_point , 4 : Waitms 35
 Loop Until Menu = 0
 Cls
 Cls
 End If
Else
A = 0
End If
Check = 0
Start Adc : Start Timer0

End Select
[/ 
align]Return

سلام اگه مدارتون جریان کشی زیاد نداره اما ال سی دی تون قاطی می کنه بخاطر عدم وجود خازن تو ورودی رگولاتورتونه یه خازن 470 میکرو تو ورودی رگولاتور بذارید.
صفحه‌ها: 1 2