PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : خاموش كردن اتوماتيك نور پشت زمينه lcd



REZANEWS
26-11-2010, 00:35
سلام دوستان
من يه برنامه نوشتم كه داره درست كار ميكنه ولي ميخوام كه نور پشت زمينه LCD رو به اين برنامه اضافه كنم یعنی یه پایه رو جوری برنامه نویسی کنم كه بعد از مدتي خاموش بشه که خروجی پایه رو به یه ترانزیستور بدم و تمام و هر بار كه دستور RUN و STOPو BEMETAL اجرا ميشه صفحه براي 15 ثانيه روشن بمونه و بعد خاموش بشه من سورس برنامه رو ميزارم دوستان كمك كنن
$regfile = "M8def.dat"
$crystal = 8000000
Config Pind.0 = Input
Config Pind.1 = Input
Config Portb.0 = Output
Config Portb.6 = Output
Config Portb.7 = Output
Config Debounce = 30
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , _
Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcd = 16 * 2
Cls
Cursor Off
Locate 1 , 4
Lcd "DESIGN OF"
Waitms 150
Home L
Locate 2 , 1
Lcd "ALI REZA"
Waitms 400
Cls
Locate 1 , 5
Lcd "PELIKAN"
Locate 2 , 4
Lcd "Ref . Sys"
Waitms 400
Cls
Locate 1 , 3
Lcd "TIMER 500 ms"
Locate 2 , 5
Lcd "ver:3.0"
Waitms 400
Cls
Do
Debounce Pind.0 , 0 , Khamosh , Sub
Debounce Pind.0 , 1 , Roshan , Sub
Debounce Pind.1 , 1 , Bemetal1 , Sub
Loop
End


Roshan:
Locate 1 , 4
Lcd "TIMER RUN"
Waitms 20
Set Portb.6
Waitms 50
Set Portb.7
Return


Khamosh:
Reset Portb.6
Reset Portb.7
Locate 1 , 4
Lcd "TIMER OFF"
Return


Bemetal1:
Set Portb.0
Waitms 100
Reset Portb.0
Home L
Lcd "desConnect Shunt"
Return

morteza_rk
26-11-2010, 02:34
سلام

راستش من نمی دونم که آیا دقیقا متوجه منظور شما شدم یا نه؟ ولی اگه بخواید یک پین رو روشن کنید و بعداز 15 ثانیه صفرش کنید باید از دستور WAIT 15 استفاده کنید.

مثلا در قسمت Bemetal1 داریم :



Bemetal1:
Set Portb.0
Waitms 100
Reset Portb.0
Home L
Lcd "desConnect Shunt"
reset portb.5
wait 15
set portb.5
Return

ولی فکر می کنم که مشکل شما اینه که اگر در حالیکه برنامه در حال Wait برای سپری شدن اون 15 ثانیه هست کلیدی فشار داده بشه میکرو متوجه نمیشه! اگه مشکلتون اینه باید برای کلیدها از وقفه استفاده کنید!

M3R
26-11-2010, 03:37
سلام:hi:
ببخشید که تو کار اساتید دخالت میکنم.


برای کلیدها از وقفه استفاده کنید!

و میشه برای زمان 15 ثانیه از تایمر استفاده کرد.

REZANEWS
26-11-2010, 13:11
سلام دوستان
اگه عملکرد مدارو تشریح کنم شاید بتونید راحتر به من کمک کنید
مدار تشکیل شده از 3 رله خروجی و 2 تک سوئیچ برای فرمان دادن
در ابتدا زمانی که مدار روشن میشه یه سری اطلاعات اعم از ورژن و نام طراح رو نشون میده تا زمانی که به دستو do میرسه اگه وضعیت pind.0 صفر بود که دستور می پره به khamosh که portb.6 و portb.7 رو ریست میکنه و روی ال سی دی timer off مینویسه ولی اگه pind.0 یک شد دستور می پره به roshan که timer run رو روی ال سی دی نشون میده و اول portb.6 رو فعال میکنه و 50 میلی ثانیه بعد portb.7 رو فعال میکنه و جدای از این دو فرمان یه دستور دیگه داریم که با یک شدنpind.1 فعال شده و دستور میپره به bimetal که در اون portb.0 رو روشن میکنه و بعد از 100 میلی ثانیه اونو reset میکنه و روی ال سی دی desconnect shunt مینویسه. حالا قسمتی رو که میخوام به برنامه اضافه کنم اینه که زمانی که دستوری اجرا میشه اعم از زیر برنامه khamosh و roshan و bimetal یه pinخروجی مثلا portb.4 رو برای 15 ثانیه روشن کنه بعد ار 15 ثانیه خاموش شه که من این خروجی رو با یه ترانزیستور به پایه 15 ال سی دی وصل کنم میدونم که از timer0 باید استفاده کنم ولی دستورشو نمیدونم چطوریه. منتظر راهنمایی شما دوستان هستم