خوش آمديد!
01:03 يكشنبه 30 ارديبهشت ماه ، 1403
سايت مهندس لاچيني | پروژه ها و آموزش الكترونيك و تابلوروان: تالار گفتمان

HLachini.elewiz.com :: نمايش موضوعات - اتصال کیبرد به تابلو روان

اتصال کیبرد به تابلو روان
رفتن به صفحه قبلي  1, 2, 3  بعدي
 

ارسال موضوع جديد  پاسخ به اين موضوع    

   HLachini.elewiz.com صفحه اول انجمن -> تابلو روان

نمايش موضوع قبلي :: نمايش موضوع بعدي  
نويسنده پيغام

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: پنجشنبه، 11 تير ماه ، 1388 12:37:09    موضوع مطلب: پاسخ همراه با اعلان

مهندس سه تا سوال دیگه داشتم
1-در LTG1.1 که برای تابلو روان گذاشتید در سورسی که میده برای حلقه اول for s مقداری از 0 تا 73 در ابعاد 32 ستون و در ابعاد 24 ستون از 0 تا 65 میدهد منظور از این اعداد چیه؟ اینها چه کاری انجام میدن؟
2-اگه بخام سرعتش رو زیاد یا کم کنم چی کار کنم؟
3-تو پرتیوس چه جوری بفهمم که سطر و ستون های ماتریس آند یا کاتد هستن؟
واقعا ممنون که وقت میزارید Arrow Mad

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: پنجشنبه، 11 تير ماه ، 1388 22:38:43    موضوع مطلب: تابلوروان با کیبورد پاسخ همراه با اعلان

1- در این برنامه با توجه به طول تابلو و همچنین طول متنی که قرار است نمایش داده شود مقدار شمارنده های درون حلقه محاسبه میشوند. که برای درک بهتر سورس تولید شده حتما باید مطالب قبلی را مطالعه کرده باشید.
2- اگر منظورتان سرعت حرکت متن است که خود برنامه این عمل را انجام میدهد ، هر چقدر تعداد رفرش ها به ازای هر شیفت کمتر شود سرعت بیشتر میشود.
3- تست کنید! از طریق دادن ولتاژ از طریق مقاومت به ماتریس. همچنین در بخش مشخصات هر قطعه میتوانید آند یا کاتد مشترک بودن را تغییر دهید.

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: شنبه، 13 تير ماه ، 1388 12:24:46    موضوع مطلب: پاسخ همراه با اعلان

سلام
مهندس این دو تا دستور چی کار میکنن؟
من هلپ بیسکام رو خوندم ولی چیزی حالیم نشد

$hwstack = 200
$swstack = 200
$framesize = 200

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: شنبه، 13 تير ماه ، 1388 15:36:25    موضوع مطلب: دستورات بسکام پاسخ همراه با اعلان

این سه دستور مربوط به تنظیمات حافظه پشته هستند. ودلیل استفاده از آن این است که زمانی که شما دستوراتی همچون GOSUB , CALL , functions را استفاده میکنید میکرو باید آدرس برگشت را در پشته ذخیره کند تا پس از انجام روتین و یا تابع فراخوانی شده با توجه به آدرس ذخیره شده در پشته به همان خطی که از آن پرش انجام شده بود برگردد.

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب
کاربرانی که برای این ارسال از SoS تشکر کرده اند mehrdadgh

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: شنبه، 13 تير ماه ، 1388 21:18:33    موضوع مطلب: پاسخ همراه با اعلان

سلام
مهندس من میخام که مثلا وقتی کلید اینتر رو زدم برنامه یه شرطی رو اجاره کنه ولی کدهای کلید های کیبرد رو نمیدونم و اصلا ازشون سر در نمیارم . اون دو تا جدولی که تو کتاب آقای کاهه نوشته کدوم کدهای گرفته شده از کیبرده و کدومشون کدهای اسکی هستش؟ (جدول اولی یا دومی؟ ) ترتیبی برای این کدها هستش؟ اگه من بخام کلیدی مثل f12 رو استفاده کنم چه کارایی باید انجام بدم؟

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: پنجشنبه، 18 تير ماه ، 1388 13:14:05    موضوع مطلب: پاسخ همراه با اعلان

مهندس شما خودتون با کیبرد زیاد ور نرفتین؟ Shocked Shocked Shocked Shocked Shocked Shocked

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: جمعه، 19 تير ماه ، 1388 00:31:08    موضوع مطلب: اتصال کیبورد به میکرو پاسخ همراه با اعلان

دوست عزیز همانطور که گفته شد شما باید مشخص کنید که آیا میخواهید اصول کار کیبرد را بدانید و بعد از آن به طراحی مدار خود بپردازید؟ یا اینکه فقط ساخت مدار برایتان مهم است و دانستن زیر و بم کیبورد چندان اهمیتی ندارد؟
در حالت اول منبع چ در اینترنت و چه در کتاب زیاد است. به عنوان مثال کتاب مدارهای واسط آقای مزیدی اطلاعات خوبی داده و همچنین میتوانید در خود سایت اتمل مراجعه کنید و یا CD های آنرا تهیه کنید که در آن به کارکرد کیبورد بصورت کامل پرداخته و یک نمونه برنامه به زبان C هم قرار داده که در واقع بسکام هم از آن الگو گرفته است و به نظر من نوشتن در رابطه با چیزی که قبلا در مورد ان اطلاعات جامعی وجود دارد فقط تکرار مکررات است و باید ما به دنبال ایجاد فکر و ایده تازه باشیم.
اما اگر فقط به دنبال ساخت آن هستید که در بسکام همه جیز را را آماده کرده و بقیه کار همان برنامه نویسی هست. حالا شما میخواهید با زدن یک کلید از کیبورد شرط حاصی احرا شود خوب اول کلید را با استفاده توابع بسکام بخوانید و بعد و از انکه کلید مورد نظر زده شد شرط خود را احرا کنید.
شما پرسیدید که کدام جدول کد اسکی کلید هست؟ خوب این نشون میده که واقعا راهنمای بسکام رو در مورد دستور GETATKBD نخودید. برید مراجعه کنید و ببیند ، کد زیر را برای مثال قرار داده :
:كد

'-----------------------------------------------------------------------------------------

'name                     : getatkbd.bas

'copyright                : (c) 1995-2005, MCS Electronics

'purpose                  : PC AT-KEYBOARD Sample

'micro                    : Mega48

'suited for demo          : yes

'commercial addon needed  : no

'-----------------------------------------------------------------------------------------

 

$regfile = "8535def.dat"                                    ' specify the used micro

$crystal = 4000000                                          ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space

 

'For this example :

'connect PC AT keyboard clock to PIND.2 on the 8535

'connect PC AT keyboard data to PIND.4 on the 8535

 

'The GetATKBD() function does not use an interrupt.

'But it waits until a key was pressed!

 

'configure the pins to use for the clock and data

'can be any pin that can serve as an input

'Keydata is the label of the key translation table

Config Keyboard = Pind.2 , Data = Pind.4 , Keydata = Keydata

 

'Dim some used variables

Dim S As String * 12

Dim B As Byte

 

'In this example we use SERIAL(COM) INPUT redirection

$serialinput = Kbdinput

 

'Show the program is running

Print "hello"

 

Do

'The following code is remarked but show how to use the GetATKBD() function

' B = Getatkbd()     'get a byte and store it into byte variable

'When no real key is pressed the result is 0

'So test if the result was > 0

' If B > 0 Then

'    Print B ; Chr(b)

' End If

 

'The purpose of this sample was how to use a PC AT keyboard

'The input that normally comes from the serial port is redirected to the

'external keyboard so you use it to type

Input "Name " , S

'and show the result

Print S

'now wait for the F1 key , we defined the number 200 for F1 in the table

Do

   B = Getatkbd()

Loop Until B <> 200

Print B

Loop

End

 

'Since we do a redirection we call the routine from the redirection routine

'

Kbdinput:

'we come here when input is required from the COM port

'So we pass the key into R24 with the GetATkbd function

' We need some ASM code to save the registers used by the function

$asm

push r16           ; save used register

push r25

push r26

push r27

 

Kbdinput1:

rCall _getatkbd    ; call the function

tst r24            ; check for zero

breq Kbdinput1     ; yes so try again

pop r27            ; we got a valid key so restore registers

pop r26

pop r25

pop r16

$end Asm

'just return

Return

 

'The tricky part is that you MUST include a normal call to the routine

'otherwise you get an error

'This is no clean solution and will be changed

B = Getatkbd()

 

'This is the key translation table

 

Keydata:

'normal keys lower case

Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0

Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0

Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0

Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0

Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0

Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0

Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0

Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

 

'shifted keys UPPER case

Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0

Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0

Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0

Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0

Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0

Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0

Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0



در این دو جدول توضیحاتی نوشته در اولی normal keys lower case یعنی حالت معمولی کلید که حروف کوچک تایپ میشوند.
در دومی نوشته : shifted keys UPPER case کلید با شیفت که حروف بزرگ تایپ میشوند. هر دو جدول کدهای اسکی هستند. و همانطور که در راهنما گفته شما برای گذاشتن شرط برای کلید F1 اول به جدول اسکن کد تولید شده برای هر کلید مراجعه کنید. در این جدول برای F1 نوشته که کد 5 تولید میشود حالا شما در خانه 5+1 در جدول عددی مثل 200 بنویسید که خودش هم این کار رو کرده و حالا در برنامه شرط ی قرار میدهید که تا زمانیکه این کلید زده نشده منتظر بماند. که در برنامه با حلقه Do-Loop اینکار رو انجام داده.
امیدورام که این مطلب تونسته باشه تا حدی مسئله رو برای شما روشن کرده باشه و همچنین به راهنمای موجود در نرم افزار های این برادران خارجی هم توجه بکنیم که واقعا زحمت زیادی براش کشیدن و خیلی از مولفان ما هم فقط مترجم هستند نه مولف.

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: يكشنبه، 21 تير ماه ، 1388 10:16:24    موضوع مطلب: پاسخ همراه با اعلان

