1 ضمیمه
برنامه ماشین حساب با bascom
سلام بر دوستان عزیز میخاستم ببینم کسی برنامه ماشین حساب اعشاری رو نداره من خودم یه معمولیش رو دارم که اینجا میذارم
$[
نقل قول:
regfile = "m16def.dat"
$crystal = 1000000
Config Kbd = Portd , Debounce = 30
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.3 , E = Portb.2
Dim A As Byte
Dim B As Byte
Dim Key As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Cls
Cursor Off
Locate 2 , 1
Lcd "avrprojects.info"
E = 0
B = 0
Q:
Waitms 200
'B = 0
A = Getkbd()
If A > 15 Then
Goto Q
Else
Key = Lookup(a , Dta)
If Key <= 9 Then
D = 0
B = 10 * B
B = B + Key
If E = 0 Then C = B
If E = 1 Then D = B
Cls : Lcd B
Elseif Key = 10 Then
Cls
F = 1
E = 1
B = 0
Elseif Key = 11 Then
Cls
E = 1
F = 2
B = 0
Elseif Key = 12 Then
Cls
E = 1
F = 3
B = 0
Elseif Key = 15 Then
Cls
E = 1
F = 4
B = 0
Elseif Key = 13 Then
Cls
E = 0
B = 0
Elseif Key = 14 Then
If E = 1 Then
Cls
Select Case F
Case 1 :
B = C / D
Case 2:
B = C * D
Case 3:
B = C - D
Case 4:
B = C + D
End Select
Lcd B
End If
End If
End If
Locate 2 , 1
Lcd "avrprojects.info"
Goto Q
End
Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
نقل قول: برنامه ماشین حساب با bascom
سلام من این برنامه رو به اعشاری تغییر دادم ولی مشکلی که داره اینه که به جای 3.2
3.1999 نشون میده کسی نمیدونه چیکار کنم درست بشه
نقل قول:
$regfile = "m16def.dat"
$crystal = 1000000
Config Kbd = Portd , Debounce = 30
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.3 , E = Portb.2
Deflcdchar Print , 16 , 32 , 32 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0)
Dim A As Byte
Dim B As Single
Dim Key As Byte
Dim C As Single
Dim D As Single
Dim E As Byte
Dim F As Byte
Dim Flag As Byte
Dim H As Single
Dim H2 As Single
Cls
Cursor Off
Locate 2 , 1
Lcd "avrprojects.info"
E = 0
B = 0
Flag = 0
H = 1
H2 = 0
Q:
Waitms 200
'B = 0
A = Getkbd()
If A > 15 Then
Goto Q
Else
Key = Lookup(a , Dta)
If Key <= 9 And Flag = 0 Then
D = 0
B = 10 * B
B = B + Key
If E = 0 Then C = B
If E = 1 Then D = B
Cls : Lcd B
Elseif Key <= 9 And Flag = 1 Then
Cls
H = H * 0.1
H2 = H * Key
B = B + H2
Lcd B
If E = 0 Then C = B
If E = 1 Then D = B
Elseif Key = 10 Then
Cls
Flag = 0
F = 1
E = 1
B = 0
Elseif Key = 11 Then
Cls
Flag = 0
E = 1
F = 2
B = 0
Elseif Key = 12 Then
Cls
Flag = 0
E = 1
F = 3
B = 0
Elseif Key = 15 Then
Flag = 1
Elseif Key = 13 Then
Cls
Flag = 0
E = 0
B = 0
H = 1
Elseif Key = 14 Then
If E = 1 Then
Cls
Select Case F
Case 1 :
B = C / D
Case 2:
B = C * D
Case 3:
B = C - D
End Select
Lcd B
End If
End If
End If
Locate 2 , 1
Lcd "avrprojects.info"
Goto Q
End
Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
نقل قول: برنامه ماشین حساب با bascom
چه موقعی 3.1999 نشون میده ؟ بعد از عملیات که توش تقسیم داره یا همیشه؟
نقل قول: برنامه ماشین حساب با bascom
نقل قول: برنامه ماشین حساب با bascom
چرا بسکام خوب بیسیک کلا زبان خوبی نیست و من هرچی تلاش می کردم یاد نگرفتم با c خیلی راحت میشه نوشت!!!!
نقل قول: برنامه ماشین حساب با bascom
این اشکال به خاطر خود زبان basic هست که برای اعداد ممیز شناور همیشه یه مقدار خطا ایجاد میکنه .
برای اطلاعات بیشتر ، تو لینک زیر ، از Floating-Point Complications به بعد رو بخونید :
http://avrhelp.mcselec.com/index.htm...ndamentals.htm
نقل قول: برنامه ماشین حساب با bascom
پس راه حلی برای رفعش نیست؟
نقل قول: برنامه ماشین حساب با bascom
نقل قول:
نوشته شده توسط
nilofar9925
پس راه حلی برای رفعش نیست؟
من که گفتم راه حلش رو با c بنویس!!!!
نقل قول: برنامه ماشین حساب با bascom
نمیشه با ز c بنویسم چون این پروژه ازمایشگاه ریزپردازندس که از اول ترم با بسکام کار کردیم و باید با بسکام بنویسیم
نقل قول: برنامه ماشین حساب با bascom
سلام توی این لینک 2 تا ماشین حساب هست یکی معمولی با بسکام یکی مهندسی با کدویژن http://forum.elec4u.ir/thread-t-24.html