نمایش نتایج 1 تا 11 از 11

نام تاپیک: برنامه ماشین حساب با bascom

  1. #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
    عکس های ضمیمه عکس های ضمیمه  

  2. #2

    نقل قول: برنامه ماشین حساب با 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




  3. #3

    نقل قول: برنامه ماشین حساب با bascom

    چه موقعی 3.1999 نشون میده ؟ بعد از عملیات که توش تقسیم داره یا همیشه؟

  4. #4

    نقل قول: برنامه ماشین حساب با bascom

    همیشه این طوری نشون میده

  5. #5
    کاربر تازه وارد آواتار mhmmdshirazi
    تاریخ عضویت
    مهر 1387
    محل زندگی
    tehran
    سن
    30
    پست
    80

    نقل قول: برنامه ماشین حساب با bascom

    چرا بسکام خوب بیسیک کلا زبان خوبی نیست و من هرچی تلاش می کردم یاد نگرفتم با c خیلی راحت میشه نوشت!!!!

  6. #6

    نقل قول: برنامه ماشین حساب با bascom

    این اشکال به خاطر خود زبان basic هست که برای اعداد ممیز شناور همیشه یه مقدار خطا ایجاد میکنه .
    برای اطلاعات بیشتر ، تو لینک زیر ، از Floating-Point Complications به بعد رو بخونید :
    http://avrhelp.mcselec.com/index.htm...ndamentals.htm

  7. #7

    نقل قول: برنامه ماشین حساب با bascom

    پس راه حلی برای رفعش نیست؟

  8. #8
    کاربر تازه وارد آواتار mhmmdshirazi
    تاریخ عضویت
    مهر 1387
    محل زندگی
    tehran
    سن
    30
    پست
    80

    نقل قول: برنامه ماشین حساب با bascom

    نقل قول نوشته شده توسط nilofar9925 مشاهده تاپیک
    پس راه حلی برای رفعش نیست؟
    من که گفتم راه حلش رو با c بنویس!!!!

  9. #9

    نقل قول: برنامه ماشین حساب با bascom

    نمیشه با ز c بنویسم چون این پروژه ازمایشگاه ریزپردازندس که از اول ترم با بسکام کار کردیم و باید با بسکام بنویسیم

  10. #10

    نقل قول: برنامه ماشین حساب با bascom

    سلام توی این لینک 2 تا ماشین حساب هست یکی معمولی با بسکام یکی مهندسی با کدویژن http://forum.elec4u.ir/thread-t-24.html

  11. #11
    مشکل اعداد داشت درست کردم فقط تا 1 رقم اعشار میشه اگه خواشتید بیشتر نشون بده دستور lcd fusing (b,"#.###")
    بزنید پروتوس همون نقشه بالایی هست.موفق باشید
    $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 "adad ra vared konid"
    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 Fusing(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 "adad ra vared konid"

    Goto Q
    End
    Dta:
    Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •