۱۰-آبان-۱۳۹۱, ۱۱:۱۹:۲۶
(۱۰-آبان-۱۳۹۱, ۱۰:۴۲:۱۳)kamran0080 نوشته است: [ -> ]راستی اقا هادی چرا این برنامه تو پروتیوس کار نمی کنه . میخواستم دستوراتو بهش اضافه کنممن با این امتحان کردم و جواب میده

متن ارور پروتوسش چیه(زبان اصلیش)
(۱۰-آبان-۱۳۹۱, ۱۰:۴۲:۱۳)kamran0080 نوشته است: [ -> ]راستی اقا هادی چرا این برنامه تو پروتیوس کار نمی کنه . میخواستم دستوراتو بهش اضافه کنممن با این امتحان کردم و جواب میده
(۱۰-آبان-۱۳۹۱, ۱۹:۳۳:۱۷)hadikh73 نوشته است: [ -> ]کامر جان یه چیزی به ذهنم رسیده
اگر می بینی سگمنت آخری چهره ی مدارتون رو زشت کرد
بیا محدودش کن یعنی فقط 0 و 5 رو نشون بده بقیه اعداد رو نمی خواد مثل ترازو های دیجیتال سوپر مارکت برای این کار
بعد از این دستور بنویس
B = B / 10000
B = B / 5
B = B * 5
البته هر چی نظر خودته
موفق باشید
(۱۰-آبان-۱۳۹۱, ۲۰:۲۹:۴۳)kamran0080 نوشته است: [ -> ]هادی جان راستش این مدارو برا سنسور هشدار دهنده گاز میخوام . چون خروجی سنسور های گاز mq بین 0 تا 4.75 ولت است پس اگه این مقدار رو با شکل خاصی رو سگمنت نشون بدیم و بعدش یک مرزی رو مرز خطر در نظر بگیریم اگه ولتاژ به اون حد رسید اژیری چیزی بکشه خیلی جالت میشه . این سنسور های گاز به ازای هوای تمیز بیرون 0.14 ولت بیرون میدن و در هوای کاملا الوده 4.75 یعنی تقریبا تمام تغذیه 5 ولتشو بیرون میده . خودم این فکر تو ذهنمه بیاییم این 4.75 رو همون 5 ولت درنظر بگیریم و 0 تا 5 ولت رو به 100 بخش تقسیم کنیم و به اضای هر بخش یک عدد رو رو سون سگمنت نشون بده . این پروژه رو هیچ جا ندیدم خیلی دنبالش گشتم . برا هشدار دهنده منازل جالب میشه .بله فکر خیلی جالبیه
اگه 5 ولت خروجی رو تقسیم بر 100 بخشی که در نظر گرفته بودیم تقسیم کنیم میشه 0.05
پس باید به اضای 0.05 ولت یک واحد اضافه بشه
$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
Enable Adc
Start Adc
'*******************************************************************************
Do
A = Getadc(0)
B = A / 10
If B > 100 Then B = 100
'*******************************************************************************
Call Yekan
Portb.4 = 1
Y = 1
Portd = F
Waitms 4
Y = 0
If B => 10 Then
D0 = 1
Portd = G
Waitms 4
D0 = 0
End If
If B = 100 Then
S = 1
Portd = I
Waitms 4
S = 0
End If
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
If B => 10 Then
G = Lookup(g , Hadi)
E = B / 100
I = E
End If
If B = 100 Then
I = Lookup(i , Hadi)
End If
End Sub
$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.2
D0 Alias Portb.1
S Alias Portb.0
Enable Adc
Start Adc
'*******************************************************************************
Do
A = Getadc(0)
B = A / 10
If B > 100 Then B = 100
'*******************************************************************************
Call Yekan
Portb.4 = 1
Y = 1
Portd = F
Waitms 4
Y = 0
If B => 10 Then
D0 = 1
Portd = G
Waitms 4
D0 = 0
End If
If B = 100 Then
S = 1
Portd = I
Waitms 4
S = 0
End If
Portb.3 = 1
Portd = &B0001100
Waitms 4
Portb.3 = 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
If B => 10 Then
G = Lookup(g , Hadi)
E = B / 100
I = E
End If
If B = 100 Then
I = Lookup(i , Hadi)
End If
End Sub