امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
چک کردن از درست نوشتن برنامه بسکام
نویسنده پیام
sinasat آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 1
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #1
چک کردن از درست نوشتن برنامه بسکام
من يک برنامه نوشتم مال در بازکن تلفني ميخواستم ببينم درست نوشتمش اينم برنامه
کد php:
$regfile "m8def.dat"
$crystal 8000000
'$baud = 9600
Config Portd = Input
Config Portb.7 = Input
Config Portb.6 = Output
Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Config Debounce = 50
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.4 , Db6 = Portb.5 , Db7 = _
Portc.0 , E = Portb.2 , Rs = Portb.1
Config Lcd = 16 * 2
Cursor Off
Cls
Declare Sub Main
Dim D As Long , Seco As Byte , A As Byte , B As Byte , C As String * 8 , F As Long
Dim E As Eram Long
Sina:
Delay
Home
Lcd "    Waiting"
Wait 1
Do
If Pinb.7 = 1 Then Jmp Q
Loop
Q:
Cls
Home L
Lcd "    javab"
Waitms 50
Set Portb.6
Cls
If E = &HFFFFFFFF Then
jmp Here
Else
jmp Sh
End If
Here:
E = 123456
Sh:
Cls : Home : Lcd "PASSWORD ENTER=#"
B = 0 : C = "" :
Locate 2 , 1
Call Main
If E = D Then
   If Pind = &B00001010 Then
    Goto Bb
   Else
    Jmp Control
   End If
Else
 Cls : Home
 Lcd "Wrong Password"
 Reset Portb.6
 Wait 2 : Cls : Home : Jmp Sina
End If
Bb:
Cls : Cursor Off : Home
Lcd "1:Change Pass"
Locate 2 , 1 : Lcd "2:Back"
Bc:
A = Pind
If Seco <= 60 And A > &B00001100 Then
 Reset Portb.6
 Goto Sina
'
--------------------------
Lookup(Jadval)
If 
49 Then Jmp Change
If 50 Then Jmp Sh
jmp Bc
Change
:
Cls Cursor Off Home
Lcd 
"Type Old Pass"
Locate 2 1
Call Main
If D Then
   jmp Gh
Else
   
Cls Home Lcd "Wrong Pass" Wait 2
   Reset Portb.6
   jmp sina
End 
If
Gh:
Cls Cursor Off Home
Lcd 
"Type New Pass"
Locate 2 1
Call Main
D
jmp Bb
End

Control
:
Cls
Home
Lcd 
"    wellcome"
Wait 3
Cls
000
:
Do
If 
Seco <= 60 And Pind < &B00001100 Then
 jmp klid
Else
 
Reset Portb.6
 jmp sina
End 
If
Klid:
If 
Pind = &B00000001 Then Goto Relay1
If Pind = &B00000010 Then Goto Relay2
If Pind = &B00000011 Then Goto Relay3
If Pind = &B00000100 Then Goto Relay1_off
If Pind = &B00000101 Then Goto Relay2_off
If Pind = &B00000110 Then Goto Relay3_off
If Pind = &B00001001 Then Goto Int_off

Loop


' LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABELLABEL

'
**************************************TV***************************************

Int_off:
Waitms 10
Reset Portb.6
Waitms 10
jmp sina


Relay1
:

    
Cls
    Set Portc.5
    
If Portc.5 1 Then
    Locate 1 
4
    Lcd 
"Relay1 on"
    
End If
    
Waitms 100
    jmp 0000

Relay1_off
:

    
Cls
    Reset Portc.5
    
If Portc.5 1 Then
    Locate 1 
4
    Lcd 
"Relay1 off"
    
End If
    
Waitms 100
    jmp 0000


'***************************************WASHER**********************************


Relay2:

    Cls
    Set Portc.4
    If Portc.4 = 1 Then
    Locate 1 , 3
    Lcd "Relay2"
    End If
    Waitms 100
    jmp 0000

Relay2_off:

    Cls
    Reset Portc.4
    If Portc.4 = 1 Then
    Locate 1 , 3
    Lcd "Relay2 Off"
    End If
    Waitms 100
    jmp 0000



'
**************************************FAN**************************************


Relay3:

    
Cls
    Set Portc.3
    
If Portc.3 1 Then
    Locate 1 
3
    Lcd 
"Relay3 ON"
    
