سلام دوستان
من یه ماشین حساب ساختم که الان یه مشکل داره اینکه اطلاعات میکرو رو نمی تونه بخونه به این صورت که lcd روشن میشه ولی چیزی نشون نمیده
اینم مدار تو پروتئوس:
http://eshahriary.persiangig.com/other/Calculator-advance.DSN
اینم برنامه اش:
اساتید یه نگاه بندازن ببینن برای اینکه کدار عملا جواب بده باید چیکار کنم چون تو پرتئوس جواب میده ؟؟؟؟
اینم بگم که من دقیقا همین طوری که تو پرتطوس هستش بستم
پایه های 10 و 11 و 30 و 31 و 32 میکرو رو وصل کردم (تغذیه)
پایه ای کیپد رو با مقاومتی که گفته وصل کردم
من یه ماشین حساب ساختم که الان یه مشکل داره اینکه اطلاعات میکرو رو نمی تونه بخونه به این صورت که lcd روشن میشه ولی چیزی نشون نمیده
اینم مدار تو پروتئوس:
http://eshahriary.persiangig.com/other/Calculator-advance.DSN
اینم برنامه اش:
کد:
'+++++++++++++++++++++++++ shoroe"e barname ++++++++++++++++++++++++++++++++++++
$regfile = "m16def.dat"
$crystal = 1000000
'+++++++++++++++++++++++++ tarif LCD +++++++++++++++++++++++++++++++++++++++++++
Config Lcdpin = Pin Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , E = Pinb.0 , Rs = Pinb.1
Config Lcd = 16 * 2
'+++++++++++++++++++++++++ moshakhasat +++++++++++++++++++++++++++++++++++++++++
Lcd " bename khoda "
Locate 2 , 1
Lcd "ehsan shahriary"
Wait 3
Cls
Locate 1 , 3
Lcd "emam khomini"
Locate 2 , 6
Lcd "qaen"
Wait 3
Cls
'+++++++++++++++++++++++++ tarif motaghaier ++++++++++++++++++++++++++++++++++++
Config Kbd = Portc , Debounce = 50 , Delay = 50
'VAR Calculator Advance
Config Portd.0 = Input
Sh Alias Pind.0
Dim Shft As Bit
Dim Op3 As Byte
'Calculator Advance
Dim Key As Byte , A As Byte , B As Byte , S As Bit , N As Bit
Dim Op As String * 1 , Op2 As String * 1
Dim K As Byte , Ans As Single , F1 As Single , F2 As Single , F3 As Single
Dim In1(8) As Byte , I1 As Byte
Dim In2(8) As Byte , I2 As Byte , Stn(9) As Long
Stn(1) = 1 : Stn(2) = 10 : Stn(3) = 100 : Stn(4) = 1000 : Stn(5) = 10000
Stn(6) = 100000 : Stn(7) = 1000000 : Stn(8) = 10000000
'+++++++++++++++++++++++ mani program ++++++++++++++++++++++++++++++++++++++++++
Cursor Noblink
Start_new:
Cursor Off
I1 = 0 : I2 = 0 : S = 0 : N = 0 : Shft = 0
Cls : Locate 2 , 1 : Lcd "0"
Do
Op = ""
Gosub Set_number1
If S = 1 Then Goto Start_new
If Shft = 1 Then Gosub Cal_fun
Cls
Gosub Set_number2
If S = 1 Then Goto Start_new
Gosub Functions
Cls
Locate 1 , 1 : Lcd "ANS="
Locate 2 , 1 : Lcd Ans
Do
K = Getkbd()
Loop Until K <> 16
Goto Start_new
Loop
End 'end program
'+++++++++++++++++++++++ Function SIN COS SQR ... ++++++++++++++++++++++++++++++
Cal_fun:
Cls
Lcd "1=SIN2=COS3=TAN"
Locate 2 , 1 : Lcd "4=LOG5=ATN6=SQR"
Shft = 0 : I1 = 0 : I2 = 0 : S = 0 : N = 0
Gosub Keypad : Op3 = Key
Cls
Gosub Set_number1
Select Case Op3
Case 1:
Ans = Sin(f1)
Cls : Lcd "SIN " ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
Case 2:
Ans = Cos(f1)
Cls : Lcd "COS " ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
Case 3:
Ans = Tan(f1)
Cls : Lcd "TAN " ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
Case 4:
Ans = Log(f1)
Cls : Lcd "LOG " ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
Case 5:
Ans = Atn(f1)
Cls : Lcd "ATN " ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
Case 6:
Ans = Sqr(f1)
Cls : Lcd "SQR" ; F1 ; " ="
Locate 2 , 1 : Lcd Ans
End Select
Do
K = Getkbd()
Loop Until K <> 16
Goto Start_new
Return
'+++++++++++++++++++++++ 4 Function ++++++++++++++++++++++++++++++++++++++++++++
Functions:
If Op2 = "+" Then Ans = F1 + F2
If Op2 = "-" Then Ans = F1 - F2
If Op2 = "*" Then Ans = F1 * F2
If Op2 = "/" Then Ans = F1 / F2
Return
'+++++++++++++++++++++++ Functions +++++++++++++++++++++++++++++++++++++++++++++
Keypad:
Do
K = Getkbd()
If Sh = 0 Then
Shft = 1 : Waitms 100
Return
End If
Select Case K
Case 7 : Key = 0
Case 2 : Key = 7
Case 6 : Key = 8
Case 10 : Key = 9
Case 1 : Key = 4
Case 5 : Key = 5
Case 9 : Key = 6
Case 0 : Key = 1
Case 4 : Key = 2
Case 8 : Key = 3
Case 3 :
Op = "c"
Case 11 :
Op = "="
Case 12 :
Op = "+"
Case 13 :
Op = "-"
Case 14 :
Op = "*"
Case 15 :
Op = "/"
End Select
Loop Until K <> 16
Do
K = Getkbd()
Loop Until K = 16
K = 0
Return
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set_number1:
I1 = 0 : F3 = 0 : F1 = 0
Locate 1 , 1
Do
Gosub Keypad
If Shft = 1 Then Return
If Ans = 0 And Op = "-" And N = 0 Then
N = 1 : Op = ""
Locate 1 , 1 : Lcd "-"
Goto End_action
End If
If I1 = 0 Then
If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Then
F1 = Ans
Goto No_c
End If
End If
If Op = "c" Then
S = 1
Cls
Goto No_c
End If
If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Or Op = "=" Then Goto Lable1
If I1 < 8 Then
Incr I1
In1(i1) = Key
Lcd In1(i1)
End If
End_action:
Loop
Lable1:
B = I1
For A = 1 To B Step 1
F3 = In1(a) * Stn(i1)
F1 = F1 + F3
Decr I1
Next
If N = 1 Then F1 = F1 * -1
N = 0
No_c:
Op2 = Op
If Op = "=" Then Op2 = ""
Return
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set_number2:
I2 = 0 : F3 = 0 : F2 = 0 : Op = ""
Locate 1 , 1
Lcd F1 ; Op2
Do
Gosub Keypad
If Op = "c" Then
S = 1
Cls
Goto No_c2
End If
If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Or Op = "=" Then Goto Lable2
If I2 < 8 Then
Incr I2
In2(i2) = Key
Lcd In2(i2)
End If
Loop
Lable2:
B = I2
For A = 1 To B Step 1
F3 = In2(a) * Stn(i2)
F2 = F2 + F3
Decr I2
Next
No_c2:
Return
اینم بگم که من دقیقا همین طوری که تو پرتطوس هستش بستم
پایه های 10 و 11 و 30 و 31 و 32 میکرو رو وصل کردم (تغذیه)
پایه ای کیپد رو با مقاومتی که گفته وصل کردم






دیدگاه