e
هدف از راه اندازی این وب سایت آموزشی، کمک کردن به علاقه مندان به یادگیری علم الکترونیک و میکروکنترلر بوده بخصوص دانش آموزان و دانشجویان که برای پیدا کردن مطلب مورد نظر خود سایتهای گوناگونی را جستجو میکنند که در نهایت به هدف خود نمی رسند، در این وب سایت سعی براین است که آموزش از پایه شروع شود. در ادامه با مثالهای نحوه استفاده از قطعات الکترونیک و عیب یابی آنها آموزش داده خواهد شد. همچنین پروژه های برای آموزش قرار داده شده است.
اسماعیل بخش زاد محمودی
09118315058
09336485452
09373054607
09390617786
telegram.me/Electronic_iran کانال
Esmail_bakhshzad@yahoo.com esmail2bakhshzad@gmail.com
محافظ تمام دیجیتال هوشمند وسایل برقی ( یخچال و فریزر- صوتی تصویری-کامپیوتر )
منبع تغذیه 0-32 ولت 0-5 آمپر قابل افزایش تا 0-20 آمپر (Power supply 0-5A 0-20A)
مدار کنترل کننده هوشمند تپ چنجر ترانس قدرت 63 کیلو ولت سه فاز
هشدار دهنده نشت گاز شهری و دود همراه با قطع خودکار گاز و برق
محافظت از سطح ولتاژ شارژ- جریان شارژ و دمای باطری های UPS تا 200 آمپر
محافظت و کنترل حد جریان سه فاز 0-200 آمپر در سه رنج کاری
کنترل و راه اندازی سروموتورهای الکتریکی و موتور DC و موتور ﭘله ای
قفل الکترونیکی هوشمند توسط تاچ لمسی (Touch Screen)
تابلوی روان با ماتریس 32*8 ارسال پیام متنی از طریق کامپیوتر
طراحی و ساخت فانکشن ژنراتور با کنترل لمسی توسط (Touch Screen)
محافظت و کنترل ولتاژ و جریان خروجی از مدار AC / DC
کنترل دور موتورهای الکتریکی و اعمال موج PWM و از طرق رابط تاچ ﭘد و LCDگرافیکی (Touch Screen)
پروژه مدار آشکارساز نشت گازمتان و گاز بوتان و LPG سنسور MQ
پروژه کنترل و محافظت دیجیتال ولتاژ
پروژه منبع تغذیهDigital 0-42V 5A
ولتمتر و آمپرمتر دیجیتال با AVR
برنامه نویسی میکروکنترلر 52 & 8051
مدار مبدل آنالوگ به دیجیتال ADC
کاربرد تراشه TTL 74HC573 در تابلو روان LED
مبدل آنالوگ به دیجیتال ADC میکرو کنترل AVR
کاربرد تراشه TTL74541 در ولتمتر دیجیتال با AVR
کاربرد تراشه رگلاتور ولتاژ LM723
تقویت کننده تفاضلی Single Operational Amplifier
استفاده از ترانزیستور برای سویچ کردن Switching Transistor
برنامه راه اندازی موتور پله ای Stop Motor
گذرگاه ارتباط دو سیمه میکرو کنترلر AVR – SPI
www.powerengineering.blogfa.com
الکترونیک مقدماتی
الکترونیک صنعتی
میکرو الکترونیک AVR
برنامه نویسی Assembl
1.پروژه آزمایشگر میکروکنترلر 8051-52
2.پروژه آزمایشگر میکروکنترلر PIC
3.پروژه ساعت RTC با میکرو 8051
4.محافظ تمام دیجیتال هوشمند AVR
5.پروژه LED-Stopper 7x20میکرو AVR
6.پروژه Digital Clock LED 32x8 AVR
7.پروژه Digital Voltmeter-Ammeter
8.پروژه منبع تغذیه Digital Power Supply 0-42V 5A
9.پروژه کنترل و محافظت دیجیتال ولتاژ خروجی AC/DC
10.پروژه ساعت دیجیتال RTC با AVR
11.پروژه مدار آشکارساز نشت گازمتان و گاز بوتان و LPG سنسور MQ
13.محافظت و کنترل ولتاژ و جریان خروجی از مدار AC / DC
14.طراحی و ساخت فانکشن ژنراتور با کنترل لمسی توسط (Touch Screen)
15.تابلوی روان با ماتریس 32*8 ارسال پیام متنی از طریق کامپیوتر
16.قفل الکترونیکی هوشمند توسط تاچ لمسی (Touch Screen)
17.کنترل و راه اندازی سروموتورهای الکتریکی و موتور DC و موتور ﭘله ای
18.محافظت و کنترل حد جریان سه فاز 0-200 آمپر در سه رنج کاری
19.محافظت از سطح ولتاژ شارژ- جریان شارژ و دمای باطری های UPS تا 200 آمپر
20. پروژه کنترل دور و زاویه چرخش موتور های گیربکس دار
21. محافظ ولتاژ برق شهر تایمر دار 30 آمپری
22.هشدار دهنده نشت گاز شهری و دود همراه با قطع خودکار گاز و برق
23. مدار کنترل کننده هوشمند تپ چنجر ترانس قدرت 63 کیلو ولت سه فاز
24. منبع تغذیه 0-32 ولت 0-5 آمپر قابل افزایش تا 0-20 آمپر (Power supply 0-5A 0-20A)
25. محافظ تمام دیجیتال هوشمند وسایل برقی ( یخچال و فریزر- صوتی تصویری-کامپیوتر )
1. مقالات در رابطه با سیستم های دیجتال و اطلاعاتی مفید در رابطه با Multimedia Card (MMC – SD)
2. مقالات در رابطه با آموزش میکروکنترلر AVR و PIC و8051-52 و...
دانلود نرم افزارهای کاربردی
1.نرم افزارهای برای میکروکنترلر 8051
2.نرم افزارهای برای میکروکنترلر PIC
3.نرم افزارهای برای میکروکنترلر AVR
ساعت
دستور ADD :
دستور ADD دو رجیستر را بدون در نظر گرفتن بیت کری باهم جمع کرده و نتیجه را در رجیستر Rd قرار می دهد.
ADD Rd,Rr
Rd,Rr یکی از رجیستر های R0 تا R31 می باشند.
نکته: اگر در هنگام جمع از بیت 7 یک پرچم نقلی خارج شود. بیت کری C فعال خواهد شد و همچنین اگر از بیت 3 یک پرچم نقلی خارج شود بیت H نیم کری فعال خواهد شد.
تمام پرچم های بالا در رجیستر وضعیت تراشه وجود دارد:
مثال: دو عدد 8+8 را باهم جمع کنید؟
عملکرد بیتهای کری C و سرریز V بطور کلی از پرچم کری برای تشخیص خطای محاسباتی اعداد علامتدار و از پرچم سرریز برای تشخیص خطای محاسباتی اعداد غیر علامتدار استفاده می شود.
دستور ADC :
این دستور رجیستر Rd را به همراه کری جمع می کند و نتیجه را در رجیستر Rd قرار می دهد تأثیر پرچم ها مثل دستور ADD می باشد.
ADC Rd,Rr
مثال: اگر رجیستر R1=20 hex , R2=45 hex , C=1 باشد حاصل جمع چه می شود؟
ADC R1,R2
دستور ADIW :
این دستور یک مقدار ثابت K بین 0 تا 63 را با زوج رجیستر RD,RD+1 که با هم به صورت یک رجیستر شانزده بیتی عمل می کند، جمع نموده و نتیجه را در همان دو رجیستر قرار می دهد.
ADIW Rd+1,Rd,K
مثال: اگر رجیستر های R25=A0 hex, R24=D5 hex باشد با اجرای دستور زیر حاصل چه می شود؟
دستور SUB :
این دستور جهت تفریق نمودن دو رجیستر استفاده می شود و الگوی آن به صورت زیر است:SUB Rd,Rr
Rd,Rr یکی از رجیستر های R0 تا R31 می باشند.
نکته: اگر پس از اجرای دستور SUB بیت کری صفر باشد حاصل تفریق یک مقدار مثبت و اگر بیت کری یک بود. حاصل تفریق یک مقدار منفی و بصورت مکمل 2 است.
با توجه به اینکه بیت کری صفر می باشد پس حاصل بدست آمده یک مقدار مثبت است.
دستور SBC :
این دستور جهت تفریق نمودن دو رجیستر همراه با کری استفاده می شود:
SBC Rd,Rr
اگر قبل از اجرای دستور بیت کری یک باشد از نتیجه حاصل تفریق یک واحد کم خواهد شد.
دستور SUBI :
این دستور جهت تفریق نمودن یک مقدار ثابت از یک رجیستر استفاده می شود و الگوی آن به شکل زیر است:
SUBI Rd,K
K یک عدد ثابت بین 0 تا 255 می باشد.
مثال:
دستور SBCI :
این دستور جهت تفریق نمودن یک مقدار ثابت از یک رجیستر به همراه پرچم کری استفاده می شود. الگوی آن بصورت زیر است:
SBCI Rd,K
K یک عدد ثابت بین 0 تا 255 می باشد.
مثال: با فرض یک بودن کری
دستورSBIW :
این دستور یک مقدار ثابت 0 تا 63 را از یک زوج رجیستر کم نموده و نتیجه را در همان زوج رجیستر قرار می دهد:
SBIW Rd+1:Rd,K
K یک عدد ثابت بین 0 تا 63 می باشد.
Rd فقط یکی از رجیستر های R24,R26,R28,R30 است.
مثال: اگر محتوای رجیستر های R26=15 hex و R27=3A باشد با اجرای دستور زیر وضعیت پرچمها را بررسی کنید.
وضعیت پرچم ها: همه پرچم ها صفر هستند
دستورINC :
این دستور یک واحد به محتوای رجیستر Rd اضافه می کند. و الگوی آن به صورت زیر است: توجه: از این دستور در برنامه مختلف به تعداد زیاد استفاده می شود برای افزایش پله یا خط برنامه؟
INC Rd
دستور INC پرچم کری را تحت تأثیر قرار نمی دهد.
مثال:در برنامه بالا که برای ذخیره کردن یک داده تبدیل شده که پس از هر تبدیل مقدار مورد نظر در رجیستر R0 ذخیره کرده سپس به برچسب Save_Data: هر بار پرش نموده و هر بار مقدار را در رجیستر های R7 تا R10 ذخیره می نماید. با این چند خط برنامه شما می توانید 4 عدد مختلف را در 4 رجیستر ذخیره کنید.
دستورDEC :
این دستور یک واحد از محتویات رجیستر Rd کاهش می دهد و الگوی آن به صورت زیر است: توجه: از این دستور در برنامه مختلف به تعداد زیاد استفاده می شود برای کاهش پله یا خط برنامه؟
DEC Rd
دستورات محاسباتی ویژه
در سری جدید تراشه AVR خود یک واحد سخت افزاری ضرب کننده به نام واحد MAC به آن اضافه نموده است که با ALU در ارتباط می باشد. با اضافه شدن این واحد سرعت عملیات ضرب تا دوسیکل ساعت کاهش یافته است. از قابلیت های این ضرب کننده می توان به موارد زیر اشاره نمود:دستورMUL :
این دستور دو عدد هشت بیتی بدون علامت را در هم ضرب نموده و نتیجه را که بصورت شانزده بیتی می باشد درون رجیستر های R0و R1 قرار می دهد. تمام دستورات ضرب روی پرچم های C,Z تأثیر می گذارند.
MUL Rd,Rr
دستورMULS :
این دستور دو عدد علامت دار هشت بیتی را در هم ضرب می کند و نتیجه را بصورت شانزده بیتی در رجیستر های R0,R1 قرار می دهد.MULS Rd,Rr
مثال:دو عدد 89 hex و A3 hex را در هم ضرب کنید؟
دستورFMUL :
این دستور همانند دستور MUL عمل می کند، با این تفاوت که پس از عمل ضرب حاصل را یک بیت به سمت چپ شیفت داده و در رجیستر های R0و R1 قرار می دهد.FMUL Rd,Rr
این عملکرد برای ضرب دو عدد اعشاری در هم می باشد و حاصل را به صورت اعشاری بازگرداند.
دستورFMULSU :
این دستور همانند دستور FMUL است، با این تفاوت که یک عدد اعشاری علامت دار را در یک عدد اعشاری بدون علامت ضرب می کند و الگوی آن به صورت زیر است:
FMULSU Rd,Rr
دستورات منطقی
دستور منطقی برای انجام عملیاتهای منطقی (AND-OR-XOR) بر روی رجیسترهای عمومی به کار می روند.
دستورAND :
این دستور عمل AND منطقی را بین دو رجیستر Rdو Rr انجام داده و حاصل را در رجیستر Rd قرار می دهد.
AND Rd,Rr
مثال: دو عدد R0=32 و R1=23 پس از اجرای دستور AND پاسخ چیست؟
دستورANDI :
این دستور عمل منطقی AND را بین رجیستر Rd و یک عدد ثابت انجام داده و حاصل را به رجیستر Rd منتقل می کند.
ANDI Rd,K
دستورOR :
این دستور عمل منطقی OR را بین دو رجیستر Rd و Rr انجام داده و حاصل را درون رجیستر Rd منتقل می کند.
OR Rd,Rr
مثال: دو عدد R0=2A و R1=35 پس از اجرای دستور OR پاسخ چیست؟
دستورORI :
این دستور عمل منطقی OR را بین دو رجیستر Rd و یک عدد ثابت انجام داده و حاصل را درون رجیستر Rd منتقل می کند.
ORI Rd,K
دستورEOR :
این دستور عمل منطقی XOR را بین دو رجیستر Rd و Rr انجام داده و حاصل را درون رجیستر Rd منتقل می کند.
EOR Rd,Rr
مثال: دو عدد R0=36 و R1=4A پس از اجرای دستور EOR پاسخ چیست؟
دستورCOM :
این دستور باعث معکوس شدن محتویات رجیستر Rd مکمل یک می شود.
COM Rd
Rd یکی از رجیستر های R0 تا R31 می باشند.
مثال: با اجرای برنامه زیر محتوای R2 چقدر خواهد شد؟
LDI R16,$55
MOV R2,R16 ;R2=0101,0101
COM R2 ;R2=1010,1010
دستورNEG :
این دستور محتوای رجیستر Rdرا مکمل دو (متمم) می کند.
NEG Rd
Rd یکی از رجیستر های R0 تا R31 می باشند. نکته: هنگامیکه محتوای Rd=80 باشد دستور NEG تغییری روی Rd نمی دهد و همان 80 باقی می ماند. این دستور بر روی همه پرچم ها اثر می گذارد.
LDI R16,$69 ;R16=0110,1001
NEG R16 ;R16=1001,0111
دستورSBR :
این دستور بیتهای تعیین شده در رجیستر Rd را یک می کند.
SBR Rd,K
مثال: برنامه زیر بیت پنجم رجیستر R20 را یک می کند؟
LDI R20,0x00 ;R20=0000,0000
SBR R20,5 ;R20=0000,0101
دستورCBR :
این دستور بیتهای تعیین شده در رجیستر Rd را صفر می کند.
CBR Rd,K
برنامه زیر بیتهای 4 و 7 از رجیستر R17 را صفر می کند.
LDI R21,0xFF ;R21=1111,1111
SBR R21,$6F ;R21=0110,1111
دستورTST :
این دستور تعیین می کند که محتوای رجیستر Rdیک مقدار صفر یا منفی است. این عمل با انجام AND منطقی بین Rd با خودش انجام می شود.
TST Rd
پس از اجرای این دستور فوق پرچم N اگر یک شود نشان دهنده منفی بودن محتوای R15 است.
دستورCLR :
این دستور محتوای رجیستر Rd را پاک می نماید. این حالت با اجرای دستور XOR بین خودش انجام می شود: CLR Rd
دستورSER :
این دستور تمام بیتهای رجیستر Rd را یک می کند.
SER Rd
Rd یکی از رجیستر های R0 تا R31 می باشند.
دستورLSL :
این دستور تمام بیتهای رجیستر Rd را یک مکان به چپ شیفت می دهد. هنگام شیفت از سمت راست عدد صفر وارد شده و بیت هفتم وارد پرچم C می شود. این عمل برای ضرب مقادیر بدون علامت و علامت دار در عدد 2 مفید است.
LSL Rd
دستورLSR :
این دستور تمام بیتهای رجیستر Rd را یک مکان به راست شیفت می دهد. هنگام شیفت از سمت چپ عدد صفر وارد شده و بیت LSB وارد پرچم C می شود. این عمل برای تقسیم مقادیر بدون علامت و علامت دار بر عدد 2 مفید است.
LSR Rd
دستورROL :
این دستور تمام بیتهای رجیستر Rd را یک مکان به سمت چپ انتقال می دهد.
ROL Rd
دستورROR :
این دستور تمام بیتهای رجیستر Rd را یک مکان به سمت راست انتقال می دهد.
ROR Rd
دستورSWAP :
این دستور محل نیم بایتهای نیبل بالا و پایین رجیستر Rd را باهم عوض می کند.SWAP Rd
Rd یکی از رجیستر های R0 تا R31 می باشند.
مثال:
LDI R16,0x71 ;R16=0111,0001 >>> 71
SWAP R16 ;R16=0001,0111 >>> 17
دستورات منطقی روی بیت
دستوراتی که روی بیتها تأثیر دارند بیش از چند ده دستور می باشد که در این بخش آنهای که استفاده بیشتری در برنامه نویسی دارند ذکر می شود.
دستورSBI :
این دستور بیت مشخص شده در یکی از رجیستر های I/O را یک می کند. و الگوی ان بصورت زیر است.SBI A,b
A آدرس یا نام رجیستر I/O می باشد.
b - عددی بین 0 تا 7 می باشد.
مثال: بیت دوم رجیستر DDRB را یک نمایید.
SBI DDRB,2
دستورCBI :
این دستور بیت مشخص شده در یکی از رجیستر های I/O را صفر می کند. و الگوی ان بصورت زیر است.
CBI A,b
دستورSEC :
این دستور پرچم کری C در رجیستر SREG را یک می کند، و الگوی آن به صورت زیر است:
SEC
دستورCLC :
این دستور پرچم کری C در رجیستر SREG را صفر می کند، و الگوی آن به صورت زیر است:CLC
برای بهتر فهمیدن توضیحات بالا مثال زیر در نرم افزار Proteus 7 و نرم افزار AVR Studio 4 طراحی شده پس از دانلود فایل ها را اجرا کنید:
آن را از لینک زیر دانلود نمائید:
http://s3.picofile.com/file/7421814729/Circuit_2_ADD_AVR.zip.html
توضیح مثال1:
در این مثال ابتدا اطلاعات از پورت A و B خوانده شده و با هم توسط دستور ADD جمع شده و بر روی پورت C نمایش داده خواهد شد:
توضیح مثال 2:
در این مثال ابتدا اطلاعات از پورت A و B خوانده شده و با هم توسط دستور SUB تفریق شده و بر روی پورت C نمایش داده خواهد شد:
آن را از لینک زیر دانلود نمائید:
http://s3.picofile.com/file/7421815157/Circuit_3_SUB_AVR.zip.html
توضیح مثال 3:
در این مثال ابتدا اطلاعات از پورت A و B خوانده شده و با هم ضرب شده و بر روی پورت C نمایش داده خواهد شد در این برنامه با استفاده از دستورات آموزش داده شده این ضرب ساده انجام می شود:
آن را از لینک زیر دانلود نمائید:
http://s3.picofile.com/file/7421816127/Circuit_4_Multiplication_AVR.zip.html
توضیح مثال 4:
در این مثال ابتدا اطلاعات از پورت A و B خوانده شده و با هم ضرب شده و بر روی پورتهای C وD نمایش داده خواهد شد در این برنامه با استفاده از دستور MULاین کار انجام می شود: توجه داشته باشید که همه مثال ها حاصل اعداد بصورت Hex می باشد:
آن را از لینک زیر دانلود نمائید:
http://s3.picofile.com/file/7421816983/Circuit_5_MUL_AVR.zip.html
توضیح مثال 5:
در این مثال ابتدا اطلاعات از پورت A خوانده شده و توسط دستور COM این دستور باعث معکوس شدن محتویات رجیستر Rd مکمل یک می شود و حاصل در پورت B نمایش داده می شود.
http://s3.picofile.com/file/7421817846/Circuit_6_COM_AVR.zip.html
توضیح مثال 6:
در این مثال یک برنامه چرخش بیتی توسط دستور ROLانجام می شود، شما می توانید جهت چرخش را با دستور ROR عوض کنید.
آن را از لینک زیر دانلود نمائید:
http://s3.picofile.com/file/7421818602/Circuit_7_Rotate_AVR.zip.html
نسخه ی pdf قابل دانلود این صفحه:
لینک دانلود:
http://s3.picofile.com/file/7422391498/AVR_Assembly_Computation.zip.html
رمز فایل: www.Project-esisis.com
راھنمای دانلودگزارش خرابی لینک
تمام حقوق این وب سایت و مطالب آن متعلق به بزرگترین وب سایت آموزش الکترونیک می باشد و هرگونه کپی برداری از مطالب آن فقط با ذکر منبع مجاز است
Copyright © 2012 , project-esisis.com