End If
    
Waitms 100
    jmp 0000

Relay3_off
:

    
Cls
    Reset Portc.3
    
If Portc.3 1 Then
    Locate 1 
3
    Lcd 
"Relay3 Off"
    
End If
    
Waitms 100
    jmp 0000



End                                                         
'end program
'
-----------------------------------------------------------

Main:
""
Aa:
Pind
If Seco <= 60 And > &B00001100 Then
 Reset Portb.6
 
Goto Sina
Lookup(Jadval)
Select Case A
'----------------------
Case 48 To 57:
If B < &B00001000 Then
   Incr B
   Lcd String(1 , A)
   C = C + String(1 , A)
End If
jmp Aa
'
----------------------
Case 
35:
Val(c)
End Select
Return
'--------------------------------------------------
Jadval:
Data 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 42 , 35 
توضیحات برنامه
این در بازکن تلفنی طوریه که شما اول بعد جواب دادن گوشی توسط دستگاه از شما رمز پیش فرض 123456 رو میخواد با زدن کلید مربع وارد میشوید و رمز نیز قابل تغییر میباشه و چند تا رله هم داره که بعد از وارد شدن قابلیت قطع و وصل داره
توضیحات برنامه
اولش که همه پیکر بندی
اگر پین b.7 یک شد یعنی تلفن در حال زنگ زدنه و گوشی رو جواب بده
و پین b.6 یک کن تا رله وصل بشه و گوشی جواب داده بشه
در خط بعدی میگه اگر متغیر E مساوی با یک شد چون در eeprom مقدار اولیش 1 است
پرش میکنه به لیبل here و متغیر e=123456 می کنه
(اما وقتی کاربر رمز رو عوض کنه و برق مدار رو قطع کنه شرط here برقرار نمیشه و به لیبل sh پرش میکنه
و دیگه کاری به داخل e نداره
خط بعدی متغیر ها رو مقدار دهی می کنیم
و سابروتین main رو فراخونی میکنه که توضیحاتش رو در آخر میدم
اگر متغیر e=d شد
برو خط بعدی پین d هم به آی سی mt8870 وصله
اگر pind=10 شد برو به لیبل bb
ذر غیر اینصورت
برو به لیبل کنترل
در غیر اینصورت پسورد اشتباه است گوشی رو قطع کن
حالا بقیه توضیحات برنامه
وبرو به لیبل اولیه سینا
در این شرط اگر شما کلید ستاره رو بزنید به قسمت تغییر رمز میروید که شماره کلید ستاره 1010 است و به لیبل bb
مراجعه می کند و روی LCD تایپ میکنه 1 -change pass در خط بعدی 2-back و بعد میره به لیبل Bc و PINd=A میکنه
و اگر در مدت 60 ثانیه و عدد وارد شده بزرگتر از 1100 بود گوشی رو قطع میکنه و میره به لیبل sina
در غیر اینصورت میره خط بعدی متغیر A را با اعداد داخل لیبل jadval مقایسه میکند و در صورت برابر بودن با هر کدام عدد رو داخل متغیر A میریزه
اگر a=49 شد که همون 1 است برو لیبل Change
اگر a=50 شد که همون 2 است برو به لیبل sh
در غیر اینصورت اگر هر کدام از شرطها برقرار نبود به لیبل Bc برو
لیبل Change
روی LCD تایپ میشه Pass قدیمی رو از شما میخواد
فراخوانی لیبل Main
اگر E=d شد یعنی پسورد صحیح است و به لیبل GH میره
در غیر اینصورت پسورد اشتابه است گوشی تلفن قطع میشه و میره به لیبل sina
لیبل GH
از شما میخواد رمز جدید خود را وارد کنید و E=D قرار میده و میره به لیبل Bb
لیبل Control
داخل حلقه اگر در مدت 60 ثانیه و عددی کوچکتر از 1100 وارد شد برو به لیبل klid
در غیر اینصورت تلفن رو قطع کن و برو به لیبل sina
لیبل klid
در لیبل کلید هم براساس عدد وارد شده به رله مربوطه میره
سابروتین Main
متغیر های B, C رو مقدار دهی میکنه
PIND = A
اگر در مدت 60 ثانیه و مقدار A بزرگتر از 1100 شد شرط برقرار و گوشی تلفن قطع و به لیبل sina میره
در غیر اینصورت خط بعدی متغیر A رو با مقادیر داخل لیبل jadval مقایسه میکنه و در صورت برابر بودن عدد مورد نظر رو میریز داخل متغیر A

اینم PCB که خودم درست کردم و در اصل طرح کلی رو از روی این پروژه برداشتمش فقط تغییراتی کلی دادم مثلا مگا 16 رو کردم مگا 8 و جای پایه اشم کمی تغییر کرده
http://uplod.ir/sytc4oarlzvr/proje_asli.zip.htm
اینم PCB
http://uplod.ir/i8q7z00feijc/d.rar.htm

برنامه رو هم که تغییر دادم تا بشه که با رمز وارد شد و رمز رو هم تغییر داد که از روی پروژه قفل رمزدار زیر نوشتمش برای همین میگم ببینم درست نوشتمش چون مجبور بودم تغییراتی توش انجام بدم چون ماکه صفحه کلید نداریم مثل قفل رمزدار برای همین خروجی mt8870 که به Pind وصله اعداد رو به ما میده
اینم لینک در ست پروژه قفل رمز دار
http://uplod.ir/jx3sz5590fgc/1.zip.htm
(آخرین ویرایش در این ارسال: ۰۸-آبان-۱۳۹۳, ۱۰:۴۶:۳۷، توسط sharin.)
۰۷-آبان-۱۳۹۳, ۱۹:۱۴:۳۳
ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, sharin
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #2
RE: چک کردن از درست نوشتن برنامه بسکام
نه خدای الآن انتظار داری یکی بیاد بگه درسته یا نه ؟ :|

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۰۷-آبان-۱۳۹۳, ۲۱:۱۱:۲۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, milad15m
a.mehran آفلاین
مدیر بخش
*****

ارسال‌ها: 1,029
موضوع‌ها: 93
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5125
( 4490 تشکر در 1882 ارسال )
ارسال: #3
RE: چک کردن از درست نوشتن برنامه بسکام
فایل هارو تو انجمن اپلود کردم اگر درست بود ملت بتونن راحت دانلود کنن

.zip   proje asli.zip (اندازه: 577.63 KB / تعداد دفعات دریافت: 64)

.zip   1.zip (اندازه: 199.31 KB / تعداد دفعات دریافت: 165)

.rar   d.rar (اندازه: 96.84 KB / تعداد دفعات دریافت: 46)

silent people have the loudest minds شادی − بهینه شده برای ورژن جدید شادی − بهینه شده برای ورژن جدید
سایت من Abrdade.com
۰۷-آبان-۱۳۹۳, ۲۱:۲۲:۰۰
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question خواندن/نوشتن بر روی کارت مغناطیسی SMNsoft 14 31,089 ۱۸-دى-۱۴۰۱, ۰۵:۱۰:۱۳
آخرین ارسال: Arsam.6988
  مشکل در پاک کردن برنامه میکرو Salam7 1 398 ۲۹-بهمن-۱۴۰۰, ۲۲:۵۰:۴۴
آخرین ارسال: 1نفر
  [سوال] خواندن داده های یک فایل روی هارد در برنامه بسکام Ambassador 1 739 ۲۸-تير-۱۳۹۹, ۱۶:۱۴:۱۴
آخرین ارسال: Ambassador
  خطا در کامپایل کردن برنامه در codevision akand1111 9 19,907 ۲۳-اسفند-۱۳۹۸, ۱۰:۲۱:۰۱
آخرین ارسال: aKaReZa75
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
Question مشکل در نوشتن فایل در MMC HamidSay 9 4,042 ۳۰-شهریور-۱۳۹۷, ۰۵:۲۶:۰۹
آخرین ارسال: HamidSay
  [سوال] کانتر در بسکام questnet 7 3,486 ۱۲-مرداد-۱۳۹۷, ۰۱:۵۵:۵۴
آخرین ارسال: questnet
  مشکل در کار با تایمر 1 در بسکام klick 3 4,535 ۳۰-بهمن-۱۳۹۵, ۰۴:۰۴:۴۲
آخرین ارسال: omid_phoenix
  افکت کم نور و پر نور شدن تدریجی با بسکام؟ رسول21 19 18,305 ۲۱-بهمن-۱۳۹۵, ۱۴:۲۹:۴۲
آخرین ارسال: hadikh73
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS