اگر مدار رو يكي تكميل كنه ، اين وسط شما چيزي ياد نمي گيريد ( پس هيچ وقت همچين چيزي نخوايد )
نمونه ي اين برنامه ها تو سايت زيادهه ، سرچ بزن و در نهايت هر جاييش رو كه مشكل داشتي بپرس ...
فايل ها رو هم ضميمه كنيد بهترهه ...
(۲۴-اسفند-۱۳۹۰, ۲۰:۰۰:۴۰)sharin نوشته است: [ -> ]اگر مدار رو يكي تكميل كنه ، اين وسط شما چيزي ياد نمي گيريد ( پس هيچ وقت همچين چيزي نخوايد )
نمونه ي اين برنامه ها تو سايت زيادهه ، سرچ بزن و در نهايت هر جاييش رو كه مشكل داشتي بپرس ...
فايل ها رو هم ضميمه كنيد بهترهه ...
اين مدار رو با كلي سرچ زدن پيدا كردم.آپلود كردم تو اينترنت كه در دسترس همه باشه
راستش من الكترونيك زياد بلد نيستم.برا من زوده بخوام بسكام رو برنامه نويسي كنم.
تمام برنامه رو آپلود كردم و سنسورlm35 رو وصل كردم تو پروتئوس ولي بسكام بلد نيستم،برا شما آسونه ......
راسياتش ميخواستم اينو درست كنم و تو خونه رو ميز بزارم اگر كمك كنيد ممنون ميشم
رمز فايل : mobah
[
attachment=7193]
شما شروع كنيد ، هر كس بتونه كمك مي كنه ...
براي شروع هم مي توني كتاب 1nafar رو از همين سايت دانلود كني و بسكام رو تا حدودي ياد بگيري ...
وقتي خودت بسازيش ، يه لذت ديگه اي دارهه ...
شروع كن ...
تا من بسازم سال92 هم اومده و رفته. . .
شما كمك كنيد من فعلا سخت افزار بد نيست خوب بهتر بشه بعد كم كم برنامه نويسي بسكامم هم خوب ميكنم.
سخت افزارش رو كه بسازم كم كم ميرم تو برنامه نويسي....
اگر شما اجازه بدين ميخوام عيد نشده اينو درستش كنم
نميخوايد كمك كنيد يه چيز ديكست تا اين كه بخوايد طفره بريد. . .
ناراحت نشي از حرفام
فكر مي كنم متوجه صحبت هام نشديد !!
اينجا فروم هست ، جايي كه به همديگه كمك مي كنيم ، نه اينكه كاراي همديگه رو انجام بديم !!
خود بندهه مخالف گذاشتن لقمه ي جويده شده در دهن دوستان هستم ، چون مي دونم هيچ سودي ندارهه ...
هر كسي ممكنه هر فكري پيش خودش بكنه و يا يكي مثل شما اسمش رو بذارهه طفره و ... ، اين به خودش مربوطه ...
منم اسم اينجور درخواست ها رو مي ذارم تنبلي و خيال بال ...!
نقل قول: نميخوايد كمك كنيد يه چيز ديكست تا اين كه بخوايد طفره بريد. . .
اين جمله واقعا ناجوان مردان ست ...!
همينقدر كه دوستان به پست ها جواب مي دن ، خيلي كار بزرگيه .
مسلما دوستان اينجا بيكار ننشستند تا كار بقيه ي دوستان رو حاضر آماده انجام بدن !!
اينكه قول كمك هم داده شده ، يعني كمك مي كنيم ، همونطور كه در تاپيك هاي ديگه هم مي شه ديد .
پس اگر مي خوايد زودتر نتيجه بگيريد ، زودتر كار رو شروع كنيد ، جايي مشكل داشتيد هم مطرح كنيد .
موفق باشيد.
متوجه شدم .
پس حداقل مدار و بسكام رو نگاه كنيد و بگيد من اول بسازم بعد كم كم برنامه نويسي كنم يا فقط شبيه سازي كنم و ...
مسيري كه من بايد برم چيه اينطور كه شما ميگيد بايد بسكام خوبي بلد باشم درسته؟
من دقيقا بايد چكار كنم
مدار آماده هست بسكامشم دارم خوب كمي تغييرات ميخواد تا هم ساعت رو نمايش بده هم دما رو....چكار كنم
اين شماتيكشه
[
attachment=7192]
اين هم فايل بسكامش
کد:
$regfile = "m8def.dat"
$crystal = 1000000
Config Timer1 = Timer , Prescale = 8
Enable Interrupts
Enable Timer1
On Timer1 Ss
'--------------------------- ds 1307 -----------------------------------------
$lib "ds1307clock.lib"
'configure the scl and sda pins
Config Sda = Portd.7
Config Scl = Portd.6
'address of ds1307
Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
Const Ds1307r = &HD1
'------------------------------ key --------------------------------------------
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input
Config Pinc.4 = Input
Config Portc.5 = Output
Config Portd = Output
Config Portb = Output
Dp Alias Portc.5
Comm Alias Portd
Dataport Alias Portb
'------------------------------------------------------------------------------
Config Debounce = 30
Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
Dim Seco As Byte , Mine As Byte , Hour As Byte , Hm As Byte , S As Bit
'------------------------------------------------------------------------------
Cursor Off
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' start address in 1307
I2cstart ' Generate start code
I2cwbyte Ds1307r ' send address
I2crbyte Seco , Ack 'sec
I2crbyte Mine , Ack ' MINUTES
I2crbyte Hour , Nack ' Hours
I2cstop
Gosub Seco
'-----------------------------
'-------------------------------------------------------------------------------
Main:
Do
Gosub Ds1307
Gosub 24_12
Gosub Chekkey
Loop
'-------------------------------------------------------------------------------
Ds1307:
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' start address in 1307
I2cstart ' Generate start code
I2cwbyte Ds1307r ' send address
I2crbyte Seco , Ack 'sec
I2crbyte Mine , Ack ' MINUTES
I2crbyte Hour , Nack ' Hours
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
If Seco > 59 Then Seco = 0
If Mine > 59 Then Mine = 0
If Hour > 23 Then
Hour = 0
Gosub Seco
End If
Return
'-------------------------------------------------------------------------------
24_12:
If Pinc.4 = 1 Then Gosub Disply_24
If Pinc.4 = 0 Then Gosub Disply_12
Return
'-------------------------------------------------------------------------------
Disply_24:
Comm = &B1110 : Dp = 0 : Hm = Hour / 10 : Gosub 7seg
Comm = &B1101 : Dp = S : Hm = Hour Mod 10 : Gosub 7seg
Comm = &B1011 : Dp = 0 : Hm = Mine / 10 : Gosub 7seg
Comm = &B0111 : Dp = 0 : Hm = Mine Mod 10 : Gosub 7seg
Return
7seg:
Dataport = Lookup(hm , Dat)
Waitms 10
Return
'-------------------------------------------------------------------------------
Disply_12:
If Hour = 0 Then Hour = 12
If Hour > 12 Then Hour = Hour - 12
Comm = &B1110 : Dp = 0 : Hm = Hour / 10 : Gosub 7seg
Comm = &B1101 : Dp = S : Hm = Hour Mod 10 : Gosub 7seg
Comm = &B1011 : Dp = 0 : Hm = Mine / 10 : Gosub 7seg
Comm = &B0111 : Dp = 0 : Hm = Mine Mod 10 : Gosub 7seg
Return
'-------------------------------------------------------------------------------
Chekkey:
Debounce Pinc.1 , 0 , Seco , Sub
Debounce Pinc.2 , 0 , Mine , Sub
Debounce Pinc.3 , 0 , Hour , Sub
Return
'---------------------------------------------
Seco:
Incr Seco
If Seco > 59 Then Seco = 0
Seco = Makebcd(seco)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte Seco
I2cstop
Return
'-------------------------------------
Mine:
Incr Mine
If Mine > 59 Then Mine = 0
Mine = Makebcd(mine)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 1 ' starting address in 1307
I2cwbyte Mine
I2cstop
Return
'-------------------------------------
Hour:
Incr Hour
If Hour > 23 Then Hour = 0
Hour = Makebcd(hour)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 2 ' starting address in 1307
I2cwbyte Hour
I2cstop
Return
'-------------------------------------
Dat:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111
Data &B01100110 , &B01101101 , &B01111101 , &B00000111
Data &B01111111 , &B01101111
Ss:
Toggle S
Return
مراحل به اين صورت هست كه اول مدار رو روي برد بورد مي بنديم و ميكرو رو هم در همين حين برنامه ريزي مي كنيم ...
بعضي از قسمت ها كه مشكل دارن و جواب نمي دن يا مي خوايم تغيير بديم رو اعمال مي كنيم .
براي سخت افزار در سخت افزار مدار و براي نرم افزار در نرم افزار مدار ...
پروژه ي شما ،ساعت + دما + 7seg هست.
يعني حداقل بايد 3 تا پروژه رو انجام بدي و در نهايت با هم تركيبشون كني .
براي شروع base بسكام رو ياد بگير ( هر كس به اندازه ي استفاده اش ياد مي گيرهه )
-براي دما ،نياز داري كار با ADC ميكرو رو ياد بگيري.
براي شروع 7seg ممكنه كمي اذيت كنه و نتوني راحت دركش كني ، جاش مي توني از LCD كاراكتري استفاده كني كه كار باهاش و دستوراتش ساده هست. ( يه پيشنهاد بود ... )
-براي ساعت هم اگر از ds1307 استفاده مي كني ، احتياج داره كه با پروتكل I2C آشنايي داشته باشي ، البته كدهاش هست ، اما بايد بتوني دركش كني.
در نظر داشته باشيد كه برنامه هاي توي اينترنت هم ، اكثرا مشكل دارن و نياز به تغييرات كوچكي براي راه اندازي دارن !!
پس شما اول LCD يا 7seg رو راه بنداز ( پروژه ي 1 )
بعد ADC رو ياد بگير و سنسور دما راه بنداز ( پروژه ي 2 )
بعد يه ديدي نسبت به پروتكل I2c بدست بيار و DS1307 رو راه بنداز ( پروژه ي 3 )
در نهايت اين 3 تا رو با هم تركيب كن و از كارت لذت ببر...
موفق باشي.
ببخشید پارازیت انداختم ها
میشه در مورد اتصال آیسی DS1307 به میکرو و نحوه استفادش یکم توضیح بدین ؟
میدونم که این آیسی برای نمایش ساعت و تاریخ و هست و از مزایاش این هست که با باطری بکاپ میشه زمانش رو حفظ کرد
ولی خوب دستورات لازمش برای اتصال به میکرو چی هست ؟
مثلا وقتی ما با کریستال ساعت کار میکنیم میتونم تو خود میکرو با چند خط دستور یک ساعت بسازیم و نکته مهم این که با این ساعت می تونیم از دستورات شرطی استفاده کنیم(مثلا بگیم وقتی ساعت 10:30 شد PinC.0=1 کن) آیا این دستورات شرطی اگر از آیسی 1307 استفاده کنیم باز هم قابل اجرا هست ؟
مثلا میتونیم به میکرو بگیم که زمان رو مرتباٌ از 1307 بگیر و اگر زمان برابر ساعت 12:00:00 شد فلان کار رو انجام بده ؟
توي همين انجمن هم در موردش بحث شده و مثال نمونه مي تونيد ببينيد ، البته كدها كمي مشكل دارن و طبق معمول احتمال زياد اجرا نمي شن !
براي شروع پروتكل I2c رو ياد بگيريد و بعد مثال هاي نمونه اش رو كه ببينيد نحوه ي ارتباطش رو ياد مي گيريد ( اگر ديتاشيت هم بخونيد كه چه بهتر ).
نقل قول: آیا این دستورات شرطی اگر از آیسی 1307 استفاده کنیم باز هم قابل اجرا هست ؟
مثلا میتونیم به میکرو بگیم که زمان رو مرتباٌ از 1307 بگیر و اگر زمان برابر ساعت 12:00:00 شد فلان کار رو انجام بده ؟
بله مي شه ، كار نشد ندارهه ...