سلام چطور میتونم چنتا حرف رو روی lcd با یه کلید با دستور debounce انجام بدم ؟در واقع یجور منو هستش که با زدن کلید یه کلمه نوشته بشه رو lcd بعد دوباره که کلید زدیم یه متن دیگه نوشته بشه.........یه کلید down یه کلید up .... :read:
اطلاعیه
Collapse
No announcement yet.
نمایش متن روی lcd با دستور debounce
Collapse
X
-
پاسخ : نمایش متن روی lcd با دستور debounce
این یه برنامه نمونه هست که با دستور debounce کار میکنه امیدوارم بدردت بخوره
http://www.mediafire.com/view/mho5igg5bxgaoyb/meno.basمن نمىآتوانم فرضیه «بىآاخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآدانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
آلبرت اینشتین
منبع: http://fa.wikiquote.org
-
پاسخ : نمایش متن روی lcd با دستور debounce
ببخشید من فراموش کردم میکرو و lcd رو در برنامه تعریف کنم خودتون یه چیزی تعریف کنیدمن نمىآتوانم فرضیه «بىآاخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآدانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
آلبرت اینشتین
منبع: http://fa.wikiquote.org
دیدگاه
-
پاسخ : نمایش متن روی lcd با دستور debounce
مرسی.چه تغییراتی باید بدم که متن نوشته شده تکی نمایش داده بشه بعد ک کلید زده شه باز متن دیگه؟
$regfile = "m8def.dat"
$crystal = 11059200
$hwstack = 64
$swstack = 64
$framesize = 64
'LCD
Config Lcdpin = Pin , Db4 = Pinc.3 , Db5 = Pinc.2 , Db6 = Pinc.1 , Db7 = _
Pinc.0 , E = Pinc.4 , Rs = Pinc.5
Config Lcd = 16 * 2
Config Pind.6 = Input
Config Pind.7 = Input
Dim A As Byte
Dim T As Byte
Dim Y As Byte
Dim U As Byte
Dim I As Byte
Dim O As Byte
O = 5
A = 1
Config Debounce = 45
Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 32 , 32
Deflcdchar 1 , 32 , 4 , 15 , 31 , 31 , 15 , 4 , 32
''''''''&# 039;''''''' 9;'''''''' '''
Cls : Cursor Off
Gosub Show
Main:
Debounce Pind.6 , 1 , Ab
Debounce Pinc.7 , 1 , Ac
Goto Main
''''''''&# 039;''''''' 9;'''''''' ''''
Ab:
If O > 2 Then
If A <> 2 Then
A = 2
Elseif A = 2 Then
Decr O
End If
Gosub Show
End If
Goto Main
''''''''&# 039;''''''' 9;'''''''' ''''
Ac:
If O < 5 Then
If A <> 1 Then
A = 1
Elseif A = 1 Then
Incr O
End If
Gosub Show
End If
Goto Main
End
''''''''&# 039;''''''' 9;'''''''' ''''
Show:
T = O - 4
Y = O - 3
U = O - 2
I = O - 1
Cls
Locate A , 15 : Lcd Chr(0)
Locate A , 14 : Lcd Chr(1)
Locate T , 1 : Lcd "aaaaaaaaaaaa"
Locate Y , 1 : Lcd "bbbbbbbbbbbb"
Locate U , 1 : Lcd "cccccccccccc"
Locate I , 1 : Lcd "dddddddddddd"
Locate O , 1 : Lcd "eeeeeeeeeeee"
Return
دیدگاه
-
پاسخ : نمایش متن روی lcd با دستور debounce
اینو با select case نوشتم البته در حالت اول هم میشه برنامه رو با select case نوشت
http://www.mediafire.com/view/1pnhqcc291c0u8h/meno0.basمن نمىآتوانم فرضیه «بىآاخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآدانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
آلبرت اینشتین
منبع: http://fa.wikiquote.org
دیدگاه
-
پاسخ : نمایش متن روی lcd با دستور debounce
:read: سلام مرسی از جوابت یه مشکلی هست من میخواستم این دستوراتو با یه برنامه دیگه ادغامش کنم اما نشد چجور باید تغییر بدم؟ برنامه فرکانس متر رو میخواستم با اون برنامه که با debounce با هم یکیش کنم یعنی وقتی کلیدو بزنم اون متن نوشته شه بعد پاینش مد سیگنال نوشته شه ............. مثل شکل زیر:
شکل برنامه فرکانس متر
شکل برنامه که با دستور debounce
اینم شکل مثالی که من میخوام تغییرات ایجاد شه البته با فوتوشاپ انجام دادم .میخوام برنامه رو طوری تغییر بدم که مثل شکل زیر بشه خودم هرکاری کردم نشد مخواستم طوری بشه که برنامه اصلی روالش ثابت باشه فقط این متن بالاش بشه با یه کلید تغییرش داد!!!!!!!!!!!
اینم کد برنامه فرکانس متر
$regfile = "m8def.dat"
$crystal = 11059200
$hwstack = 64
$swstack = 64
$framesize = 64
'LCD
Config Lcdpin = Pin , Db4 = Pinc.3 , Db5 = Pinc.2 , Db6 = Pinc.1 , Db7 = _
Pinc.0 , E = Pinc.4 , Rs = Pinc.5
Config Lcd = 16 * 2
Cursor Off : Cls
'Serial Port To PC
Open "comb.5:9600,8,n,1,inverted" For Output As #1
Print #1 , "serial output test"
'I/O
Config Pinb.0 = Input 'Key
Set Portb.0 'Set PullUp Res
'Timer
Config Timer1 = Counter , Edge = Falling
Config Timer0 = Timer , Prescale = 64
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Pulse
On Ovf0 Ov0
'Variables
Dim A As Long , I As Long , B As Byte , C As Single
Waitms 500
Start Timer0
Do
Loop
End
Ov0:
Incr I
If I = 675 Then
Stop Timer0
A = B * 65536
A = A + Counter1
Cls : Home
If Pinb.0 = 0 Then
Lcd "High: 1MHz-1GHz"
Lowerline
A = A * 12800
C = A / 1000000
Lcd "F= " ; Fusing(c , "#.&&&&&&" ; "MHz"
Print #1 , "~"
Print #1 , "F= " ; Fusing(c , "#.&&&&&&" ; "MHz"
Else
Lcd "Low: 1Hz-1MHz"
Lowerline
If A < 1000 Then
Lcd "F= " ; A ; " Hz"
Print #1 , "~"
Print #1 , "F= " ; A ; "Hz"
End If
If A > 1000 Then
C = A / 1000
Lcd "F= " ; Fusing(c , "#.&&&" ; " KHz"
Print #1 , "~"
Print #1 , "F= " ; Fusing(c , "#.&&&" ; "KHz"
End If
End If
Counter1 = 0 : B = 0 : I = 0
Start Timer0
End If
Return
Pulse:
Incr B
Counter1 = 0
Return
اینم کد debounce
Dim O As Byte
O = 5
Config Debounce = 45
Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 32 , 32
Deflcdchar 1 , 32 , 4 , 15 , 31 , 31 , 15 , 4 , 32
''''''''&# 039;''''''' 9;'''''''' '''
Cls : Cursor Off
Gosub Show
Main:
Debounce Pinc.2 , 1 , Ab
Debounce Pinc.3 , 1 , Ac
Goto Main
''''''''&# 039;''''''' 9;'''''''' ''''
Ab:
Incr O
If O > 5 Then
O = 5
End If
Gosub Show
Goto Main
''''''''&# 039;''''''' 9;'''''''' ''''
Ac:
Decr O
If O < 1 Then
O = 1
End If
Gosub Show
Goto Main
End
''''''''&# 039;''''''' 9;'''''''' ''''
Show:
Cls
Locate 1 , 15 : Lcd Chr(0)
Locate 1 , 14 : Lcd Chr(1)
Select Case O
Case 5
Locate 1 , 1 : Lcd "aaaaaaaaaaaa"
Case 4
Locate 1 , 1 : Lcd "bbbbbbbbbbbb"
Case 3
Locate 1 , 1 : Lcd "cccccccccccc"
Case 2
Locate 1 , 1 : Lcd "dddddddddddd"
Case 1
Locate 1 , 1 : Lcd "eeeeeeeeeeee"
End Select
Return
''''''''&# 039;''''''' 9;'''''''' '''''
:read:
دیدگاه
-
پاسخ : نمایش متن روی lcd با دستور debounce
گزینه خط 2,1 که فرکانس موج ورودی به کانتر 1 هست وثابته و اما گزینه خط 1,2 که مربوط به محدوده فرکانسی هست ودو حالت بیشتر نداره یکی 1HZ-1Mhz و دیگری 1MHZ-1GHZ .
خب این تغییر حالت به بیشتر از یک کلید (همانطوری که الان هست )
نیاز نداره الان شما دقیقا می خواید چه گزینه هایی رو با دستور debounce جابجا کنید ؟من نمىآتوانم فرضیه «بىآاخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآدانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
آلبرت اینشتین
منبع: http://fa.wikiquote.org
دیدگاه
-
پاسخ : نمایش متن روی lcd با
مرسی silicon0 جان اره درسته من با اون برنامه در حالت اولیش کاری ندارم چون الان بایه کلید مد فرکانسیش مشخص میشه من میخوام مثل برنامه ای که گذاشتی درباره
دستور debounce تو این برنامه جوری تغییر بدم که متنی با زدن کلید به جای اون 1hz..... نوشته بشه در حالی که مد فرکانسی که :f هستش پایین باشه مثل اون شکلی که بالا مثال زدم. :read: یعنی اینکه مثلا بخواییم چهار تا حرف جداگانه رو مثل a.b.c.d رو با زدن کلید به جای اون 1hz...... قرار بدیم طوری که اون f: تغییر نکنه.نمیدونم متوجه منظورم شدی یا ن
دیدگاه
-
پاسخ : نمایش متن روی lcd با دستور debounce
بفرمایید من کلیدهای debounce رو pinb.1 و pinb.2 تعریف کردم
http://www.mediafire.com/view/lxjh0ch6x1hdbth/frequency_meter-1.basمن نمىآتوانم فرضیه «بىآاخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآدانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
آلبرت اینشتین
منبع: http://fa.wikiquote.org
دیدگاه
دیدگاه