امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
چراغ راهنمايي قابل تنظيم
نویسنده پیام
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #12
RE: چراغ راهنمايي قابل تنظيم
ممنون از لطفت

باشه بازم روش كار مي كنم
۲۳-فروردین-۱۳۹۱, ۱۳:۲۷:۲۹
ارسال‌ها
پاسخ
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #13
RE: چراغ راهنمايي قابل تنظيم
سلام
من آخر برنامتون تغييري دادم تا اونو تو سگمنت 2 تايي ببينم ولي باز نتيجه اي ندارم
ببخشيد واسه شما دردسر شد
تصوير پروتئوس را هم گذاشتم

کد php:
$regfile "m16def.dat"
$crystal 8000000
Config Portb 
Output
Config Kbd 
Portd Debounce 100 Delay 1
Dim A 
As Byte
Dim B1 
As Byte
Dim B2 
As Byte
Dim Num 
As Byte
Dim B 
As Byte
Dim C 
As Byte
      
Do
     Goto 
Adad1
     Loop
           End
           Adad1
:

    
Getkbd()
    If 
15 Then
    
Goto Adad1
    End 
If
    
Lookup(W)
Waitms 300
Goto Adad2
 Adad2
:
    
Getkbd()
    If 
15 Then
    
Goto Adad2
    End 
If
    
B1 Lookup(W)
Waitms 300
Goto Sett
'--------------------------
B = B * 10
B1 = B + B1
'
--------------------------
 
Sett:
    
Getkbd()
    If 
15 Then
    
Goto Sett
    End 
If

Waitms 100
If B2 12 Then
Num 
B1
Goto Prog1
Else
Goto 
Sett
End 
If

Prog1:
     
Makebcd(num)
Portb C

End
    W
:
   
Data 1 99 99 99 99 99 99 


فایل‌(های) پیوست شده بندانگشتی (ها)
   
۲۴-فروردین-۱۳۹۱, ۲۱:۰۸:۰۹
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #14
RE: چراغ راهنمايي قابل تنظيم
برنامتون اشكال زياد دارهه ...

خط هاي برنامه رو دونه دونه چك كنيد ...
1- end بايد آخرين خط برنامه باشه ، مگر اينكه از تابع يا sub روتين استفاده كرده باشيد.
2-
کد:
B = B * 10
B1 = B + B1
اين خط ها اجرا نمي شن ، به علت اينكه خط قبل از اونها Goto Sett هست.
حاصل B1+B رو هم در B2 بريزيد تا يكان كه B1 هست مقدارش از دست نرهه . . .
3-جدول lookup يا همومن ليبل w رو متناسب باكارتون مقدار دهي كرديد؟
4-اول سعي كنيد يك عدد 2 رقمي رو روي 7seg نمايش بديد. بعد كه از اون جواب گرفتيد ، قاطي پروژه ي فعلي تون كنيد.
كدي كه براي نمايش روي 7seg زديد درست نيست.
روش رفرش رو چند وقت پيش توضيح دادم ،‌يه سرچي بزنيد .
شما در هر لحظه توسط 2 پايه ي كنترلي 7seg تنها به يكي از 2 سمت 7seg مقدار مي ديد .
در لحظه ي اول مثلا مقدار b رو كه عدد دهگان هست روي 7seg سمت چپ ، و در لحظه ي بعد b1 كه عدد يكان هست رو روي 7seg سمت راست مي ذاريد و در هر ثانيه اين كار بايد بيش از 24 بار صورت بگيرد تا چشم ما هر دو عدد رو يكجا روشن ببينه ...
۲۴-فروردین-۱۳۹۱, ۲۲:۴۲:۲۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : navid_sa_198
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #15
RE: چراغ راهنمايي قابل تنظيم
سلام

من يه كارايي كردم الان شماره ها رو وارد ميكنم و بعد زدن ستاره شروع به شمردن ميكنه درست هم ميشماره ولي درست اعداد را رو سگمنت نشون نميده مثلا بار اول 1 و بار دوم 2 را وارد ميكنم 12 ثانيه چراغ را قرمز ميكنه ولي اون عدد هايي كه بايد نشون نميده ويه چيزاي دري وري نشون ميده

