با سلام
یه برنامه ولتمتر دانلود کردم که صفر تا 5 ولت هست
هدفم اینه که اگه ولتاژ از 3.2 کمتر بشه پایه 19 که پین 5 پورت b هست یک بشه
فعلن خاستم با دستور if مقدار adc رو بخونم که اگه از 128 کمتر شد خروجی بده که جواب نگرفتم متغیر رو از نوع بیت تعریف کردم که نشد
کسی میتونه اصلاح کنه دستوراتو برای ولتاژی که میخام
ممنون
یه برنامه ولتمتر دانلود کردم که صفر تا 5 ولت هست
هدفم اینه که اگه ولتاژ از 3.2 کمتر بشه پایه 19 که پین 5 پورت b هست یک بشه
فعلن خاستم با دستور if مقدار adc رو بخونم که اگه از 128 کمتر شد خروجی بده که جواب نگرفتم متغیر رو از نوع بیت تعریف کردم که نشد
کسی میتونه اصلاح کنه دستوراتو برای ولتاژی که میخام
ممنون
کد:
$regfile = "m8def.dat"
$crystal = 500000
Config Adc = Single , Prescaler = Auto , Reference = Off
Config Portb = Output
Config Portd = Output
Dim A As Word
Dim B As Long
Dim C As Word
Dim D As Word
Dim E As Word
Dim F As Byte
Dim G As Byte
Dim I As Byte
Dim J As Word
Declare Sub Yekan
Y Alias Portb.3
D0 Alias Portb.2
S Alias Portb.1
Dp Alias Portb.4
Enable Adc
Start Adc
'*******************************************************************************
Do
B = A * 4887
B = B / 10000
'*******************************************************************************
Call Yekan
Portb.4 = 1
Y = 1
Portd = F
Dp = 1
Waitms 4
Y = 0
D0 = 1
Portd = G
Waitms 4
D0 = 0
S = 1
Portd = I
Dp = 0
Waitms 4
S = 0
Loop
End
'end program
'*******************************************************************************
Hadi:
Data &B1000000 , &B1111001 , &B0100100 , &B0110000
Data &B0011001 , &B0010010 , &B0000010 , &B1111000
Data &B0000000 , &B0010000
'*******************************************************************************
Sub Yekan
C = B / 10
C = C * 10
C = B - C
F = C
F = Lookup(f , Hadi)
D = B / 100
D = D * 100
D = B - D
D = D / 10
G = D
G = Lookup(g , Hadi)
E = B / 100
I = E
I = Lookup(i , Hadi)
End Sub




دیدگاه