سلام
مهندس من اصلا هلپ بیسکام تو زهنم نبود
ممنون
راستش این کتاب اقای کاهه رو نیگا میکردم خیلی بد و ناقص هلپ بیسکام رو به قول شما ترجمه کرده و راستی اون کدهای کیبردی هم که تو پیوست کتابش آوره هم اشتباهن و اونا مربوط به کد MF3 هستن (http://www.barcodeman.com/altek/mule/scandoc.php )و درستش در هلپ بیسکام موجوده
مهندس من متوجه نمیشدم که این 200 رو که به f12 داده رو از کجا آورده (چون کد اسکیش 112 هستش )
پس مقدار دلخواهی میتونیم بهش نسبت بدیم
ممنون

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: جمعه، 2 مرداد ماه ، 1388 15:46:50    موضوع مطلب: پاسخ همراه با اعلان

مهندس من این کدها رو نوشتم که میخام حرف A رو در ماتریس7*5 به حرکت در بیارم به طوریکه دو تا Aبا فاصله دو ستون حرکت کنند ولی جواب نمیده
به نظرت مشکل از کجاست؟
ماتریس 8*8 استفاده کردم
http://www.4shared.com/file/116732606/71a6da93/tabloo.html

گفتم که میخایم کیبرد رو به میکرو وصل کنیم پس باید به هر کلید یه جدول تعین کنیم تا وقتی که اون هم فشرده شده به جدولش پرش کنه
پس باید کدها رو تک تک واسه هر کدوم از کلمه ها یه جدول بزنیم
که من سواد برنامه نویسیم نتونست با این روش جلو بره !!
یعنی تو نمایش حروف مشکلی که دارم اینه که قاطی پاتی میشه!!
اگه روش دیگه ای به ذهنتون میاد یا برای این روش پیشنهادی دارین ممنون میشم


Shocked Shocked

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: شنبه، 3 مرداد ماه ، 1388 11:50:48    موضوع مطلب: اتصال کیبورد به تابلوروان پاسخ همراه با اعلان

برنامه شما این بود :

:كد

$regfile = "m16def.dat"
$crystal = 8000000

Config Portb = Output
Config Porta = Output

Dim Col As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Index As Byte
Dim S As Byte

Do



    For S = 0 To 20

      Prog:                                                 ' nomayesh A
     For Refresh = 1 To 10
            Scan = &B00000001
            For Col = 0 To 4
                Index = S + Col

                Portb = Lookup(index , Gelayof)
                Porta = Scan
                Waitms 1
                Rotate Scan , Left
                Porta = &H00
            Next Col
        Next Refresh

         Prog1:                                             ' 2 ta sotoon faseleh
        For Refresh = 1 To 10
            Scan = &B00000001
            For Col = 0 To 4
                Index = S + Col

                Portb = Lookup(index , Gelayof1)
                Porta = Scan
                Waitms 1
                Rotate Scan , Left
                Porta = &H00
            Next Col
        Next Refresh



        Prog2:                                              ' nomayeshe A
        For Refresh = 1 To 10
            Scan = &B00000001
            For Col = 0 To 4
                Index = S + Col

           If Index > 1 Then Index = 0
                Portb = Lookup(index , Gelayof2)
                Porta = Scan
                Waitms 1
                Rotate Scan , Left
                Porta = &H00
            Next Col
        Next Refresh


        Prog3:                                              '
        For Refresh = 1 To 10
            Scan = &B00000001
            For Col = 0 To 4
                Index = S + Col

                Portb = Lookup(index , Gelayof3)
                Porta = Scan
                Waitms 1
                Rotate Scan , Left
                Porta = &H00
            Next Col
        Next Refresh



         Prog4:                                             '
        For Refresh = 1 To 10
            Scan = &B00000001
            For Col = 0 To 4
                Index = S + Col

                Portb = Lookup(index , Gelayof4)
                Porta = Scan
                Waitms 1
                Rotate Scan , Left
                Porta = &H00
            Next Col
        Next Refresh




    Next S
Loop
End                                                         'end program

Gelayof:
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111


Data &B11111111
Data &B11111111


Gelayof1:


Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

Data &B11111111
Data &B11111111

Gelayof2:

Data &B11111111
Data &B11111111

Gelayof3:


Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

Data &B11111111
Data &B11111111

Gelayof4:
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111


Data &B11111111
Data &B11111111


مشکل شما در عدم برنامه نویسی صحیح است. لزومی به استفاده از چندین قطعه برنامه و چندین جدول گلایف نیست. شما براحتی میتوانید دو حرف A را با فاصله در یک جدول استفاده کنید. من توصیه میکنم مطالب توضیح داده شده در مورد تابلو روان را یکبار دیگر مطالعه کنید. همچنین برای درک بهتر چنین برنامه ای میتوانید از نرم افزار تولید سورس بسکام تابلوروان 8 در 128 استفاده کنید. من در زیر کد تولید شده توسط این برنامه که دو حرف A با فاصله از هم حرکت میکنند را در یک ماتریس 8 در 8 آوردم :

:كد

'*********************************************
'* This Program Writing By : Hossein Lachini *
'* The Persian LED Sign Board                *
'* For to get more details visit :           *
'*                 www.HLachini.com          *
'* Contact to me by : eLachini@Gmail.com     *
'* Mobile/SMS : +98 912 381 2060             *
'*********************************************

$regfile = "m16def.dat"
$crystal = 1000000

Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output

Dim Scan As Byte
Dim I As Word
Dim Refresh As Byte
Dim T As Byte
Dim B As Byte
Dim D As Word
Dim U As Word
Dim S As Word
Dim M As Word
Dim E As Word
Dim A As Word

Do


' _    _  _    _  _    _     _   _  _      _____   _____   _   _  _  __   _  _      _____   _____   _    _
'| |  | || |  | || |  | |   | | | || |    /  _  \ /  _  \ | | | || ||  \ | || |    /  _  \ /  _  \ | \  / |
'| |/\| || |/\| || |/\| |   | |_| || |    | |_| | | | |_| | |_| || ||   \| || |    | | |_| | | | | |  \/  |
'|      ||      ||      |   |  _  || |    |  _  | | |  _  |  _  || ||      || |    | |  _  | | | | |      |
'|  /\  ||  /\  ||  /\  | _ | | | || |___ | | | | | |_| | | | | || || |\   || | _  | |_| | | |_| | | |\/| |
'|_/  \_||_/  \_||_/  \_||_||_| |_||_____||_| |_| \_____/ |_| |_||_||_| \__||_||_| \_____/ \_____/ |_|  |_|
' +---------------------------+
' | Scrolling Text00 to Right |
' +---------------------------+

 For S = 0 To 32
  M = 32 - S
  E = M + 7
  For Refresh = 1 To 5
   Scan = &H01
   For I = M To E

    For B = 0 To 0

     D = B * 8
     D = D + I
     Portd = Lookup(d , Text00)

     Portb = 2 ^ B
     Portb = 0

    Next B

    Porta = Scan
    Rotate Scan , Left , 1
    Waitms 2
    Porta = 0

   Next I
  Next Refresh
 Next S

Loop
End                                                         'end program

Text00:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H3F , &H44 , &H44 , &H44 , &H3F , &H00 , &H00 , &H00  'A
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00  '
Data &H3F , &H44 , &H44 , &H44 , &H3F , &H00 , &H00 , &H00  'A
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00


برای دانلود برنامه تولید سورس بسکام تابلو روان از لینک زیر استفاده کنید :
http://www.hlachini.com/download-file-9.html

در مورد اتصال کیبورد هم شما لازم به تعریف یک جدول به ازای هر کلید ندارید. بلکه در یک جدول تمامی کلیدهای مورد نیاز را باید تعریف کنید. برای راحتی شما هم به نظر من یکبار مدار تابلو روان قابل اتصال به کیبورد توسط LCD را بسازید و تست های خود را از آنجا شروع کنید چون شما هنوز با دو مسئله خواندن کیبورد و نمایش بر روی ماتریس مشکل دارید و حل همزمان این دو کار سختی هست. ولی در مدار LCD فقط به مسئله کیبورد میپردازید و مسائل آنرا برای خود حل میکنید.

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب
کاربرانی که برای این ارسال از SoS تشکر کرده اند mehrdadgh

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: شنبه، 3 مرداد ماه ، 1388 13:26:05    موضوع مطلب: پاسخ همراه با اعلان

سلام
اعلام:
شما هم به نظر من یکبار مدار تابلو روان قابل اتصال به کیبورد توسط LCD را بسازید و تست های خود را از آنجا شروع کنید چون شما هنوز با دو مسئله خواندن کیبورد و نمایش بر روی ماتریس مشکل دارید و حل همزمان این دو کار سختی هست. ولی در مدار LCD فقط به مسئله کیبورد میپردازید و مسائل آنرا برای خود حل میکنید.

بنده مدار شما و چندین مثال هم از کیبرد به طور عملی تست کردم و جواب هم گرفتم و مشکلی که داشتم با راهنمایی شما کاملا حل شد و دیگه با کیبرد مشکل ندارم
اعلام:
من توصیه میکنم مطالب توضیح داده شده در مورد تابلو روان را یکبار دیگر مطالعه کنید.

من مطالب قبلیتان را در مورد تابلو روان خوندم و از یه جاهای دیگر نیز چیزهایی فهمیدم و در رابطه با نوشتن برنامه با یک جدول مشکلی ندارم و در برنامه بالایی میخاستم که برای هر کلید یه جدول و حلقه بگذارم که ان هم درست نمایش نمی داد
اعلام:
لزومی به استفاده از چندین قطعه برنامه و چندین جدول گلایف نیست. شما براحتی میتوانید دو حرف A را با فاصله در یک جدول استفاده کنید.

پس شما می فرماید که باید همه کدها رو در یک جدول تعریف کنم
اما این که می فرمایید با یک جدول پس در این صورت من چه جوری حروف خوانده شده از کیبرد رو نمایش بدم چون حروف همیشه ترتیبشان که با کیبرد کاربر وارد میکند یکی نیست که برنامه رو مثل اونی که در بالا گذاشتید بنویسم
اگر برایتان امکان دارد کمی درباره نمایش در ماتریس توضیح بدهید بقیه اش را خودم مینویسم
من مراحل ابتدایی برنامه که شامل یک متغیر رشته ای برای گرفتن کاراکترها و نیز یک شمارنده برای شمارش کاراکترهای وارده از کیبرد و نیز چندین حلقه برای دریافت وانتقال اطلاعات و ... بود رو نوشتم ولی قسمت نمایش مانده !

Shocked

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: شنبه، 3 مرداد ماه ، 1388 18:53:37    موضوع مطلب: اتصال کیبورد به تابلوروان پاسخ همراه با اعلان

برای اینکه بتوانید در تابلو روان از یک جدول برای تمامی حروف استفاده کنید کافیست که حروف و علائم و اعداد را در یک جدول گلایف با ترتیب مشابه ترتیب کدهای اسکی قرار دهید. سپس رشته یا همان متن دریافتی از کاربر را در برنامه آنالیز کنید و ببینید که از چه حروفی تشکیل شده. و با استفاده از کد اسکی معادل هر حرف در متن وارد شده ، با یک محاسبه ساده میتوانید آدرس شروع هر متن را در جدول گلایف بدست آورید.
مثلا اگر کاربر حرف b را تایپ کرده باشد معادل اسکی آن عدد 98 است و با فرض اینکه شما در جدول گلایف خود از حرف A بزرگ شروع کرده باشید و اندازه عرض هر کاراکتر 5 ستون یا بایت باشد، محل شروع کدهای گلایف برای حرف b طبق فرمول زیر بدست می آید :
محل شروع کدهای گلایف حرف مورد نظر = (کد اسکی حرف مورد نظر - کد اسکی حرف A) * تعداد بایتهای یک حرف در جدول
5*(65-9Cool=165
البته فرمول فوق برای حالتی است که تمامی حروف و اعلائم و اعداد از تعداد ستونهای برابری در جدول گلایف برخودار باشند.
برای اینکه بتوانید کدهای اسکی یک حرف و همچنین ترتیب چیدمان آنها را طبق جدول اسکی بدانید میتوانید به کتابهای کامپیوتر مراجعه کنید و یا از تصویر زیر که از برنامه Character Map ویندوز تهیه شده استفاده کنید. این برنامه در مسیر زیر است :

:كد

Start>>All Programs>>Accessories>>System Tools>>Character Map


شما هم کافیست که مثل این برنامه کدهای جدول گلایف را از علامت ! شروع کنید و با علامت جای خالی که بعد از علامت ~ قرار دارد تمام کنید. در این حالت در فرمول بالا بجای کد اسکی حرف A باید کد اسکی علامت ! استفاده کنید.

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: شنبه، 17 مرداد ماه ، 1388 18:41:09    موضوع مطلب: پاسخ همراه با اعلان

سلام
مهندس من چندین جور برنامه نوشتم ولی هیچ کدام از آنها جواب نداد !
اگر برایتان ممکن است مثالی بزنید که حروف را به ترتیب از جدول نخواند بلکه ، مثلا برای کلمه اول آدرس آن از 0 تا 7 جدول و برای دوم آدرس آن از 75 تا 82 از جدول باشد .
ممنون

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

mehrdadgh
کاربر فعال
کاربر فعال

وضعيت: آفلاين
2 اسفند ماه ، 1387
تعداد ارسالها: 59
امتياز: 20
تشکر کرده: 9
تشکر شده 16 بار در 7 پست


ارسالارسال شده در: دوشنبه، 2 شهريور ماه ، 1388 20:25:17    موضوع مطلب: پاسخ همراه با اعلان

سلام
مهندس مطالب زیر رو ببینید
من چن جور برنامه نوشتم ولی متاسفانه هیچ کدوم رو نمیتونم درست از آب دربیارم
مثلا :
:كد

D = K * S
D = D + S
For S = 0 To D
Scan = &H01
For A = 0 To K
W = Right(x , A)
M = Asc(w)
If A = 0 Then M = 0
For Col = 0 To 7
Index = S + Col
Index = Index + M
Portb = Lookup(index , Gelayof)
.
.
.

Gelayof:

Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00, 'FASELE
Data &H11 ,                                                 'A
Data &H02 , ...                                             'B
Data &H04 , ...                                             'C
Data &H11 , ...                                             'D

.
.
.


متغیر D برای تعیین مقدار S تعریف شده است .متغیر A در حلقه for هم برای جدا کردن حروف از رشته است و K هم تعداد حروف است گه به نمایش در خواهند آمد .
در برنامه اگر فرض کنیم که در جدول کدها از فاصله شروع میشوند و از a تا ... ادامه میابند بنابراین مقدار M هم نقطه شروع هر کاراکتر را نشان میدهد ( فرض میکنیم که مقدار اسکی آن را درست انتخاب کردیم ) .
اگر بخاهیم که حرف C را نمایش دهیم داریم :
M = 24 محل شروع کاراکتر
و اگر بعد از اجرای برنامه به این مرحله برسد که COL = 7 و S = 1 شود مقدار INDEX برابر 8 میشود که یک بایت اضافی نسبت بخ کدهای کاراکتر C در جدول دارد و برنامه به نمایش کارکتر دیگری خواهد پرداخت و البته در INDEX های بزرگتر از هشت هم.
من خودم مشکل برنامو گفتم و امیدوارم که منظورمو فهمیده باشین
مهندس این روش رو هم تست کردم ولی اصلا جواب نداد . (برای هر کاراکتر یک جدول )
:كد

For S = 0 To ...


For Refresh = 0 To 10                  برای کاراکتر اول
Scan = &H01
For Col = 0 To 7
Portb = Lookup(col , Gelayof)
.
.
.
For Refresh = 0 To 10               کاراکتر دوم
Scan = &H01
For Col = 0 To 7
Portb = Lookup(col , Gelayof)
.
.
.
For Refresh = 0 To 10                  کاراکتر سوم
Scan = &H01
For Col = 0 To 7
Portb = Lookup(col , Gelayof)
.
.
.

اگر کمکی از دستتون بر میاد ممنون میشم دریغ نکنید و اگر هم خیر ، از بابت همه آموزش هایی که تو سایت هست ممنون

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب

SoS
مدیر سایت
مدیر سایت

وضعيت: آفلاين
11 شهريور ماه ، 1387
تعداد ارسالها: 569
امتياز: 371
تشکر کرده: 15
تشکر شده 334 بار در 201 پست


ارسالارسال شده در: دوشنبه، 2 شهريور ماه ، 1388 23:43:48    موضوع مطلب: مدار تابلوروان با کیبورد پاسخ همراه با اعلان

در برنامه شما چند مطلب هست که برای من گنگ است :
- شما در توضیحات گفتید که "متغیر D برای تعیین مقدار S تعریف شده است" اما در برنامه D برحسب S تعیین میشود؟!
- اصلا منظور شما برای استفاده از این متغییرهای D, K, S چیست؟

بازگشت به بالا

رويت مشخصات كاربر ارسال پيغام شخصي بازديد از سايت ارسال كننده مطلب
تمامي مطالب ارسال شده:   
ارسال موضوع جديد   پاسخ به اين موضوع   

   HLachini.elewiz.com صفحه اول انجمن -> تابلو روان

زمان پيشفرض سايت: ساعت گرينويچ + 3.5 ساعت
رفتن به صفحه قبلي  1, 2, 3  بعدي
صفحه 2 از 3
  
نام کاربري:      کلمه عبور:     

~ يا ~
عضويت در سايت

  


 


Powered by phpBB © 2001, 2008 phpBB Group
پروگرامر و تستر آِی سی سانا با قابلیت تشخیص اتوماتیک قطعه و درج تمامی قطعات از پین یک زیف و تامین کلاک قابل استفاده در بسکام و کدویژن