با سلام
با کمک اول خدا بعد شما دوستان عزیز این پروژه من تموم شد وحالا جهت قدر دانی از شما ورفع مشکلات اون رو در سایت قرار میدم و از شما دوستان میخام که مشکلات اون رو به من بگید
توضیحاتی در مورد مدار
اول این که من mt8870گیرم نیومد و از il8870 استفاده کردم
اپتوکوپلر که من استفاده کردم 817هست و چهار پایه داره ولی در شبیح سازی اپتوکوپلره 6پایه داره شما از پایه ششم صرف نظر کنین
خوروجی برای رله پایه های portb.2 تاpinb.7 و pinc.0 تا pinc.5هست ومن اونا رو فقط با ledامتحان کردم
خروجی صدای at8 رو که portb.1 هست رو به 741 دادمش تا دامنه اون رو به 12vبرسونم و با خازن 104 به خط وصل کردم
اینتراپس مدار هم pind.2 هست که به mt8870وصله
اون چهار بیت که از mt8870خارج میشه رو به pind.0 , pind.1 , pind.4 ,pind.5 وصل کردم
برای این که به طور اتوماتیک گوشی رو برداره خط تلفن رو به یک اپتو کوپلر دادم و خوریجیش رو با یک ترانزیسور به pinb.6 دادم
توضیح مختصری برای برنامه
اول چک میکنه که اگر pind.6 یک شد یک واحد به cاضاف میکنه و هروقت c=2خط رو وصل میکنه بعد از ستا بوق رمز زو میخاد وبعد )2314( با زدن هر کلید روی صفحه کلید تلفن میپره روی برنامه اون رله و با زدن کلید # رله رو خاموش میکنه وبا زدن کلید 0 بدون هیچ تاثیری بر روی این رله برمیگرده وبا زدن کلید * رله رو روشن میکنه قابل ذکر هست که
کلید 1 =رله 1
کلید 2=رله2
کلید 3=رله 3
کلید 4=رله 4
کلید 5=رله5
کلید 6=رله6
کلید 7=رله 7
کلید 8=رله8
کلید 9=رله9
کلید 0=رله 10
کلید *=رله 11
کلید #=رله12
و در پایان میگویم اگه کسی مدا رو بست و مشکلی داشت ما در خدمتیم
کوچییییییییییییییییییییییییییییک شما محسن
$regfile = "m8def.dat"
$crystal = 2000000
Config Int0 = Rising
Enable Interrupts
Enable Int0
On Int0 Int00
Cursor Off
Dim A As Byte
Dim B As Single
Dim C As Byte
Dim D As Byte
Dim E As Long
Dim F As Byte
Dim G As Long
Dim H As Long
Rel Alias Portb.0
Rel1 Alias Portb.2
Rel2 Alias Portb.3
Rel3 Alias Portb.4
Rel4 Alias Portb.5
Rel5 Alias Portb.6
Rel6 Alias Portb.7
Rel7 Alias Portc.0
Rel8 Alias Portc.1
Rel9 Alias Portc.2
Rel10 Alias Portc.3
Rel11 Alias Portc.4
Rel12 Alias Portc.5
Config Portb = Output
Config Portd = Input
Config Portc = Output
A = 0
B = 0
C = 0
D = 0
E = 0
F = 0
Sound Pinb.1 , 400 , 100
Main:
C = 0
Do
If Pind.6 = 0 Then
jmp respons
End If
Loop
'--------------------------------------------------------------------
Respons:
Incr C
If C = 2 Then
Set Rel
jmp main2
End If
Waitms 2000
For E = 1 To 50000
If Pind.6 = 0 Then
jmp respons
End If
Next
C = 0
jmp main
'-------------------------------------------------------------------
'============================================ =======================
'-------------------------------------------------------------------
Main2:
D = 0
Waitms 400
Sound Pinb.1 , 400 , 100
Waitms 100
Sound Pinb.1 , 400 , 100
For E = 1 To 100000
Checkpass:
If D = 1 Then
jmp c1
End If
If D = 3 Then
jmp c2
End If
If D = 5 Then
jmp c3
End If
If D = 7 Then
jmp c4
End If
If D >= 8 Then
Reset Rel
D = 0
End If
Next
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
'---------------------------------------------------
C1:
If A = 2 Then
D = 2
Waitms 200
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C2:
If A = 3 Then
Waitms 200
D = 4
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C3:
If A = 1 Then
D = 6
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C4:
If A = 4 Then
jmp start0
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
'------------------------------------------------------
'============================================ ==========
'------------------------------------------------------
Start0:
A = 0
Waitms 100
Sound Pinb.1 , 100 , 100
Waitms 100
Sound Pinb.1 , 100 , 100
Waitms 100
Sound Pinb.1 , 100 , 100
E = 0
For G = 1 To 200000
'............................................ ................
'11111111111111111111111111111111111111111111 1111111111111111
If A = 1 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch1
End If
If A = 11 Then
Set Rel1
jmp okch1
End If
If A = 12 Then
Reset Rel1
jmp okch1
End If
Next
Okch1:
Waitms 200
Sound Pinb.1 , 100 , 500
A = 0
End If
'22222222222222222222222222222222222222222222 2222222222222222
If A = 2 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch2
End If
If A = 11 Then
Set Rel2
jmp okch2
End If
If A = 12 Then
Reset Rel2
jmp okch2
End If
Next
Okch2:
Waitms 100
Sound Pinb.1 , 100 , 500
A = 0
End If
'33333333333333333333333333333333333333333333 3333333333333
If A = 3 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch3
End If
If A = 11 Then
Set Rel3
jmp okch3
End If
If A = 12 Then
Reset Rel3
jmp okch3
End If
Next
Okch3:
Sound Pinb.1 , 100 , 500
A = 0
End If
'44444444444444444444444444444444444444444444 444
If A = 4 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch4
End If
If A = 11 Then
Set Rel4
jmp okch4
End If
If A = 12 Then
Reset Rel4
jmp okch4
End If
Next
Okch4:
Sound Pinb.1 , 100 , 500
A = 0
End If
'55555555555555555555555555555555555555555555 5555555
If A = 5 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch5
End If
If A = 11 Then
Set Rel5
jmp okch5
End If
If A = 12 Then
Reset Rel5
jmp okch5
End If
Next
Okch5:
Sound Pinb.1 , 100 , 500
A = 0
End If
'66666666666666666666666666666666666666666666 6666666
If A = 6 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch6
End If
If A = 11 Then
Set Rel6
jmp okch6
End If
If A = 12 Then
Reset Rel6
jmp okch6
End If
Next
Okch6:
Sound Pinb.1 , 100 , 500
A = 0
End If
'77777777777777777777777777777777777777777777 777777777
If A = 7 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch7
End If
If A = 11 Then
Set Rel7
jmp okch7
End If
If A = 12 Then
Reset Rel7
jmp okch7
End If
Next
Okch7:
Sound Pinb.1 , 100 , 500
A = 0
End If
'88888888888888888888888888888888888888888888 88888888
If A = 8 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch8
End If
If A = 11 Then
Set Rel8
jmp okch8
End If
If A = 12 Then
Reset Rel8
jmp okch8
End If
Next
Okch8:
Sound Pinb.1 , 100 , 500
A = 0
End If
'99999999999999999999999999999999999999999999 99999999
If A = 9 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch9
End If
If A = 11 Then
Set Rel9
jmp okch9
End If
If A = 12 Then
Reset Rel9
jmp okch9
End If
Next
Okch9:
Sound Pinb.1 , 100 , 500
A = 0
End If
'10101010101010101010101010101010101010101010 101010
If A = 10 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch10
End If
If A = 11 Then
Set Rel10
jmp okch10
End If
If A = 12 Then
Reset Rel10
jmp okch10
End If
Next
Okch10:
Sound Pinb.1 , 100 , 500
A = 0
End If
'11111111111111111111111111111111111111111111 11111111111
If A = 11 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch11
End If
If A = 11 Then
Set Rel11
jmp okch11
End If
If A = 12 Then
Reset Rel11
jmp okch11
End If
Next
Okch11:
Sound Pinb.1 , 100 , 500
A = 0
End If
'12121212121212121212121212121212121212121212 121212121212
If A = 12 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch12
End If
If A = 11 Then
Set Rel12
jmp okch12
End If
If A = 12 Then
Reset Rel12
jmp okch12
End If
Next
Okch12:
Sound Pinb.1 , 100 , 500
A = 0
End If
'............................................ ............
Next G
E = 0
D = 0
Sound Pinb.1 , 100 , 1000
Reset Rel
jmp main
'-------------------------------------------------------
'============================================ ===========
'-------------------------------------------------------
Int00:
A = Pind
A.2 = A.4
A.3 = A.5
A.4 = 0
A.5 = 0
A.6 = 0
A.7 = 0
G = 0
Incr D
E = 0
Return
End
لینک دانلود فایل حاوی اطلاعات در مورد مدار
http://www.4shared.com/file/32904948/85e12499/mt8870.html?dirPwdVerified=5d2320c9

با کمک اول خدا بعد شما دوستان عزیز این پروژه من تموم شد وحالا جهت قدر دانی از شما ورفع مشکلات اون رو در سایت قرار میدم و از شما دوستان میخام که مشکلات اون رو به من بگید
توضیحاتی در مورد مدار
اول این که من mt8870گیرم نیومد و از il8870 استفاده کردم
اپتوکوپلر که من استفاده کردم 817هست و چهار پایه داره ولی در شبیح سازی اپتوکوپلره 6پایه داره شما از پایه ششم صرف نظر کنین
خوروجی برای رله پایه های portb.2 تاpinb.7 و pinc.0 تا pinc.5هست ومن اونا رو فقط با ledامتحان کردم
خروجی صدای at8 رو که portb.1 هست رو به 741 دادمش تا دامنه اون رو به 12vبرسونم و با خازن 104 به خط وصل کردم
اینتراپس مدار هم pind.2 هست که به mt8870وصله
اون چهار بیت که از mt8870خارج میشه رو به pind.0 , pind.1 , pind.4 ,pind.5 وصل کردم
برای این که به طور اتوماتیک گوشی رو برداره خط تلفن رو به یک اپتو کوپلر دادم و خوریجیش رو با یک ترانزیسور به pinb.6 دادم
توضیح مختصری برای برنامه
اول چک میکنه که اگر pind.6 یک شد یک واحد به cاضاف میکنه و هروقت c=2خط رو وصل میکنه بعد از ستا بوق رمز زو میخاد وبعد )2314( با زدن هر کلید روی صفحه کلید تلفن میپره روی برنامه اون رله و با زدن کلید # رله رو خاموش میکنه وبا زدن کلید 0 بدون هیچ تاثیری بر روی این رله برمیگرده وبا زدن کلید * رله رو روشن میکنه قابل ذکر هست که
کلید 1 =رله 1
کلید 2=رله2
کلید 3=رله 3
کلید 4=رله 4
کلید 5=رله5
کلید 6=رله6
کلید 7=رله 7
کلید 8=رله8
کلید 9=رله9
کلید 0=رله 10
کلید *=رله 11
کلید #=رله12
و در پایان میگویم اگه کسی مدا رو بست و مشکلی داشت ما در خدمتیم
کوچییییییییییییییییییییییییییییک شما محسن
$regfile = "m8def.dat"
$crystal = 2000000
Config Int0 = Rising
Enable Interrupts
Enable Int0
On Int0 Int00
Cursor Off
Dim A As Byte
Dim B As Single
Dim C As Byte
Dim D As Byte
Dim E As Long
Dim F As Byte
Dim G As Long
Dim H As Long
Rel Alias Portb.0
Rel1 Alias Portb.2
Rel2 Alias Portb.3
Rel3 Alias Portb.4
Rel4 Alias Portb.5
Rel5 Alias Portb.6
Rel6 Alias Portb.7
Rel7 Alias Portc.0
Rel8 Alias Portc.1
Rel9 Alias Portc.2
Rel10 Alias Portc.3
Rel11 Alias Portc.4
Rel12 Alias Portc.5
Config Portb = Output
Config Portd = Input
Config Portc = Output
A = 0
B = 0
C = 0
D = 0
E = 0
F = 0
Sound Pinb.1 , 400 , 100
Main:
C = 0
Do
If Pind.6 = 0 Then
jmp respons
End If
Loop
'--------------------------------------------------------------------
Respons:
Incr C
If C = 2 Then
Set Rel
jmp main2
End If
Waitms 2000
For E = 1 To 50000
If Pind.6 = 0 Then
jmp respons
End If
Next
C = 0
jmp main
'-------------------------------------------------------------------
'============================================ =======================
'-------------------------------------------------------------------
Main2:
D = 0
Waitms 400
Sound Pinb.1 , 400 , 100
Waitms 100
Sound Pinb.1 , 400 , 100
For E = 1 To 100000
Checkpass:
If D = 1 Then
jmp c1
End If
If D = 3 Then
jmp c2
End If
If D = 5 Then
jmp c3
End If
If D = 7 Then
jmp c4
End If
If D >= 8 Then
Reset Rel
D = 0
End If
Next
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
'---------------------------------------------------
C1:
If A = 2 Then
D = 2
Waitms 200
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C2:
If A = 3 Then
Waitms 200
D = 4
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C3:
If A = 1 Then
D = 6
jmp Checkpass
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
jmp Checkpass
C4:
If A = 4 Then
jmp start0
Else
Waitms 1000
Sound Pinb.1 , 1000 , 100
Reset Rel
jmp main
End If
'------------------------------------------------------
'============================================ ==========
'------------------------------------------------------
Start0:
A = 0
Waitms 100
Sound Pinb.1 , 100 , 100
Waitms 100
Sound Pinb.1 , 100 , 100
Waitms 100
Sound Pinb.1 , 100 , 100
E = 0
For G = 1 To 200000
'............................................ ................
'11111111111111111111111111111111111111111111 1111111111111111
If A = 1 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch1
End If
If A = 11 Then
Set Rel1
jmp okch1
End If
If A = 12 Then
Reset Rel1
jmp okch1
End If
Next
Okch1:
Waitms 200
Sound Pinb.1 , 100 , 500
A = 0
End If
'22222222222222222222222222222222222222222222 2222222222222222
If A = 2 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch2
End If
If A = 11 Then
Set Rel2
jmp okch2
End If
If A = 12 Then
Reset Rel2
jmp okch2
End If
Next
Okch2:
Waitms 100
Sound Pinb.1 , 100 , 500
A = 0
End If
'33333333333333333333333333333333333333333333 3333333333333
If A = 3 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch3
End If
If A = 11 Then
Set Rel3
jmp okch3
End If
If A = 12 Then
Reset Rel3
jmp okch3
End If
Next
Okch3:
Sound Pinb.1 , 100 , 500
A = 0
End If
'44444444444444444444444444444444444444444444 444
If A = 4 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch4
End If
If A = 11 Then
Set Rel4
jmp okch4
End If
If A = 12 Then
Reset Rel4
jmp okch4
End If
Next
Okch4:
Sound Pinb.1 , 100 , 500
A = 0
End If
'55555555555555555555555555555555555555555555 5555555
If A = 5 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch5
End If
If A = 11 Then
Set Rel5
jmp okch5
End If
If A = 12 Then
Reset Rel5
jmp okch5
End If
Next
Okch5:
Sound Pinb.1 , 100 , 500
A = 0
End If
'66666666666666666666666666666666666666666666 6666666
If A = 6 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch6
End If
If A = 11 Then
Set Rel6
jmp okch6
End If
If A = 12 Then
Reset Rel6
jmp okch6
End If
Next
Okch6:
Sound Pinb.1 , 100 , 500
A = 0
End If
'77777777777777777777777777777777777777777777 777777777
If A = 7 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch7
End If
If A = 11 Then
Set Rel7
jmp okch7
End If
If A = 12 Then
Reset Rel7
jmp okch7
End If
Next
Okch7:
Sound Pinb.1 , 100 , 500
A = 0
End If
'88888888888888888888888888888888888888888888 88888888
If A = 8 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch8
End If
If A = 11 Then
Set Rel8
jmp okch8
End If
If A = 12 Then
Reset Rel8
jmp okch8
End If
Next
Okch8:
Sound Pinb.1 , 100 , 500
A = 0
End If
'99999999999999999999999999999999999999999999 99999999
If A = 9 Then
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch9
End If
If A = 11 Then
Set Rel9
jmp okch9
End If
If A = 12 Then
Reset Rel9
jmp okch9
End If
Next
Okch9:
Sound Pinb.1 , 100 , 500
A = 0
End If
'10101010101010101010101010101010101010101010 101010
If A = 10 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch10
End If
If A = 11 Then
Set Rel10
jmp okch10
End If
If A = 12 Then
Reset Rel10
jmp okch10
End If
Next
Okch10:
Sound Pinb.1 , 100 , 500
A = 0
End If
'11111111111111111111111111111111111111111111 11111111111
If A = 11 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch11
End If
If A = 11 Then
Set Rel11
jmp okch11
End If
If A = 12 Then
Reset Rel11
jmp okch11
End If
Next
Okch11:
Sound Pinb.1 , 100 , 500
A = 0
End If
'12121212121212121212121212121212121212121212 121212121212
If A = 12 Then
A = 0
For E = 1 To 15
Waitms 500
Sound Pinb.1 , 50 , 50
If A = 10 Then
jmp okch12
End If
If A = 11 Then
Set Rel12
jmp okch12
End If
If A = 12 Then
Reset Rel12
jmp okch12
End If
Next
Okch12:
Sound Pinb.1 , 100 , 500
A = 0
End If
'............................................ ............
Next G
E = 0
D = 0
Sound Pinb.1 , 100 , 1000
Reset Rel
jmp main
'-------------------------------------------------------
'============================================ ===========
'-------------------------------------------------------
Int00:
A = Pind
A.2 = A.4
A.3 = A.5
A.4 = 0
A.5 = 0
A.6 = 0
A.7 = 0
G = 0
Incr D
E = 0
Return
End
لینک دانلود فایل حاوی اطلاعات در مورد مدار
http://www.4shared.com/file/32904948/85e12499/mt8870.html?dirPwdVerified=5d2320c9

دیدگاه