ايران ويج

نسخه‌ی کامل: درخواست تایمر برای چاپ سیلک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام

من میخام یه تایمر دورقمی با سون سگمت درست کنم که وقتی بهش یه عدد دورقمی دادیم تا اون عدد بشماره و بعد مثلا یه LED رو روشن کنه .

( مثلا اگه بهش عدد 12 دائیم ، تا 12 ثانیه بشماره و بعد دیود روشن بشه )

--------------------------------------------------------------------------------

یه نمونه شمارنده ( تایمر ) با سون سگمنت ملتی پلکس شده 3تایی تو کتاب علی کاهه بود ولی نتونستم ازش سر در بیارم !

کسی هست که برام توضیحش بده ؟

راستش میخام ازش برای چاپ سیلک استفاده کنم و اگه کسی بتونه کل برنامه رو برام بنویسه واقعا ممنون میشم ... ( به هر حال توضیحات کامل رو براتون مینویسم تا اگه کسی تونست برنامه رو برام بنویسه )

اساس چاپ سیلک نوردهی هستش ( نور فرابنفش ) و فقط باید یه توری ابریشمی رو به ماده حساس به نور مالید و بعد همراه با طرح بهش نوردهی کرد تا شابلون درست بشه بعد کار تمومه .

اما تایمر : 3تا شستی برای تنظیمات باید داشته باشه ، یکی برای رفتن به قسمت تنظیمات و ذخیره کردن عددد ، دومی برای کم کردن عدد و سومی هم برای زیاد کردن عدد ( < SET > )

نکته : عدد وارد شده باید ماندگار باشه تا برای دفعات بعدی نوردهی نیازی به وارد کردنش نباشه .

شروع کار تایمر باید با فشار یه شستی دیگه باشه که همزمان باشروع شمارگیری یه رله هم وصل بشه تا باهاش لامپ های فرابنفش روشن بشن ( مثلا همراهش یه بیزر یا یه LED هم روشن بشه بهتره ) ، بعد از پایان زمان وارد شده هم یه LED دیگه روشن بشه که نشانگر پایان زمان نوردهی هستش .
( اول لامپ ها خاموش بشن و بعد چراغ پایان کار روشن بشه )

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

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


--------------------------------------------------------------------------------
خلاصه :

تنظیمات :
1) رفتن با تنظیمات با شستی SET
2) تنظیم عدد با شستی های + و –
3) ذخیره عدد با شستی SET


عملکرد :

1) فشار شستی استارت
2) چک شود در دستگاه باز است یا خیر ( میکروسوئیچ در )
3) اگر در باز بود سون سگمنت خاموش شود و یا چشمک بزند ( عدد تنظیمی روی سون سگمنت ها شروع به چشمک زدن بکنه )
4) اگر در بسته بود ، ابتدا رله لامپها وصل شود و بعد عدد روی سون سگمنت شروع به کم شدن بکنن
5) پس از پایان زمانگیری ، ابتدا لامپ ها خاموش شده و بعد به LED روشن می شه
6) در صورتی که شستی Reset فشرده شد ( متصل به وقفه میکروکنترلر ) ، رله لامپ ها قطع بشه
خوب مهندس خودت چقدر رو شروع کردی ؟!؟
سلام

تا الآن داشتم بدنه و قسمت لامپ های فرابنفشش رو می بستم ، و برای تستش هم از یه تایمر مکانیکی 5 سیمه لباسشویی دودور استفاده کردم و جواب هم گرفتم ولی زمانش چندان دقیق نبود ... !

یه نمونه ساده هم با LCD درست کردم که توش از دستورات تاخیری برای زمان استفاده کردم ولی متاسفانه دوتا مشکل داشت 1) دقت
2) نویز باعت بهم ریختن نوشته های LCD میشه

ولی با تایمر های نجومی ( سون سگمنتی ) خوب جواب میده ولی این تایمرا گرانن ( برای مدار فرمان هستن )

تا الآن با تایمر میکرو کار نکردم چون نیازی نداشتم بهش ، بجای سون سگمنت هم از LCD استفاده می کردم و براهمین نتونستم از اون مثال کتاب کاهه سر در بیارم ... !!!!!!

توی جعبه جای ثابت زیادی ندارم چون 2تا سوپورت متحرک داره برا همینم میخام از سون سگمنت استفاده کنم تا هم این مشکل حل بشه و هم با نمونه برنامه کاربا سون سگمنت رو یاد بگیرم

خب ... ؟

( راستی ، از چاپ سیلک برای چاپ بوردهای الکترونیکی استفاده می کنم )
با سلام

از بین دوستان کسی نیست بتونه این برنامه رو بنویسه ... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هنوز منتظرم ؟؟؟؟؟

اگه نمیشه حداقل یکی بگه باید از کجا شروع کنم ... !
دوست عزیز
اگر میخواهی با میکرو کار کنی توصیه میکنم بیای از میکروکنترلر AVR استفاده کنی برای کار شما یه atmega8 شاید خیلی زیاد باشه که قیمتش هم حدود 12000 ریال بقیه قطعات رو مدارشم به قولی نخود و کشمش.
ببین من به کمک بعضی از دوستان این اینجمن راهنمایی شدم اما بازم کلی بدرودیوار خوردم. پس آخر کار رو بهت میگم که خیلی سردرگم نشی.
برو خیابان جمهوری نرسیده به سی تیر پاساژ عباسیان . اونجا یه پروگرامر AVRASP بگیر تا قدم اول که خود برنامه و پروگرمر باشه رو حل کنی بعد یه تریاک z0607 و درایور moc3021 بگیر چون نمیدون تا کجای کار پیش رفتی بقیه رو بعد از جوابت میگم.
سلام

خیلی وقته که سر نزدم چون دیگه امیدی نبود که کسی جواب بده ... !

دوست عزیز ، من با سخت افزارش مشکلی ندارم و ممشکلم با نرم افزارشه

حالا میشه درموردش یه کمکی کنین ... ؟
سلام
اگه از ال سی دی استفاده کنی یکم کار نرم افزارشم ساده تر میشه. سون سگمنتها مثلا اگه سه رقمی باشن باید دائما روشن و خاموش بشن تو ال سی دی اینا لازم نیست.
اگه بخوای با ال سی دی کار کنی که همین توصیه رو میکنم و ارزونتر هم برات تموم میشه و حتی میتونی خطاهای احتمالی رو ک نویسی کنی و روی او نشون بدی بگو تا کد برنامشو برات بزارم.
من حدود یه هفته ده روز پیش یه فایل محتوی برنامه و شماتیک راه اندازی سون سگمنت گذاشتم.


سرعت اینترنتم انقدر کمه که نمی تونم براتون پیدا کنم.
اینم برنامه تایمر معمولی با دو تا سون سگمنت !

کد php:
$regfile "m16def.dat" $crystal 1000000

Dim Timeoff 
As Byte As Byte Secticoff As Word As Byte
Dim Z 
As Byte As Word As Word Out_1 As Word Out_2 As Word
Dim Timeon 
As Byte Secticon As Word Ftime As Byte Fff As Byte

Ddrb 
Ddrd 255 Ddrc 255 Portb 15

Sw_up Alias Pinb.0 
Sw_down Alias Pinb.1
Sw_stop Alias Pinb.2 
Sw_start Alias Pinb.3
Rle Alias Portc.0 
Seg1 Alias Portc.4 Seg2 Alias Portc.5

Config Timer2 
Timer Async On Prescale 128
Enable Interrupts 
Enable Timer2 On Timer2 Secticoff Stop Timer2

Config Timer0 
Timer Prescale 64 On Timer0 Scan Enable Timer0

Timeoff 
Timeon Start Timer0

'=============================================================================== KHNADAN KELIDHA BARAY TANZIM ZAMAN KHAMOSH MANDAN

Cls

Setoff:
   Stop Timer2 : Reset Rle : Fff = 1
Do
   Debounce Sw_up , 0 , Upoff , Gosub
   Debounce Sw_down , 0 , Downoff , Gosub
   Debounce Sw_start , 0 , Seton
Loop

'
=============================================================================== AFZAYESH KAHESH ZAMAN KHAMOSH MANADAN

Upoff
:
   
Incr Timeoff : If Timeoff 100 Then Timeoff 1
   Secticoff 
Timeoff 60
Return

Downoff:
   
Decr Timeoff : If Timeoff 0 Then Timeoff 99
   Secticoff 
Timeoff 60
Return

'=============================================================================== KHNADAN KELIDHA BARAY TANZIM ZAMAN ROSHAN MANDAN

Seton:
Do
   Debounce Sw_up , 0 , Upon , Gosub
   Debounce Sw_down , 0 , Downon , Gosub
   Debounce Sw_start , 0 , Star
Loop

'
=============================================================================== AFZAYESH KAHESH ZAMAN ROSHAN MANADAN

