ايران ويج

نسخه‌ی کامل: تابلو روان با LCD 16*2
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5
انشاءاله که هم به امتحانت می رسی وهم امتحانتو خوب میدی.
ممنون الان درست شد.
ولی من نمی تونم تواین برنامه تغییرات بدم مثلا میخواستم برنامه زیررا
کد php:
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd 
= 16 * 2
Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
 
: Dim A As Word
Config Pind.1 
= Input
Config Pind.0 
= Input
Config Pind.7 
= Input
Config Pinb.0 
= Input
Cls
Iran
:
Do
If 
Pind.1 = 1 Then
Home
Cls
Waitms 200
Lcd 
"COLD"
End If
If 
Pind.0 = 1 Then
Home
Cls
Waitms 200
Lcd 
"HEAT"
End If
If 
Pind.7 = 1 Then
Home
Cls
Waitms 200
Lcd 
"RAIN"
End If
If 
Pinb.0 = 1 Then
Home
Cls
Waitms 200
Lcd 
"WIND"
End If
Loop 
بابرنامه
کد php:
$regfile = "m8def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte

Ss 
= "www.iranled.com"

Do

 
B = Len(ss)

 If 
B < 17 Then :

 For 
A = 16 To 1 Step -1
 S 
= Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
 Waitms 500
 Next

 Wait 1

 
For A = 1 To 16
 Locate 2 
, A : Lcd " "
 
Waitms 500
 Next

 Wait 1

 
Else :

 
S = Left(ss , 16)

 For 
A = 15 To 1 Step -1
 Locate 2 
, A : Lcd S
 Waitms 500
 Next

 C 
= B - 16

 
For A = 2 To C
 S 
= Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
 Waitms 500
 Next

 
For A = 16 To 1 Step -1
 S 
= Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
 
Waitms 500
 Next

 Locate 2 
, 1 : Lcd " " : Wait 1

 End 
If

Loop

End 
مثل بالایی اجراکنم ولی نتونستم.
لطفا راهنمایی کنید
(من ازبس زیاد سوال می پرسم دیگه خجالت می کشم .شرمنده شما هستم)
مهندس کافیه به جای تاخیر تو برنامه دومی حلقه محدود بذاری و دستورات مورد نظر بالایی رو قرار بدی !!!

ببینم خودت چی کار می کنی !!

اون برنامه منو ببین چی کار کردم ؟؟!!!!
من این برنامه زیر را نوشتم اماجواب نداد
کد php:
$regfile = "m8def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Ddrd 
= 0 : Portd = 3

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte
Dim F 
As Integer , Z As Word

Ss 
= "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T"
Home : Lcd F

'===============================================================================?

Do

   B = Len(ss)

   If B < 17 Then :

      For A = 16 To 1 Step -1
         S = Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

      For A = 1 To 16
         Locate 2 , A : Lcd " "
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

   Else :

      S = Left(ss , 16)

      For A = 15 To 1 Step -1
         Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      C = B - 16

      For A = 2 To C
         S = Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
         Gosub Get_sw
      Next

      For A = 16 To 1 Step -1
         S = Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
         Gosub Get_sw
      Next

      Locate 2 , 1 : Lcd " " : Gosub Get_sw : Gosub Get_sw

   End If

Loop

'
===============================================================================

Get_sw:

   For 
Z = 0 To 4000
      Debounce Pind.0 
, 0 , Cold_ F , Gosub
      Debounce Pind.1 
, 0 , Heat_ F , Gosub
      Debounce Pind.7 
, 0 , Rain_ F , Gosub
      Debounce Pinb.0 
, 0 , Wind _f , Gosub
   Next

Return

Coldf:
   
Incr F : Home : Lcd "cold = " ; F ; "      "
Return

Heatf:
   
Decr F : Home : Lcd "heat = " ; F ; "      "
Return
Rainf:
   
Decr F : Home : Lcd "rain = " ; F ; "      "
Return
Windf:
   
Decr F : Home : Lcd "wind = " ; F ; "      "
Return 
مهندس پول آپ d.7 و b.0 رو باید فعال کنی !

کافیه دستور زیر رو :

کد php:
Ddrd = 0 : Portd = 3 

رو اینگونه بنویسی :

کد php:
Ddrd = 0 : Portd = 255 
Ddrb 
= 0 : Portb = 255 

و کلید ها باید بین پایه میکرو و زمین قرار بگیرن !!!!
این کارو کردم ولی باز error میده
درضمن آیا به مقاومت پول آپ خارجی هم نیاز است یانه (درصورت نیاز به کدام+ یا - وصل شود)؟
کد php:
$regfile = "m8def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Ddrd 
= 0 : Portd = 255
Ddrb 
= 0 : Portb = 255

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte
Dim F 
As Integer , Z As Word