فايل هاش را گذاشتم يه زحمت بكش خودت نگاش كن مثل اينكه دارم كم كم نتيجه مي گيرم
کد php:
$regfile "m16def.dat"
$crystal 8000000
Config Portb 
Output
Config Kbd 
Portd Debounce 100 Delay 1
Dim A 
As Byte
Dim B1 
As Byte
Dim B2 
As Byte
Dim Num 
As Byte
Dim B 
As Byte
Dim C 
As Byte

Dim I 
As Byte


Ddrb 
= &HFF
Portb 
0

Ddrc 
= &H07
Portc 
0

 
Goto Adad1

 Adad1
:

 
Getkbd()
 If 
15 Then
 
Goto Adad1
 End 
If
 
Lookup(W)
Waitms 300
Goto Adad2
 Adad2
:
 
Getkbd()
 If 
15 Then
 
Goto Adad2
 End 
If
 
B1 Lookup(W)
Waitms 300

'--------------------------
B = B * 10
B1 = B + B1
'
--------------------------
Goto 
Sett
 Sett
:
 
Getkbd()
 If 
15 Then
 
Goto Sett
 End 
If

Waitms 100
If 12 Then
Num 
B1
Goto Prog1
Else
Goto 
Sett
End 
If

Prog1:


Do
 
Set Portc.0
 
For Num To 0 Step -1
 Portb 
Makebcd(i)
 
Waitms 1000
 Next I
 Reset Portc.0

 Set Portc.1
 Portb 
0
 Waitms 2000
 Reset Portc.1


 Set Portc.2
 
For Num To 0 Step -1
 Portb 
Makebcd(i)
 
Waitms 1000
 Next I
 Reset Portc.2

Loop

End
 W
:
 
Data 1 99 99 99 99 99 99 


فایل‌(های) پیوست شده بندانگشتی (ها)
       
(آخرین ویرایش در این ارسال: ۲۶-فروردین-۱۳۹۱, ۱۸:۴۱:۴۵، توسط navid_sa_198.)
۲۶-فروردین-۱۳۹۱, ۱۸:۱۸:۴۴
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #16
RE: چراغ راهنمايي قابل تنظيم
نقل قول: Do
Set Portc.0
For I = Num To 0 Step -1
Portb = Makebcd(i)
Waitms 1000
Next I
Reset Portc.0

Set Portc.1
Portb = 0
Waitms 2000
Reset Portc.1


Set Portc.2
For I = Num To 0 Step -1
Portb = Makebcd(i)
Waitms 1000
Next I
Reset Portc.2

Loop

در اين تيكه كد ، يه سري اشتباهات واضح هست .
1-مثلا ، قرار شد در هر ثانيه بيش از 24 بار هر كدوم از سمت هاي 7seg رو مقدار دهي كنيد.
الان شمادو بار 1000 ميلي ثانيه + 2000 ميلي ثانيه = 4 ثانيه گذاشتيد !!!!!!
يعني در 1 ثانيه 1 بار هم 2 سمت مقدار دهي نمي شه ...!!!
waitms ها رو خيلي كم تر بگيريد.
2- هر سمت سگمنت مي تونه عددهاي 0 تا 9 رو نشان بده. شما اول اومدي يه سمت رو فعال كردي و در يك حلقه ي for مقدار num رو كه مثلا 30 هست رو تا 0 شدنش يه جا به همون دادي !!!
جدا از باقيه مسائل ، عدد 30 رو چطور مي شه روي يك سمت 7seg نشون داد ؟؟؟!!!
--------------
براي عدد 30 ، سمت چپ رو فعال كني و 3 رو بايد بذاري روي سمت چپ ، بعد از يه زمان خيلي كوتاه ، سريع بايد سمت راست رو فعال كني و 0 رو بذاري روي سمت راست، بعد از يك مدت كوتاه ، دوباره بايد سمت چپ رو فعال كني و 3 رو بذاري روي سمت چپ و بعد از يك مدت كوتاه دوباره سمت راست رو فعال كني و 0 رو بذاري روي سمت راست و ... بيش از 24 بار اين عمليات رو در 1 ثانيه بايستي انجام بدي ...
وقتي يك ثانيه گذشت ، مي ري سراغ عدد 29 . باز مثل قبل اين كار رو انجام مي دي ...
۲۷-فروردین-۱۳۹۱, ۰۹:۲۷:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : navid_sa_198
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #17
RE: چراغ راهنمايي قابل تنظيم
سلام
اين 1 و 2 ثانيه واسه شمارش هستش اگه اينارو تغيير بدم فاصله بين ثانيه ها كم ميشه مثلا12 را تو 6 ثانيه تا 0 ميشماره
۲۷-فروردین-۱۳۹۱, ۱۵:۵۵:۲۱
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #18
RE: چراغ راهنمايي قابل تنظيم
براي درست كردن زمان 1 ثانيه از تايمر استفاده كنيد.
يه برنامه ي كاملش رو چند روز پيش تو سايت گذاشتم.
اسم تاپيكش تايمر0 بود فكر كنم ،‌تو بخش ميكرو يا AVR مي تونيد پيداش كنيد.
۲۷-فروردین-۱۳۹۱, ۱۷:۵۳:۵۳
وب سایت ارسال‌ها
پاسخ
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #19
RE: چراغ راهنمايي قابل تنظيم
سلام
در مورد تايمر من هنوز چيزي بلد نيستم ( تازه اين ترم ميكرو دارم )
ولي مشكل نشان دادن رو سگمنت را حل كردم
بين ميكرو و سگمنت از آيسي 7448 استفاده كردم الان تقريبا پروزه ام حاضره البته با كمك شما
نميدونم چطوري ازتون تشكر كنم خيلي چيز ها ياد گرفتم هر چند هنوز تازه اول راهم


