شمارنده 3 رقمی
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, ساخت شمارنده 3 رقمی نزولی توسط سون سگمنت مبتنی بر شیفت رجیستر Shift Register, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. در این پروژه ارسال اطلاعات برای نمایش بر روی سون سگمنت (Segment-7) به صورت سریال بوده و توسط آی سی 74HC4094 که یک تراشه شیفت رجیستر Shift Register می باشد، انجام می شود.
نقشه شماتیک پروژه
به جرات می توان گفت این پروژه یکی از کاربردی ترین پروژه های میکروکنترلر های AVR به شمار می آید که به کمک آن می توانید آی سی شیفت رجیستر 4094 را توسط انواع میکروکنترلرهای AVR راه اندازی نمائید و به واسطه ارتباط سریال اعداد مورد نظر خود را بر روی سون سگمنت ها به نمایش بگذارید.
عملکرد مدار طراحی شده به اینگونه می باشد، که توسط میکروکنترلر ATmega32 و کمک سه شیفت رجیستر (Shift Register) و سون سگمنت (Segment-7)، یک شمارنده 3 رقمی طراحی کرده ایم که به صورت خودکار از عدد 999 به سمت 0 شروع به شمارش می کند.
همچنین فایل شبیه ساز این پروژه نیز که با نرم افزار Proteus 8 Professional طراحی شده، پیوست فایل پروژه جهت دانلود قرار داده شده است، که می تواند شما را در یادگیری هر چه بهتر مدار و نحوه عملکرد آن یاری نماید.
برنامه میکروکنترلر به زبان بیسیک BASIC در نرم افزار BASCOM-AVR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
$regfile = "m32def.dat" $crystal = 8000000 '----------------------------------------------------- Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Config Portc.3 = Output '----------------------------------------------------- Datas Alias Portc.0 Strobe Alias Portc.2 Clock Alias Portc.1 Oe Alias Portc.3 '----------------------------------------------------- Dim Y As Integer Dim Temp As Integer Dim Hitung As Integer Dim Waktu As Integer Dim Ratusan As Integer Dim Puluhan As Integer Dim Satuan As Integer Dim Byteratusan As Byte Dim Bytepuluhan As Byte Dim Bytesatuan As Byte '----------------------------------------------------- Strobe = 1 Oe = 0 '----------------------------------------------------- Mulai: Hitung = 999 Do Temp = Hitung Ratusan = Temp / 100 Temp = Temp Mod 100 Puluhan = Temp / 10 Satuan = Temp Mod 10 '----------------------------------------------------- For Y = 1 To 10 Oe = 1 Bytesatuan = Lookup(satuan , Data7seg) Shiftout Datas , Clock , Bytesatuan , 1 Bytepuluhan = Lookup(puluhan , Data7seg) Shiftout Datas , Clock , Bytepuluhan , 1 Byteratusan = Lookup(ratusan , Data7seg) Shiftout Datas , Clock , Byteratusan , 1 Next Y Waitms 400 Decr Hitung Loop Until Hitung < 0 '----------------------------------------------------- Data7seg: Data &B11000000 '0 Data &B11111001 '1 Data &B10100100 '2 Data &B10110000 '3 Data &B10011001 '4 Data &B10010010 '5 Data &B10000010 '6 Data &B11111000 '7 Data &B10000000 '8 Data &B10010000 '9 |
سلام
یک سوال برام مطرح هستش
اونم اینکه با کمک شیفت رجیستر8بیتی و یک انکدر 8 به 3 یک شمارنده 3 بیتی که از 1 تا 7 را بشمارد،
میشه طراحی کرد
با تشکر.