Upon
:
   
Incr Timeon : If Timeon 100 Then Timeon 1
   Secticon 
Timeon 60
Return

Downon:
   
Decr Timeon : If Timeon 0 Then Timeon 99
   Secticon 
Timeon 60
Return

'=============================================================================== MONTAZER MANDAN DAR ZAMAN KHAMOSH MANDAN

Star:
   Ftime = 1 : Fff = 1 : Start Timer2 : Reset Rle
   Do
      Debounce Sw_stop , 0 , Setoff
   Loop Until Ftime = 2

'
=============================================================================== MONTAZER MANDAN DAR ZAMAN ROSHAN MANDAN

   Set Rle 
Fff 2
   
Do
      
Debounce Sw_stop Setoff
   Loop Until Ftime 
3
   
Goto Setoff

'=============================================================================== VAGHFEH TIMER2 KE ZAMAN 2 SANIYEH RA MIDAHAD

Secticoff:
   If Ftime = 1 Then :
      Decr Secticoff : If Secticoff = 0 Then Ftime = 2
   Elseif Ftime = 2 Then :
      Decr Secticon : If Secticon = 0 Then Ftime = 3
   End If
Return

'
=============================================================================== SCAN VA NAMYESH ETELAAT

Scan
:
   
Incr B
   
If Fff 1 Then :
      
Secticoff 59 60
      Out_1 
10 Out_1 10 W
   
Elseif Fff 2 Then :
      
Secticon 59 60
      Out_1 
10 Out_1 10 W
   End 
If

   If 
1 Then :
      
Lookup(out_1 Number) : Reset Seg2 Set Seg1
   
Elseif 2 Then :
      
Lookup(out_2 Number) : Reset Seg1 Set Seg2
   
Else : 0
   End 
If

   
Portd Z
Return

Number:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110 , &B01101101 _
               
, &B01111101 , &B00000111 , &B01111111 , &B01101111 


[تصویر:  1261956623.png]
با سلام

با تشکر از همه دوستانی که جواب دادن و واقعا شرمنده شدم

دوست عزیز برنامه ای که نوشتی یکم برا من پیچیده هستش و اگه اجازه بدی قدم به قدم جلو بریم ... ممکنه ؟؟

اگه قبوله ...... بذار اول یه قسمت نمایش رو درست کنم و بع بریم سراغ تایمر و وقفه ها و ...

من یه نمونه برنامه نوشتم که قراره بعنوان یک شمارنده از 0 تا 99 کار کنه ولی نمیدونم اینطور که نوشتم جواب میده یا نه !
(هر چند اعداد رو جدا جدا نشون میده ولی درکش برام ساده تر هستش )
( البته هدف از این قسمت فقط نمایش اعداد روی 7SEG هستش و بعد از این قراره برم سراغ قسمت های بعدیش !!! )

اساسش اینطوریه که 3تا متغییر تعریف کردم ( A – Yekan – Dahga )
مقدار A رو افزایش میدم و بعد تقسیم بر 10 میکنم و میریزمش توی متغییر دهگان و بعد باقیمانده تقسیم رو هم میریزم در متغییر یکان

هر سون سگمت رو به یه 7447 وصل کردم و ورودی های اونارو هم بستم روی پورت B میکرو حالا میخام بدونم که این سیستم درست کار میکنه ؟؟؟

( یعنی در ابتدا 00 رو نشان بده ، بعد شروع کنه به شمارش تا 99 )

کد php:
$regfile "m8def.dat"
$crystal 8000000

Dim A 
As Byte
Dim Yekan 
As Byte
Dim Dahgan 
As Byte

Portb.0 
Yekan.0 Portb.1 Yekan.1 Portb.2 Yekan.2 Portb.3 Yekan.3
Portb.7 
Dahgan.0 Portb.6 Dahgan.1 Portb.5 Dahgan.2 Portb.4 Dahgan.3

DO

Incr A
Dahgan 
10
Yekan 
A Mod 10
Wait 1

Loop


Wait 1

End 
(۰۶-دى-۱۳۸۸, ۰۰:۴۶:۳۹)ilgar نوشته است: [ -> ]من حدود یه هفته ده روز پیش یه فایل محتوی برنامه و شماتیک راه اندازی سون سگمنت گذاشتم.


سرعت اینترنتم انقدر کمه که نمی تونم براتون پیدا کنم.

لطف شما به بنده بود

http://forum.iranled.com/showthread.php?...#pid110346
صفحه‌ها: 1 2