Ss 
= "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T"
Home : Lcd F

'===============================================================================?

Do

   B = Len(ss)

   If B < 17 Then :

      For A = 16 To 1 Step -1
         S = Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

      For A = 1 To 16
         Locate 2 , A : Lcd " "
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

   Else :

      S = Left(ss , 16)

      For A = 15 To 1 Step -1
         Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      C = B - 16

      For A = 2 To C
         S = Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
         Gosub Get_sw
      Next

      For A = 16 To 1 Step -1
         S = Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
         Gosub Get_sw
      Next

      Locate 2 , 1 : Lcd " " : Gosub Get_sw : Gosub Get_sw

   End If

Loop

'
===============================================================================

Get_sw:

   For 
Z = 0 To 4000
      Debounce Pind.0 
, 0 , Cold_ F , Gosub
      Debounce Pind.1 
, 0 , Heat_ F , Gosub
      Debounce Pind.7 
, 0 , Rain_ F , Gosub
      Debounce Pinb.0 
, 0 , Wind _f , Gosub
   Next

Return

Coldf:
   
Incr F : Home : Lcd "cold = " ; F ; "      "
Return

Heatf:
   
Decr F : Home : Lcd "heat = " ; F ; "      "
Return
Rainf:
   
Decr F : Home : Lcd "rain = " ; F ; "      "
Return
Windf:
   
Decr F : Home : Lcd "wind = " ; F ; "      "
Return 
لطف کنید شما برنامه ام رااصلاح کنید.
ممنون میشم
مهندس یه ایراد خیلی کوچولو داشتین !

درستش کردم :

کد php:
$regfile = "m8def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Ddrd 
= 0 : Portd = 255
Ddrb 
= 0 : Portb = 255

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte
Dim F 
As Integer , Z As Word

Ss 
= "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T"
Home : Lcd F

'===============================================================================??

Do

   B = Len(ss)

   If B < 17 Then :

      For A = 16 To 1 Step -1
         S = Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

      For A = 1 To 16
         Locate 2 , A : Lcd " "
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

   Else :

      S = Left(ss , 16)

      For A = 15 To 1 Step -1
         Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      C = B - 16

      For A = 2 To C
         S = Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
         Gosub Get_sw
      Next

      For A = 16 To 1 Step -1
         S = Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
         Gosub Get_sw
      Next

      Locate 2 , 1 : Lcd " " : Gosub Get_sw : Gosub Get_sw

   End If

Loop

'
===============================================================================

Get_sw:

   For 
Z = 0 To 4000
      Debounce Pind.0 
, 0 , Cold_f , Gosub
      Debounce Pind.1 
, 0 , Heat_f , Gosub
      Debounce Pind.7 
, 0 , Rain_f , Gosub
      Debounce Pinb.0 
, 0 , Wind_f , Gosub
   Next

Return

Cold_f:
   
Incr F : Home : Lcd "cold = " ; F ; "      "
Return

Heat_f:
   
Decr F : Home : Lcd "heat = " ; F ; "      "
Return
Rain_f:
   
Decr F : Home : Lcd "rain = " ; F ; "      "
Return
Wind_f:
   
Decr F : Home : Lcd "wind = " ; F ; "      "
Return 

ایرادشو هم بهت نمی گم تا خودت پیداش کنی و بهم بگی !!

الان از پول آپ داخلی میکرو استفاده شده و هیچی لازم نیست بذاری !
فقط کلید ها رو وصل کن بین پایه میکرو و زمین !!!
مشکل من بازم حل نشد.
من میخواهم که در سطر دوم ال سی دی عبارت زیربصورت روان باشد
کد php:
Ss = "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T" 
ودرسطراول هم باتوجه به چهارکلید بیرونی که هرکدام تنها فشرده می شوند یعنی اگرکلید اول فشار داده شود روی سطراول ال سی دی مثلا عبارت cold نوشته شود واگرکلید های بعدی فشرده شوند نیز عبارت heat و... وهمچنان که درسطراول این حروف نوشته می شوند درسطر دوم هم عبارت happy...بصورت روان نوشته شود.
salam man tzegia ozve anjoman shodam .
mishe komakam konid base electronic va sakht tabloe ravan bam kar konid
I NEED UR HELP
MINA
رسول جون یکم خودت فعالیت کن !
راحت می شه !
یه تغییرات کوچیک باید بدی !!!
نتونستی بگو برنامشو بذارم !!!


مینا عزیز لطفا سوال ها و مطالبتون رو اینجا مطرح کنین :

http://forum.iranled.com/showthread.php?tid=12743


این تایپک ها هم شاید به دردتون بخوره :

http://forum.iranled.com/showthread.php?tid=12743
http://forum.iranled.com/showthread.php?tid=14707
http://forum.iranled.com/showthread.php?tid=14190
http://forum.iranled.com/showthread.php?tid=15787
من برنامه زیررانوشتم اما بدون زدن کلید کلمات coldو heat و ... خود به خود تکرار می شوند وخط روان هم اجرا نمی شود شایدهم ایراد ازReturn باشد نمی دانم دیگه گیج شدم.....
کد php:
$regfile = "m8def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.2 , Rs = Portd.3
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Ddrd 
= 0 : Portd = 255
Ddrb 
= 0 : Portb = 255

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte
Dim F 
As Integer , Z As Word

Ss 
= "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T"
Home : Lcd F

'===============================================================================???

Do

   B = Len(ss)

   If B < 17 Then :

      For A = 16 To 1 Step -1
         S = Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

      For A = 1 To 16
         Locate 2 , A : Lcd " "
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

   Else :

      S = Left(ss , 16)

      For A = 15 To 1 Step -1
         Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      C = B - 16

      For A = 2 To C
         S = Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
         Gosub Get_sw
      Next

      For A = 16 To 1 Step -1
         S = Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
         Gosub Get_sw
      Next

      Locate 2 , 1 : Lcd " " : Gosub Get_sw : Gosub Get_sw

   End If

Loop

'
===============================================================================

Get_sw:

   For 
Z = 0 To 4000
      Debounce Pind.0 
, 0 , Cold_f , Gosub
      Debounce Pind.1 
, 0 , Heat_f , Gosub
      Debounce Pind.7 
, 0 , Rain_f , Gosub
      Debounce Pinb.0 
, 0 , Wind_f , Gosub
   Next

Return

Cold_f:
 If 
Portd.0 = 1 Then : Home : Lcd "cold  " ; F ; "      "
 
End If
Return

Heat_f:
 If 
Portd.1 = 1 Then : Home : Lcd "heat  " ; F ; "      "
 
End If
Return
Rain_f:
 If 
Portd.7 = 1 Then : Home : Lcd "rain  " ; F ; "      "
End If
Return
Wind_f:
  If 
Portb.0 = 1 Then : Home : Lcd "wind  " ; F ; "      "
End If
Return 
من دیگه بیشتر ازاین بلدنیستم لطف کن و لطف کن و لطف کن وکمکم کن ...
مهندس باور کن درسته !

اینو بگیر : http://www.ir-manup.com/7uwmu8w5er84/rasol.rar.html

اینم برنامش :

کد php:
$regfile = "m16def.dat" : $crystal = 1000000

Config Lcdpin 
= Pin , Rs = Pinc.0 , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = Pinc.7 , E = Pinc.2
Config Lcd 
= 16 * 2 : Cursor Off : Cls

Ddrd 
= 0 : Portd = 255
Ddrb 
= 0 : Portb = 255

Dim Ss 
As String * 255 , S As String * 16
Dim B 
As Byte , C As Byte , A As Byte
Dim Z 
As Word

Ss 
= "happy birthday to you i wish you will be happy - www.forum.iranled.com - A.N.T"

'===============================================================================????

Do

   B = Len(ss)

   If B < 17 Then :

      For A = 16 To 1 Step -1
         S = Mid(ss , A , 1 ) : Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

      For A = 1 To 16
         Locate 2 , A : Lcd " "
         Gosub Get_sw
      Next

      Gosub Get_sw : Gosub Get_sw

   Else :

      S = Left(ss , 16)

      For A = 15 To 1 Step -1
         Locate 2 , A : Lcd S
         Gosub Get_sw
      Next

      C = B - 16

      For A = 2 To C
         S = Mid(ss , A , 16 ) : Locate 2 , 1 : Lcd S
         Gosub Get_sw
      Next

      For A = 16 To 1 Step -1
         S = Right(ss , A) : Locate 2 , 1 : Lcd S ; " "
         Gosub Get_sw
      Next

      Locate 2 , 1 : Lcd " " : Gosub Get_sw : Gosub Get_sw

   End If

Loop

'
===============================================================================

Get_sw:

   For 
Z = 0 To 4000
      Debounce Pind.0 
, 0 , Cold_f , Gosub
      Debounce Pind.1 
, 0 , Heat_f , Gosub
      Debounce Pind.7 
, 0 , Rain_f , Gosub
      Debounce Pinb.0 
, 0 , Wind_f , Gosub
   Next

Return

Cold_f:
 
Home : Lcd "cold  "
Return

Heat_f:
 
Home : Lcd "heat  "
Return

Rain_f:
 
Home : Lcd "rain  "
Return

Wind_f:
  
Home : Lcd "wind  "
Return 
صفحه‌ها: 1 2 3 4 5