پاسخ : مشکل تکرار دستور در bascom
سعی کنید از همین اول بدون دستورات پرش برنامه بنویسین ، بعدا تو کدهای بزرگتر به مشکل پشته میخورید، چون کنترل برنامه از دست خارج میشه.
اینم کد : زمانی که ورودی یک شد ، تایمر روشن و برنامه اصلا وارد ch3 نخواهد شد ، تا تایمر خاموش شه ، و پرچم و بکشه پایین ، و اونوقت که همون پین صفر هست ، وارد ch3 میشه.
راستی دستورات ال سی دی رو حذف کنید.مهم نیست.
سعی کنید از همین اول بدون دستورات پرش برنامه بنویسین ، بعدا تو کدهای بزرگتر به مشکل پشته میخورید، چون کنترل برنامه از دست خارج میشه.
اینم کد : زمانی که ورودی یک شد ، تایمر روشن و برنامه اصلا وارد ch3 نخواهد شد ، تا تایمر خاموش شه ، و پرچم و بکشه پایین ، و اونوقت که همون پین صفر هست ، وارد ch3 میشه.
کد:
$regfile = "m64def.dat"
$crystal = 8000000
Config Portd = Input
Config Portb = Output
Config Debounce = 20
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , _
Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Waitms 20
'Cursor Blink
Cursor Off
Enable Interrupts
Config Timer2 = Timer , Prescale = 64
On Timer2 Timerr2
Stop Timer2
Disable Timer2
Reset Portd.0
Reset Portd.1
Dim Sarriz As Integer
Dim Seconds As Byte
Dim Minutes As Byte
Dim Flagtimer As Bit
Declare Sub Ch3
'========================================'
Cls
Waitms 5
Lcd "hossein"
Do 'here is main code
If Pind.0 = 1 Then
flagtimer = 1
Enable Timer2
Start Timer2
Portb = &B11111111
' ba feshordane vorodi , portB roshan mishe
Elseif Pind.0 = 0 And Flagtimer = 0 Then
Call Ch3
End If
If Minutes = 2 Then 'zamani ke shoma dar nazar darin bayad inja gozashte beshe baraye khamoshiye khooroji
Minutes = 0
Flagtimer = 0
Stop Timer2
Disable Timer2
Portb = &B0000000
End If
'{
'dar in baze baqiye barname khodetono benevisin
'}
Loop
'======================================='
Timerr2:
Incr Sarriz
If Sarriz = 489 Then
Incr Seconds
Locate 1 , 1
Lcd Seconds
If Seconds = 60 Then
Incr Minutes
Lowerline
Lcd Minutes
If Minutes = 244 Then Minutes = 0
Seconds = 0
End If
Sarriz = 0
End If
Return
'_____________________
Sub Ch3
Waitms 25
Toggle Portc.2
While Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 0
Wend
While Pind.2 = 1
Wend
Waitms 25
End Sub
'================'
راستی دستورات ال سی دی رو حذف کنید.مهم نیست.






دیدگاه