شيفت دادن نوشته روي lcd 16*2

omidvarshoei

عضو جدید
برنامه زير با كامپايلر بسكام نوشته شده و بسيار جالب است اين برنامه روي ال سي دي 2*16 است كه نوشته ها روي آن حركت كرده و اگر تعداد حروف (اندازه نوشته) تغيير كند نحوه نمايش نوشته روي ال سي دي نيز تغيير ميكند آي سي به كار رفته در اين برنامه atmega16 با كريستال 10000 ميباشد
اگر مشكلي در خصوص برنامه داشتين
در خدمتم


$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

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

Ss = "happy birthday to you i wish you will be happy - www.forum.iranled.com - omid varshoei"

Do

B = Len(ss)

If B < 17 Then :

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

Wait 1

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

Wait 1

Else :

S = Left(ss , 16)

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

C = B - 16

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

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

Locate 1 , 1 : Lcd " " : Wait 1

End If

Loop

End


:heart:
 
آخرین ویرایش توسط مدیر:

live_1389

عضو جدید
سلام
می خوام داخل کدویژن اطلاعات lcd رو شیفت بدم باید چکار کنم؟

مثلاً اگه این رشته رو lcd باشه :abcdef
می خوام بعد از پاک کردن c ما بقی یکی به چپ شیفت داده بشن و جای c پر بشه.
قصد دارم که کیبورد رو به میکرو متصل کنم که تا اینجا همه کلیدها مثل enter,کلید های جهتی و ... کار می کنند.backspace هم از آخر و هم از وسط پاک می کنه اما موندم که وقتی مکان نما به وسط جمله امد چطور هم پاک کنه و هم شیفت بده؟
با تشکر
 

8581

عضو جدید
سلام لطفا در بدست آوردن جواب این سوالات کمکم کنید ممنون میشم در مورد نمایش پیام روی LCD 16*2
1.برنامه ای روی میکرو بنویسید که پیام Hello را در وسط سطر اول و نام شما را در وسط سطر دوم نمایش دهد و بعد از 5 ثانیه به سمت چپ حرکت کند به گونه ای که اثری از پیام و نام شما در صفحه نمایش باقی نماند
2.برنامه ای بنویسید که اعداد زوج 2 رقمی را با تاخیر 1 ثانیه در وسط سطر اول نمایش دهد ( تکرار )
 

سعید گروسی

عضو جدید
کاربر ممتاز
سلام لطفا در بدست آوردن جواب این سوالات کمکم کنید ممنون میشم در مورد نمایش پیام روی LCD 16*2
1.برنامه ای روی میکرو بنویسید که پیام Hello را در وسط سطر اول و نام شما را در وسط سطر دوم نمایش دهد و بعد از 5 ثانیه به سمت چپ حرکت کند به گونه ای که اثری از پیام و نام شما در صفحه نمایش باقی نماند
2.برنامه ای بنویسید که اعداد زوج 2 رقمی را با تاخیر 1 ثانیه در وسط سطر اول نمایش دهد ( تکرار )
1)
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Rs = Pinc.1 , Db4 = Pinc.2 , Db5 = Pinc.3 , _
Db6 = Pinc.4 , Db7 = Pinc.5 , E = Pinc.0
Config Lcd = 16 * 2 : Cursor Off : Cls
Dim C As String * 5
Dim D As String * 5
Dim B As Word , A As String * 5
Dim Aa As Word
B = 7
Aa = 10
C = "hello"
D = "saeed"
Locate 1 , B : Lcd C
Locate 2 , B : Lcd D
Wait 5
Cls
Do
While Aa > 0
Decr B
Locate 1 , B : Lcd C
Locate 2 , B : Lcd D
Wait 1
Cls
Decr Aa
Wend
Loop
End
====================================================================================================
2)
$regfile = "m8def.dat"
$crystal = 1000000


Config Lcdpin = Pin , Rs = Pinc.1 , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = Pinc.5 , E = Pinc.0
Config Lcd = 16 * 2 : Cursor Off : Cls
Dim A As Word , B As Word
A = 10
Do


While B < 45
Locate 1 , 8 : Lcd A
Wait 1
A = A + 2
Incr B
Cls
Wend


Loop
End​
 
آخرین ویرایش:
بالا