با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
سوالات برنامه نویسی با بسکام
#1
سلام دوستان اگر سوالی داشتید در اینجا مطرح کنید:)
پاسخ
#2
سلام استاد میشه نحوه کار با سون سگمت رو برامون توضیح بدید
پاسخ
#3
اول یه توضیحی در مورد مالتی پلکس
این نوع سون سگمنت با استفاده از خطای دید انسان کار می کند.
در روش مالتی پلکس پایه های a-g تمامی 7سگمنت ها را به هم وصل می کنیم و برای کنترل آن ها باید از پایه های کنترل استفاده کرد(پایه کنترل همون پایه ای است که در سگمنت معمولی آند مشترک یا کاتد مشترک هستند)
اغلب اوقات برای روشن کردن این نوع نمايشگر ها بايد از میکروکنترلر استفاده کرد البته از روش سخت افزاری هم می توان استفاده کرد که صرفه اقتصادی نداره
برنامه نویسی برای سگمنت مالتی پلکس
خوب بایه برنامه توضیح میدم
برنامه نمایش عدد 1234 روی سون سگمنت
کد:
$regfile = "m8def.dat" تعریف میکرو
$crystal = 1000000 تعریف کریستال
Config Portc = Output دو پورت رو خروجی می کنیم
Config Portd = Output
Do شروع حلقه
Portc.0 = 1 پایه کنترل 1 را یک می کنیم
Portd = &B1111001 کد شماره یک را نمایش می دیم
Waitms 4 یه تاخیر 4 میلی ثانیه ای
Portc.0 = 0 پایه کنترل صفر می کنیم
Portc.1 = 1 پایه کنترل 2 رو یک می کنیم
Portd = &B0100100 کد شماره 2 را نمایش می دهیم
Waitms 4 یه تاخیر 4 میلی ثانیه ای
Portc.1 = 0 پایه کنترل را صفر می کنیم
Portc.2 = 1 به همین ترتیب تا آخرش می ریم
Portd = &B0110000
Waitms 4
Portc.2 = 0
Portc.3 = 1
Portd = &B0011001
Waitms 4
Portc.3 = 0
Loop
End                                                         'end program
این هم شماتیک
İmage
تا اینجا رو داشته باشید بقیش رو بعدا میگم (منظورم از بقیه نمایش متغیر روی سگمنت است)
موفق باشید:)
پاسخ
#4
سلام دوستان حالا به قسمت اصلی آموزش راه اندازی سگمنت رسیدیم
نمایش متغیر روی سون سگمنت
نمایش متغیر کار خیلی سختی نیست فقط باید قبل از نمایش ارقام یک عدد رو جدا کنید و هر کدام را داخل یک متغیر (حتما باید از نوع byte باشد) بنویسیم و سپس با یه جدول lookup به کد باینری تبدیل کنیم و روی سگمنت نمایش دهیم
حالا به این برنامه دقت کنید
نمایش متغیر a روی سگمنت (a 4 رقمی است)
کد:
$regfile = "m8def.dat" تعریف میکرو
$crystal = 1000000 تعریف کریستال
Config Portd = Output تعریف پورت
Config Portc = Output
Dim A As Word متغیر ها رو تعریف کردم
Dim B As Word
Dim C As Word
Dim E As Word
Dim D As Word
Dim F As Byte
Dim G As Byte
Dim H As Byte
Dim I As Byte
'**************************************************
A = 1234 متغیر a هر عددی باشه نمایش داده می شه
Do شروع حلقه
B = A / 10 متغیر b=123
B = B * 10 متغیر b=1230
F = A - b  متغیر f=4
F = Lookup(f , Hadi)  متغیر f به کد باینری تبدیل میشه
C = A / 100  متغیر c=12
C = C * 100  متغیر c=1200
C = A - c  متغیر c=34
G = C / 10 متغیر g=3
G = Lookup(g , Hadi) متغیر g به کد باینری تبدیل میشه
D = A / 1000 متغیر d=1
D = D * 1000 متغیرd=1000
D = A - d متغیر d=234
D = D / 100 متغیر d=2
H = D متغیر d مساوی h میشه
H = Lookup(h , Hadi) متغیر h به کد باینری تبدیل میشه
E = A / 1000 متغیر e=1
I = E متغیر i مساوی e میشه
I = Lookup(i , Hadi) متغیر i به کد باینری تبدیل میشه
'*************************************************
حالا با هخمون روش قبلی نمایش می دیم
Portc.0 = 1
Portd = I
Waitms 4
Portc.0 = 0
Portc.1 = 1
Portd = H
Waitms 4
Portc.1 = 0
Portc.2 = 1
Portd = G
Waitms 4
Portc.2 = 0
Portc.3 = 1
Portd = F
Waitms 4
Portc.3 = 0
Loop
End                                                         'end program
Hadi: اینا هم کد های مربوط به نمایش عدد هستند
Data &B1000000 , &B1111001 , &B0100100 , &B0110000
Data &B0011001 , &B0010010 , &B0000010 , &B1111000
Data &B0000000 , &B0010000
اگر مشکلی بود در خدمتمCool
راستی تا یادم نرفته اینم شماتیک
İmage
موفق باشید;)
پاسخ
#5
اقا هادی ممنونم بابت اموزش های مفیدتون . میشه یکم درمورد سرعت کریستال و نحوه wait ها یعنی زمانشون برامون توضیح بدی ؟ مثلا چرا نباید 8 مگ بذاریم
پاسخ
#6
خواهش می کنم قابلی ندارن:)
یه نکته یادم رفت بگم :D برای این که روی سگمنت نمایش بدیم باید برنامه رو با سرعت بسیار زیاد انجام بشه برای همین مقدار کریستال رو باید بالا بزاریم و مقدار کریستال بستگی به تعداد سگمنت ها داره که باید با آزمون و خطا تعیین بشه و اصولا هم همیشه یک مگ می زاریم و اگر دیدیم که که نور سگمنت ها کم است یا چشمک می زنن باید کریستال رو بالا بیاریم;) مثلا ساعتی من در سایت گذاشتم وقتی که کریستال 1 مگ بود سگمنت ها چشمک می زدن و من چهار برار کردم و گذاشتمش 4000000 که مشکلش حل شد
یه نکته ی مهمی هم است که به هیچ وجه نباید از دستور wait و pulsout و pulsein و getkbd و دستوراتی که برنامه رو متوقف می کنن استفاده کنیم چون سگمنت ها خاموش میشن
موفق باشید;)
پاسخ
#7
سلام استاد
ببخشيد ميشه نحوه كار با دات ماتريس 8*8 رو توضيح بديد
و يه برنامه كوچولو با بسكام براش بنويسد
تو نت چيزي پيدا نكردم
پاسخ
#8
سلام آقا امیر
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

این فایل رو دانلود کنین مدار داخلی یه دات ماتریس رو براتون کشیدم;)
ببخشید این هفته یکم گرفتارم ولی هفته ی آینه حتما آموزش و برنامش رو میذارمAngel
پاسخ
#9
چاكرخاتم
هر موقع دوست داشتيد بزاريد
پاسخ
#10
(29 دي 1391، 04:33 عصر)behnam128ef نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
با عرض سلام و خسته نباشید
من یه مشکل کوچوک دارم اونم اینه که وقتی توی ویژوال بیسیک یک command باز میکنم و میخوام توش تایم بدم مثلا تایپ میکنم waitms 500 نرم افزار ارور میده ! چیکار کنم ؟ آیا باید توی جای دیگه ای برنامم رو بنویسم؟در ضمن ویژوال بیسیک من از نوع portable هست . و اینکه نمیخوام از تایمر خود ویژوال استفاده کنم چون نهایتا 1 میلی ثانیه کمتر رو ساپورت نمیکنه!

سلام :

منظور شما بیسکام هست یا ویژوال بیسیک ! ؟
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: