با سلام اگر که بخواهیم به جای یک پورت دیتا کا اطلاعات را به سون سگمنت ارسال می کنه از چند پین در پورت های مختلف استفاده کنیم چه راه حلی داره ؟
اطلاعیه
Collapse
No announcement yet.
نحوه ارتباط پین های مختلف به ۷ سگمنت
Collapse
X
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
سلام
وقت بخیر
نوشته اصلی توسط Raymandsystem نمایش پست هابا سلام اگر که بخواهیم به جای یک پورت دیتا کا اطلاعات را به سون سگمنت ارسال می کنه از چند پین در پورت های مختلف استفاده کنیم چه راه حلی داره ؟
با احترام
97/10/7جدیدترین ویرایش توسط amir_moayeri; ۱۱:۰۰ ۱۳۹۷/۱۰/۰۸.
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
سلام
وقت بخیر
نوشته اصلی توسط Raymandsystem نمایش پست هابا سلام و تشکر فراوان منظورم اینه اگر پین خالی باشه ولی در پورت های مختلف باشه راه حل چه طوریه رو شما برای زمانی هست که پین ها کم هستند با تشکر فراوان
با احترام
97/10/8
دیدگاه
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
سلام
وقت بخیر
نوشته اصلی توسط Raymandsystem نمایش پست هابا سلام مجدد این نوع طراحی مد نظرم هست البته بدون هیچگونه واسطه و گیتی فقط راه اندازی مستقیم با میروکنترلر همچنین دو پایه برای مولتی پلکی در نظر گرفته می شه در این حالت چطوری دیتا را از طریق تابع در کدویژن ارسال کنیم
متوجه این قسمت از فرمایشتون (همچنین دو پایه برای مولتی پلکی ) نشدم !!
با کدویژن کار نکردم .
راه اندازی این مدار ( شمارنده 0 تا 9 ) با بسکام انجام شده .
با احترام
97/10/8
دیدگاه
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
سلام
وقت بخیر
نوشته اصلی توسط Raymandsystem نمایش پست هابا سلام و عرض تشکر فراوان شما برنامه بسکام برای راه اندازی نقشه دوم
دارید اگر هست می شه بفرستید
با تشکر و عرض احترام
'========= by Amir_Moayeri ==== 97-10-8
$regfile = "m8def.dat"
$crystal = 1000000
Dim Seg As Byte
A_seg Alias Seg.0
B_seg Alias Seg.1
C_seg Alias Seg.2
D_seg Alias Seg.3
E_seg Alias Seg.4
F_seg Alias Seg.5
G_seg Alias Seg.6
'+++++++ segment display output enable +++++
Config Portd.7 = Output
O_en Alias Portd.7
'=======pin to segment =======
Config Portc.5 = Output
A_dis Alias Portc.5
Config Portd.3 = Output
B_dis Alias Portd.3
Config Portd.0 = Output
C_dis Alias Portd.0
Config Portb.0 = Output
D_dis Alias Portb.0
Config Portc.1 = Output
E_dis Alias Portc.1
Config Portb.2 = Output
F_dis Alias Portb.2
Config Portc.4 = Output
G_dis Alias Portc.4
seg = 0
' ring counter 0 to 9
Strt:
'========= 0 =======
Seg = &B00111111
Gosub Disply
'========= 1 =======
Seg = &B00000110
Gosub Disply
'========= 2 =======
Seg = &B01011011
Gosub Disply
'========= 3 =======
Seg = &B01001111
Gosub Disply
'========= 4 =======
Seg = &B01100110
Gosub Disply
'========= 5 =======
Seg = &B01101101
Gosub Disply
'========= 6 =======
Seg = &B11111101
Gosub Disply
'========= 7 =======
Seg = &B00100111
Gosub Disply
'========= 8 =======
Seg = &B11111111
Gosub Disply
'========= 9 =======
Seg = &B11101111
Gosub Disply
jmp strt
End
'============= display =========
Disply:
A_dis = A_seg
B_dis = B_seg
C_dis = C_seg
D_dis = D_seg
E_dis = E_seg
F_dis = F_seg
G_dis = G_seg
Set O_en
Waitms 500
Reset O_en
Waitms 1
Return
با احترام
97/10/8
- تشکرها 1
دیدگاه
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
با عرض سلام و عرض خسته نباشید خدمت استاد محترم
در برنامه ساعت دیجیتال سگمنت دار کد دیتا برای پایه هایی که مشخص کرده ام نوشته شده
Config Portb = Output
Config Portd = Output
ترتیب پین های متصل به سگمنت به صورت زیر است
portd.0 > e
portd.1 > d
portd.2 > c
portd.3 > b
portd.4 > a
portd.5 > f
portd.6 > g
portd.7 > h
و جدول دیتا هم به شکل زیر
'================================================= ===========
Number:
Data &B01000000 , &B01110011 , &B00100100 , &B00100001 , &B00010011 , _
&B00001001 , &B00001000 , &B01100011 , &B00000000 , &B00000001 , &B11111111
'================================================= ===========
بنده میخوام ترتیب پایه به صورت زیر باشد
portd.1 > a
portd.2 > c
portd.3 > d
portd.4 > e
portd.5 > f
portd.6 > g
portd.7 > h
استاد در ضمن در حالت اول کدها به چه صورت خواهد بود یعنی نویسنده برنامه چطوری کدها رو نوشته میخوام یاد بگیرم و از روی اون چطوری کدها رو تغییر بدم تا به حالت دوم در بیاد
قسمتی از برنامه نوشته شده مورد نظر مربوط به این قسمت
S1 = 0 : F = _hour
While F >= 10
F = F -10 : Incr S1
Wend
S2 = F
S3 = 0 : F = _min
While F >= 10
F = F -10 : Incr S3
Wend
S4 = F
D1 = 0 : F = Sh_month
While F >= 10
F = F -10 : Incr D1
Wend
D2 = F
D3 = 0 : F = Sh_day
While F >= 10
F = F -10 : Incr D3
Wend
D4 = F
Select Case Dat
'----------------------------------------------------
Case 0
For I = 1 To 200
Lablehour:
Dat = 0
Portb.0 = Z : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portd = Lookup(s1 , Number)
Portb.4 = 1
Waitms 1
Portb.0 = 0 : Portb.1 = Z : Portb.2 = 0 : Portb.3 = 0
Portd = Lookup(s2 , Number)
Portb.4 = N
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = Z : Portb.3 = 0
Portd = Lookup(s3 , Number)
Portb.4 = 1
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = Z
Portd = Lookup(s4 , Number)
Portb.4 = 1
Waitms 1
Case 1
For I = 1 To 200
Labledate:
Dat = 1
Portb.0 = Z : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portd = Lookup(d1 , Number)
Portb.4 = 1
Waitms 1
Portb.0 = 0 : Portb.1 = Z : Portb.2 = 0 : Portb.3 = 0
Portd = Lookup(d2 , Number)
Portb.4 = N1
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = Z : Portb.3 = 0
Portd = Lookup(d3 , Number)
Portb.4 = 1
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = Z
Portd = Lookup(d4 , Number)
Portb.4 = 1
Waitms 1
If Setkey = 0 And Dat = 1 Then
Waitms 350
Gosub Setdate
Elseif Chang = 0 Then
Waitms 350
Goto Labletemp
End If
Next I
از شما سپاسگزارم
در صورت امکان مرا راهنمایی بفرمایید
دیدگاه
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
سلام خدمت دوستان
کد ناخوانا هستش(بهم ریخته میشه یجورایی) لطفا فایل بسکامش رو تو سایت مثلا پیکو فایل آپلود کنین تا جواب بدیم
یا که اونو توی تگ PHP قرار بدین
این برنامه ی مربوط به ساعت دیجیتاله که خودتون هم ذکر کردین
اما برای پایه ها چون مولتی پلکس هستن :
Portb.0 = Z : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
از اینا گذاشته و یعنی هر دفعه یه سگمنت رو روشن می کنه و عدد مخصوصش رو نشون می ده و می ره سراغ بعدی
یعنی همون مولتی پلکس
یکم در مورد سون سگمنت های مولتی پلکس تحقیق کنین به نتایج خیلی خوبی می رسین
شما اگه می خواین پایه ها رو تغییر بدین باید :
برای a b c d e f g که همون تنظیمات خودتون خوبه
برای انتخاب سون سگمنت ( چون مولتی پلکسن) باید Portb.0 : Portb.1 : Portb.2 : Portb.3 اینا رو تنظیم کنی که چه پایه ای باشن که به طور دیفالت نویسنده ی کد روی پورت بی از 0 تا 3 یعنی 4 تا پایه تنظیم شده
ولی اگر می خواین تغییر بدین حواستون به
و جدول دیتا هم به شکل زیر
'================================================= ===========
Number:
Data &B01000000 , &B01110011 , &B00100100 , &B00100001 , &B00010011 , _
&B00001001 , &B00001000 , &B01100011 , &B00000000 , &B00000001 , &B11111111
'================================================= ===========
اینا باشه چون با ترتیب پایه ها ی گفته شده نوشته شده به باینری هم نوشته شده
یعنی با ارزش ترین بیت که کنار B نوشته شده همون آخرین پایه پورت D یعنی D.7 و برای سگمنت H هستش و وضعیت اونو تو هنگام صفر و یک شدن پورت تعیین می کنه
بقیه هم به همین ترتیب پیدا کن و اعداد یک و دو و سه الی 9 رو باینریش رو با پایه های دلخواهی خودت بدست بیار
اگر سختت بود بگو تا برات بدست بیارم ( البته اول خودت یکم تلاش کن اگه نتونستی بگو)(تنبلی نکنی ها)
امیدوارم موفق و پیروز باشین یا حقهمیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
تایپیک های من:
حل تمام مشکلات atmega128a (eca.ir)
آموزش کار با سایت (eca.ir)
دیدگاه
-
پاسخ : نحوه ارتباط پین های مختلف به ۷ سگمنت
استاد بی نهایت سپاسگزارم
عرض به خدمت شما برنامه ساعت رو طبق فرمایش شما اگه یه پورت رو خروجی دیتا قرار بدم میتونم بنویسم در این روش چون ساعت هم تقویم داره و هم دماسنج برای تنظیم ساعت و تقویم میخوام سه کلید باشه یکی ست و دو تای دیگه برای کم و زیاد کردن مقدار عددی ساعت و دقیقه و همچنین روز و ماه
اگر تنها ساعت باشه میتونم برنامه سه کلید رو بنویسم ولی در حالت بالایی نمی تونم کاری بکنم اون برنامه ساعتی که از اینترنت گرفته ام تنظیمش خیلی عالیه و به این صورت هستش که زمانی که کلید ست رو میزنیم یکبار دقیقه پاک میشه ساعت رو تنظیم میکنیم و یکبار هم ساعت پاک میشه دقیقه رو تنظیم میکنیم و برای روز و ماه هم همینطور
در این برنامه پایه ها رو از پورت دی انتخاب کرده ولی به ترتیب نیست
در ضمن اگه تونستم فایل بسکامش رو جایی آپلود کنم حتما لینکش را قرار میدم
باز هم از لطف شما سپاسگزارم
دیدگاه
دیدگاه