ايران ويج

نسخه‌ی کامل: تابلو روان با 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 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 Portd.2 Rs Portd.3
Config Lcd 
16 Cursor Off Cls

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte As Byte

Ss 
"www.iranled.com"

Do

 
Len(ss)

 If 
17 Then :

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

 Wait 1

 
For 1 To 16
 Locate 2 
Lcd " "
 
Waitms 500
 Next

 Wait 1

 
Else :

 
Left(ss 16)

 For 
15 To 1 Step -1
 Locate 2 
Lcd S
 Waitms 500
 Next

 C 
16

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

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

 Locate 2 
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 Portd.2 Rs Portd.3
Config Lcd 
16 Cursor Off Cls

Ddrd 
Portd 3

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte As Byte
Dim F 
As Integer 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 
0 To 4000
      Debounce Pind.0 
Cold_ F Gosub
      Debounce Pind.1 
Heat_ F Gosub
      Debounce Pind.7 
Rain_ F Gosub
      Debounce Pinb.0 
Wind _f Gosub
   Next

Return

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

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

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

کد php:
Ddrd Portd 

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

کد php:
Ddrd Portd 255 
Ddrb 
Portb 255 

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

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

Ddrd 
Portd 255
Ddrb 
Portb 255

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte As Byte
Dim F 
As Integer 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 
0 To 4000
      Debounce Pind.0 
Cold_ F Gosub
      Debounce Pind.1 
Heat_ F Gosub
      Debounce Pind.7 
Rain_ F Gosub
      Debounce Pinb.0 
Wind _f Gosub
   Next

Return

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

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

درستش کردم :

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

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

Ddrd 
Portd 255
Ddrb 
Portb 255

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte As Byte
Dim F 
As Integer 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 
0 To 4000
      Debounce Pind.0 
Cold_f Gosub
      Debounce Pind.1 
Heat_f Gosub
      Debounce Pind.7 
Rain_f Gosub
      Debounce Pinb.0 
Wind_f Gosub
   Next

Return

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

Heat_f:
   
Decr F Home Lcd "heat = " "      "
Return
Rain_f:
   
Decr F Home Lcd "rain = " "      "
Return
Wind_f:
   
Decr F Home Lcd "wind = " "      "
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 Portd.2 Rs Portd.3
Config Lcd 
16 Cursor Off Cls

Ddrd 
Portd 255
Ddrb 
Portb 255

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte As Byte
Dim F 
As Integer 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 
0 To 4000
      Debounce Pind.0 
Cold_f Gosub
      Debounce Pind.1 
Heat_f Gosub
      Debounce Pind.7 
Rain_f Gosub
      Debounce Pinb.0 
Wind_f Gosub
   Next

Return

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

Heat_f:
 If 
Portd.1 1 Then Home Lcd "heat  " "      "
 
End If
Return
Rain_f:
 If 
Portd.7 1 Then Home Lcd "rain  " "      "
End If
Return
Wind_f:
  If 
Portb.0 1 Then Home Lcd "wind  " "      "
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 Pinc.2
Config Lcd 
16 Cursor Off Cls

Ddrd 
Portd 255
Ddrb 
Portb 255

Dim Ss 
As String 255 As String 16
Dim B 
As Byte As Byte 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 
0 To 4000
      Debounce Pind.0 
Cold_f Gosub
      Debounce Pind.1 
Heat_f Gosub
      Debounce Pind.7 
Rain_f Gosub
      Debounce Pinb.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