با سلام من در زمینه میکرو تازه کارم یک بر نامه برای کنترل زاویه آلفا نوشتم که با یک مدار آشکار ساز عبور از صفر پالسی به پایه t1 داده شود که از رابطه t=1/f به ازای هر 18کیلو هرتز یک درجه میشود یعنی اگر کانتر 18000 پالس بشمارد معادل یک درجه خواهد شد و دو کلید up ,down برای افزایش و کاهش اگر ممکنه لطف کنید و نظرتون را راجع به برنامه زیر بفرمایید
$regfile = "m32def.dat"
$crystal = 16000000
'-----------------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
Config Timer1 = Counter , Edge = Rising , Compare A = Set '
Config Pina.0 = Input
Config Pina.1 = Input
Config Portd.0 = Output
Config Portc.7 = Output
Config Int0 = Rising
Enable Interrupts
Enable Oc1a
Stop Timer1
On Oc1a T2
Compare1a = 18000
Dim B As Byte
Dim E As Eram Byte
Dim D As Byte
Dim F As Single
Up Alias Pina.0
Down Alias Pina.1
If E > 180 Then E = 180
B = E
D = 0
Do
If Up = 0 Then
If B > 0 Then Decr B
Waitms 10
E = B
End If
If Down = 0 Then
If B < 180 Then Incr B
Waitms 10
E = B
End If
Cls
Lcd B
Waitms 500
Loop
T2:
Set Portd.0
For D = 0 To B
Next D
Reset Portd.0
Return
اضافه شده در تاریخ :
مشکل اینه که موقع فشردن میکرو سوییچ برنامه هنگ میکنه اساتید لطفا راهنمایی کنید
اضافه شده در تاریخ :
این مساله برای من واقعا مهمه و فکر میکنم اساتید بسیاری در سایت هستند که این برنامه براشون خیلی ساده است ولی ای کاش کم لطفی نمی کردند
$regfile = "m32def.dat"
$crystal = 16000000
'-----------------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
Config Timer1 = Counter , Edge = Rising , Compare A = Set '
Config Pina.0 = Input
Config Pina.1 = Input
Config Portd.0 = Output
Config Portc.7 = Output
Config Int0 = Rising
Enable Interrupts
Enable Oc1a
Stop Timer1
On Oc1a T2
Compare1a = 18000
Dim B As Byte
Dim E As Eram Byte
Dim D As Byte
Dim F As Single
Up Alias Pina.0
Down Alias Pina.1
If E > 180 Then E = 180
B = E
D = 0
Do
If Up = 0 Then
If B > 0 Then Decr B
Waitms 10
E = B
End If
If Down = 0 Then
If B < 180 Then Incr B
Waitms 10
E = B
End If
Cls
Lcd B
Waitms 500
Loop
T2:
Set Portd.0
For D = 0 To B
Next D
Reset Portd.0
Return
اضافه شده در تاریخ :
مشکل اینه که موقع فشردن میکرو سوییچ برنامه هنگ میکنه اساتید لطفا راهنمایی کنید
اضافه شده در تاریخ :
این مساله برای من واقعا مهمه و فکر میکنم اساتید بسیاری در سایت هستند که این برنامه براشون خیلی ساده است ولی ای کاش کم لطفی نمی کردند