السلام عليكم ورحمة الله وبركاته
فضلا اخي اقرأ الكود التالي بعنايه وسوف يحقق ما تريد ان شاء الله
كود:
'-----------------------chip config---------------------------------------------
$regfile = "m32def.dat"
$crystal = 8000000
'-----------------------ACI config----------------------------------------------
Config Aci = On , Compare = Off , Trigger = Rising
On Aci compare_mode
Enable Aci
Start Ac
Enable Interrupts
'-----------------------Alias config--------------------------------------------
Led0 Alias Portd.0
Led1 Alias Portd.1
'-----------------------port config---------------------------------------------
Config Portd = Output
Led0 = 0
Led1 = 0
'-----------------------Main Prog-----------------------------------------------
Again:
nop
Goto Again
End 'end program
'-----------------------Sub Routines--------------------------------------------
Compare_mode:
If Led0 = 0 Then
Led0 = 1
Led1 = 0
Waitms 100
Gosub Ain1_config
Goto Again
Elseif Led0 = 1 Then
Led0 = 0
Led1 = 1
Waitms 100
Gosub Ain0_config
Goto Again
End If
Return
'-------------------
Ain1_config:
Config Aci = On , Compare = Off , Trigger = Falling
Enable Aci
Start Ac
Enable Interrupts
Return
'-------------------
Ain0_config:
Config Aci = On , Compare = Off , Trigger = Rising
Enable Aci
Start Ac
Enable Interrupts
Return
ملحوظه: البرنامج مظبوط علي ان AI0<=AIN1 وبعد ذلك تبدأ في الارتفاع وعندما تصبح AIN0>AIN1 ينور الليد الاحمر ثم اذا بدأت في الانخفاض عن AIN1 يطفئ الليد الاحمر وينير الاخضر