راستي هنوز 4 روز وقت دارم به سرم زده حالت چشمك زن و 3 زمانه را هم اضافه كنمLaugh

بازم ممنون
۲۸-فروردین-۱۳۹۱, ۲۳:۲۳:۲۴
ارسال‌ها
پاسخ
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #20
RE: چراغ راهنمايي قابل تنظيم
سلام
بستن مدار رو برد را نگه داشتم دقيقه نود الان يه مشكلي دارم ممنون ميشم بازم كمكم كني

مدار در پروتئوس جواب ميده ولي وقتي بستمش تموم قسمتها كار ميكنه به جز ledها كه بعضي هاشون روشن خاموش نميشن
با ولت متر كه خود ميكرو را تست كردم اون پورت هايي كه اين ledها وصلن هميشه ولتاز 4.7 دارن حتي وقتي كه بايد روشن خاموش بشن (ولتاز اين پورت ها صفر نميشه )ولي با وجود 4.7 led را روشن نميكنه
اتصالت رو هم چك كردم يه بار هم تو برنامه جاي پورتها را عوض كردم اين بار يه چند تاي ديگه ايجوري شدن
ممنون ميشم زود كمكم كنين فردا بايد تحويل بدم
۰۱-اردیبهشت-۱۳۹۱, ۲۰:۳۵:۲۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #21
RE: چراغ راهنمايي قابل تنظيم
LED رو مستقيم به پورت نزنيد . يه مقاومت بين 330 اهم تا 1k باهاش سري كنيد تا جريان رو محدود كنه و پورت هاي ميكرو آسيب نبينه ...
از چه ميكرويي استفاده مي كني ؟
مشكلي كه گفتيد احيانا در پورت C نيست ؟
اگر هست در قسمت فيوز بيت ها JTAG رو disable كنيد.
اينطوري پورت C فعال مي شه ...
باقيه فيوزبيت ها رو اگر آشنايي نداريد تغيير نديد ...

موفق باشيد.
۰۱-اردیبهشت-۱۳۹۱, ۲۲:۳۴:۳۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : navid_sa_198
navid_sa_198 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۹۱

تشکرها : 12
( 1 تشکر در 1 ارسال )
ارسال: #22
RE: چراغ راهنمايي قابل تنظيم
آقا تشكر تشكر تشكر
jtag را غيرفعال كردم درست شد
(آخرین ویرایش در این ارسال: ۰۱-اردیبهشت-۱۳۹۱, ۲۳:۵۶:۴۹، توسط navid_sa_198.)
۰۱-اردیبهشت-۱۳۹۱, ۲۳:۵۰:۴۳
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question راهنمايي براي پروتكل SPI sharin 14 17,505 ۱۴-مهر-۱۳۹۵, ۱۴:۴۰:۲۰
آخرین ارسال: hamid_1980
  دانلود نرم افزار اوقات شرعی(قابل استفاده برای بسکام) sina6479 1 2,402 ۰۶-تير-۱۳۹۵, ۰۹:۵۶:۵۲
آخرین ارسال: mostafanet

پرش به انجمن:


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

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS