بنام دانای مطلق
با سلام و عرض خسته نباشید خدمت همه اساتید ، سروران و همراهان عزیز
این اولین پست منه امیدوارم که مفید واقع بشه و خیلی خوشحال میشم که عزیزان با راهنمایی ها ، انتقادات و پیشنهادهاشون بنده رو در این مسیر یاری کنند .
مطلبی که قصد دارم در اینجا شرح بدم همانطور که از عنوانش مشخص هست راه اندازی ماژول سون سگمنت 4 تایی مبتنی بر تراشه TM1637 در بسکام هست . کتابخانه های این ماژول در آردینو موجود هست ولی متاسفانه در بسکام نه . در ادامه با ما باشید تا راه اندازی ماژول TM1637 را یاد بگیرید.
خب اصل مطلب
اگر عزیزان دیتاشیت تراشه TM1637 رو مطالعه کرده باشند متوجه شدند که این تراشه توانایی :
- اسکن کیپد 8*2
- اتصال 6 عدد 8segment
- 8 مد تنظیم شدت درخشندگی
- رابط سریال دوسیمه ، TWO Wire (که البته I2C کامل نیست)
- اسیلاتور RC داخلی
- ولتاژ کاری 3.5 تا 5 ولت
- و ….
می باشد که با مراجعه به دیتا شیت که در این پست موجود هست می توانید بشکل کامل تر با آن آشنا شوید . قصد بنده در اینجا راه اندازی بخش سون سگمنت اونه که در ابتدا به توضی قسمتهایی از دیتاشیت می پردازم و در انتها هم کد نویسیش برای بسکام .
نکته اول :
برای شروع ارسال اطلاعات نباید dio و clk در حالت یک منطقی باشند و باید هر دو در حالت 0 منطقی باشند
نکته دوم :
برای شروع ارسال داده ، زمانی که clk در حالت 1 منطقی است باید dio از یک منطقی به 0 منطقی تغییر وضعیت دهد .
نکته سوم :
برای اتمام ارسال اطلاعات ، زمانی که clk در حالت 1 منطقی است باید dio از 0 منطقی به یک منطقی تغییر حالت دهد .نکته چهارم :
TM1637 برای اینکه اطلاعات با دقت و کیفیت بهتری تبادل شود در پایان هر بایت یک سیگنال ACK تولید می کند که به این صورت می باشد که در زمانی clk در کلاک 8 ام لبه پایین رونده را تولید می کند dio را در حالت 0 منطقی نگه میدارد و در پایان کلاک 9 ام رها می کند و به یک منطقی تغییر وضعیت می دهد .
نکته پنجم :
فرکانس ارتباط با تراشه باید کمتر از 250KHz باشد که همه این موارد در شکلی که در خود دیتاشیت آمده به خوبی نمایش داده شده است
نکته ششم :
همانطور که در تصویر زیر مشاهده می کنید برای ارسال اطلاعات به این تراشه دو مد ارسال وجود دارد یکی مد آدرس ثابت که برای ارسال داده به یک آدرس مشخص استفاده میشود و هر بار همراه داده ارسالی باید آدرس رجیستری نمایش هم ارسال شود و دیگری مد آدرس اتوماتیک که آدرس رجیستری ای که باید نوشتن اطلاعات از آنجا شروع شود را ارسال کرده و در ادامه به ترتیب یکی یکی اطلاعات مربوط به هر کدام از رجیستری های نمایش را ارسال می کنیم هر کدام به فراخور نیاز استفاده می شود . ضمنا همیشه اولیت دستور ، دستور نحوه راه اندازی و آخرین دستور ارسالی به تراشه باید دستور مربوط به کنترل تنظیمات نمایش باشد .
و اما جداول
جدول شماره 1 :
این جدول مربوط به تنظیمات دستوررات مربوط به داده می باشد .
یادآوری : منظور از command 1 مقادیر همین جدول است .
جدول شماره 2 :
این جدول مربوط به آدرس رجیستری های نمایش می باشد .
جدول 3شماره :
این جدول مربوط به تنظیمات درخشندگی نمایشگر می باشد
یاد آوری 1 : این تراشه سون سگنت آند مشترک را پشتیبانی می کند اما باید کد ارسالی را بر حسب سون سگمنت کاتد مشترک محاسبه نمود . در ادامه جدول رجیستری هر کدام از نمایشگر ها را می بینید
یادآوری 2 = تا زمانی که در رجیستری اطلاعات این تراشه مقداری تغییر نکند نمایشگر مقدار قبلی را نمایش میدهد .
یادآوری 3 : حتما فلوچارت های درون دیتاشیت رو مطالعه کنید .
خب بریم سراغ کدنویسی ها
برای راحتی کار بهتره که هر قسمت رو به شکل یک زیر روال یا تابع در بیاریم که بعدا عزیزان بتونند در پروژه هاشون به راحتی از اون استفاده کنند
من در اینجا فقط برخی از قسمت ها رو توضیح میدم ولی در ادامه سورس برنامه به شکل کامل در اختیار عزیزان قرار می گیرد
عزیزان می دونند که در بسکام تابع باید مقدار برگشتی داشته باشد ولی زیر روال نه پس در اینجا ما فعالیت های مختلف این تراشه رو در برنامه به وسیله زیر روال کنترل و مدیریت می کنیم .
زیر روال اول – زیر روال شروع :
sub strt
set clk
set dout
waitus 2
reset dout
end sub
زیر روال دوم – زیر روال پایان :
sub stp
reset clk
reset dout
waitus 2
set clk
waitus 2
set dout
end sub
زیر روال سوم – زیر روال ACK :
sub ak
reset clk
waitus 2
set clk
waitus 2
if din = 1 then
send address
ak
send num
ak
end if
end sub
زیر روال چهارم – زیر روال ارسال :
Sub send
For bt = 0 To 7
Reset Clk
Dout = num.bt
Waitus 2
Set Clk
Waitus 2
Next num_bt
End Sub
خب تا اینجا هر آنچه که لازم بود برای راه اندازی این ماژول مطرح شد . در ادامه چند نمونه سورس اضافه می کنم که امید وارم مفید باشه
در انتها نیز از همه شما عزیزان کمال تشکر رو دارم که حوصله به خرج دادید و بسیار بسیار خوشحال میشم که من رو در این مسیر با انتقادات ، پیشنهادها و راهنمایی هاتون کمک کنید .
با تشکر
اللهم جعل عواقب امورنا خیرا
در پناه حق تعالی
سورس اول نمایش عدد 1234 به روش مد آدرس اتوماتیک
سورس دوم نمایش عدد 5678 به روش مد آدرس ثابت
شرمنده از دوستان فراموش کردم دیتاشیت تراشه رو بذارم و الان میذارم
TM1637
مطالبق مرتبط :
دانلود کتاب آموزش AVR به زبان بیسیک
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
درود بر شما
بسیار عالی بود.
مشکلم حل شد .
ممنون از زحمات شما
ممنون لطف دارید
سلام
ممنون عزیز خدا خیرت بده خیلی ب درد خورد
سلام ممنون لطف دارید
سلام آقای قدری
شماره همراه شما رو میخواستم کاری باهاتون داشتم
با عرض سلام و خسته نباشید خدمت همه عزیزان و عرض پوزش بابت غیبت و تاخیرم
شماره بنده هم 09039487417 هست که واتساپ و تلگرامم هم با همین شماره هست . خوشحال میشم بتونم کمکی کنم.
ان شاءالله موفق و پیروز باشید
دست شما درد نکنه..خدا خیرت بده ، کارمون راه افتاد ..خیلی عالی توضیح دادی
درود و تشکر از مطلب شما
امکانش هست فقط تابع ارسال send رو برای Ateml به زبان سی بنویسید؟
یا یه توضیحی بدید که چطوری یک بایت داده رو فقط روی یک پین از PORTC منتقل میکنیم در حلقه ؟
ممنون