SlideShare a Scribd company logo
1 of 15
1
‫الرحیم‬ ‫الرحمن‬ ‫هللا‬ ‫بسم‬
‫ریزپردازنده‬ ‫آزمایشگا‬
‫تبار‬ ‫یعقوبی‬ ‫آقای‬ : ‫استاد‬
‫کاکا‬ ‫محمدحسین‬ : ‫دانشجو‬
‫سال‬9911-9911
2
‫فهرست‬
‫مقدمه‬............................................................................................................................................3
‫آشنا‬‫یی‬‫با‬ATMEGA32..........................................................................................................4
CODVISION AVR......................................................................................................................6
PROTEUS..................................................................................................................................12
‫معرف‬‫ی‬‫طراح‬‫پروژه‬...................................................................................................................15
‫راه‬‫ها‬‫ی‬‫ارتباط‬‫ی‬.......................................................................................................................15
3
‫مقدمه‬
‫پروژه‬ ‫این‬ ‫در‬ .‫است‬ ‫ریزپردازنده‬ ‫آزمایشگاه‬ ‫درس‬ ‫به‬ ‫مربوط‬ ‫رو‬ ‫پیش‬ ‫پروژه‬
‫میکرو‬ ‫معرفی‬ ‫به‬ ‫ابتدا‬‫کنترل‬‫ر‬ATMEGA 32‫می‬‫پردازیم‬‫این‬ ‫است‬ ‫قرار‬ ‫سپس‬ .
‫میکروکنترل‬‫چند‬ ‫تا‬ ‫کنیم‬ ‫نویسی‬ ‫برنامه‬ ‫را‬LED‫روشن‬ ‫و‬ ‫خاموش‬ ‫را‬‫کند‬.
.‫دهیم‬ ‫می‬ ‫نشان‬ ‫عملی‬ ‫صورت‬ ‫به‬ ‫پروتئوس‬ ‫برنامه‬ ‫در‬ ‫را‬ ‫کار‬ ‫نتیجه‬ ‫نهایت‬ ‫در‬
:‫داریم‬ ‫نیاز‬ ‫زیر‬ ‫موارد‬ ‫به‬ ‫پروزه‬ ‫این‬ ‫انجام‬ ‫برای‬
‫برنامه‬ ‫با‬ ‫آشنایی‬CodVision AVR
‫برنامه‬ ‫با‬ ‫آشنایی‬Proteus
‫زبان‬ ‫با‬ ‫آشنایی‬C
‫میکرو‬ ‫با‬ ‫آشنایی‬‫کنترول‬‫ر‬‫ها‬
4
‫با‬ ‫آشنایی‬ATMEGA32
‫پیشرفته‬ ‫معماری‬RISC
‫کم‬ ‫مصرفی‬ ‫توان‬ ‫و‬ ‫باال‬ ‫کارایی‬
‫دارای‬23‫رجیستر‬8‫بیتی‬
‫تا‬ ‫سرعت‬61‫مگاهرتز‬
‫انواع‬‫حافظه‬‫ها‬‫در‬ATMEGA32
kb23‫حافظه‬flash‫ریزی‬ ‫برنامه‬ ‫قابلیت‬ ‫با‬
6231‫حافظه‬ ‫بایت‬EEPROM‫ریزی‬ ‫برنامه‬ ‫قابلیت‬ ‫با‬
kb3‫حافظه‬SRAM‫داخلی‬
‫برنامه‬ ‫شدن‬ ‫کپی‬ ‫از‬ ‫جلوگیری‬ ‫برای‬‫های‬ ‫حافظه‬ ‫کردن‬ ‫قفل‬ ‫قابلیت‬
‫و‬ ‫فلش‬EEPROM‫میکرو‬ ‫این‬ ‫در‬ ‫هم‬‫کنترل‬‫وجود‬‫دارد‬.
‫میکرو‬ ‫این‬‫دارای‬ ‫کنترل‬‫سری‬ ‫یک‬‫خصوصیات‬‫جانبی‬‫می‬ ‫نیز‬‫شامل‬ ‫که‬ ‫باشد‬
:
3‫تایمر/کانتر‬8‫بیتی‬
6‫تایمر/کانتر‬61‫بیتی‬
1‫کانال‬PWM
‫سریال‬ ‫ارتباط‬3‫سیمه‬
8‫دیجیتال‬ ‫به‬ ‫آنالوگ‬ ‫مبدل‬ ‫کانال‬62‫بیتی‬
‫داخلی‬ ‫آنالوگ‬ ‫کننده‬ ‫مقایسه‬
‫ارتباط‬USART
1‫میکرو‬ ‫مصرف‬ ‫کردن‬ ‫کم‬ ‫برای‬ ‫خواب‬ ‫حالت‬ ‫مد‬‫کنترلر‬
‫قابلیت‬‫ارتباط‬JTAG
5
‫کردن‬ ‫دیباگ‬ ‫برای‬ ‫قابلیت‬ ‫این‬‫و‬‫اشکال‬‫زد‬‫تراشه‬ ‫و‬ ‫برنامه‬ ‫ایی‬
‫می‬ ‫استفاده‬.‫شود‬
‫قابلیت‬‫ریزی‬ ‫برنامه‬‫ها‬ ‫حافظه‬‫میکروکنترلر‬ ‫ی‬‫دارد‬ ‫را‬‫یا‬ ‫و‬‫اینکه‬
‫می‬‫شود‬‫بیت‬ ‫فیوز‬‫را‬‫با‬‫آ‬.‫کرد‬ ‫تنظیم‬ ‫ن‬
‫می‬ ‫مشاهده‬‫کنید‬‫که‬4‫وجود‬ ‫گذاری‬ ‫نام‬ ‫سری‬‫دارد‬.(A,B,C,D)‫سری‬ ‫هر‬
‫تا‬ ‫صفر‬ ‫از‬ ‫ها‬ ‫پایه‬ ‫این‬ ‫از‬7
(8‫شدن‬ ‫گذاری‬ ‫نام‬ )‫پایه‬‫د‬‫هرکد‬ ‫به‬ ،‫ا‬‫این‬ ‫از‬ ‫م‬8‫پایه‬
‫یک‬‫پورت‬‫می‬‫گویند‬‫میشه‬ ‫که‬‫آ‬‫ن‬‫ها‬‫ر‬‫ا‬‫کرد‬ ‫تعریف‬ ‫ورودی/خروجی‬ ‫بعنوان‬.
‫هم‬‫ا‬‫نط‬‫دار‬ ‫خاصی‬ ‫اسم‬ ‫پایه‬ ‫هر‬ ‫گفتم‬ ‫که‬ ‫ور‬(‫د‬‫داخل‬‫قابلیت‬ ‫پرانتز‬
‫شده‬ ‫مشخص‬ ‫پایه‬ ‫هر‬)‫است‬‫پورت‬ ‫مثال‬ ،) A‫های‬ ‫پایه‬99‫تا‬04‫با‬ ‫که‬
‫اسم‬PA‫مخفف‬ ‫و‬Port A‫شد‬ ‫مشخص‬‫ه‬‫ا‬‫ند‬(.‫قابلیت‬ADC(‫به‬ ‫آنالوگ‬ ‫مبدل‬
‫دارن‬ ‫رو‬ ‫شدن‬ )‫دیجیتال‬‫د‬‫دارن‬ ‫قابلیت‬ ‫چند‬ ‫ها‬ ‫پایه‬ ‫از‬ ‫برخی‬ ‫یا‬ ‫و‬‫د‬
‫می‬ ‫که‬‫ش‬‫ود‬‫انتخا‬ ‫رو‬ ‫خودمون‬ ‫نظر‬ ‫مورد‬ ‫قابلیت‬ ‫پروژه‬ ‫به‬ ‫نسبت‬‫ب‬
‫کنیم‬ ‫استفاده‬ ‫ها‬ ‫پایه‬ ‫اون‬ ‫از‬ ‫و‬ ‫کنیم‬.
‫حداکثر‬ ‫میکروکنترلر‬ ‫این‬ ‫کاری‬ ‫فرکانس‬91‫مگاهرتز‬‫است‬‫در‬ ‫البته‬
‫سری‬ATMEGA32L‫مقدار‬ ‫این‬1‫هرتز‬ ‫مگا‬‫می‬‫باشد‬.‫که‬ ‫کنید‬ ‫توجه‬
‫می‬‫تو‬‫ا‬‫پا‬ ‫های‬ ‫فرکانس‬ ‫نیم‬‫مثل‬ ، ‫تر‬ ‫یین‬9‫هم‬ ‫رو‬ ‫مگاهرتز‬‫انتخاب‬
)‫پروژه‬ ‫با‬ ‫کنیم(متناسب‬.9
6
CODVISION AVR
‫قرار‬ ‫که‬ ‫کارهایی‬ ‫تمام‬ ‫مرحله‬ ‫به‬ ‫مرحله‬ ‫خواهیم‬ ‫می‬ ‫قسمت‬ ‫این‬ ‫در‬
‫بصورت‬ ( ‫دهیم‬ ‫شرح‬ ‫را‬ ‫دهیم‬ ‫انجام‬ ‫کدویژن‬ ‫برنامه‬ ‫در‬ ‫است‬
)‫تصویری‬.
‫افزار‬ ‫نرم‬ ‫وارد‬ ‫ابتدا‬ ‫در‬CodeVision AVR‫بالی‬ ‫منوی‬ ‫از‬ ‫و‬ ‫شده‬
‫چپ‬ ‫سمت‬ ‫صفحه‬New Project‫می‬ ‫انتخاب‬ ‫را‬.‫کنیم‬
‫از‬ ‫که‬ ‫قسمتی‬ ‫در‬‫ما‬‫از‬ ‫خواهید‬ ‫می‬ ‫شود‬ ‫می‬ ‫پرسیده‬CodeWizard
Avr‫نمائید‬ ‫استفاده‬‫ما‬ ،No‫می‬ ‫انتخاب‬ ‫را‬.‫کنیم‬
‫دلخو‬ ‫نام‬ ‫با‬ ‫را‬ ‫پروژه‬ ‫ذخیره‬ ‫محل‬ ‫بعد‬ ‫مرحله‬ ‫در‬‫اه‬‫می‬ ‫وارد‬‫کنیم‬
‫و‬‫روی‬‫گزینه‬Save‫می‬ ‫کلیک‬.‫کنیم‬
7
‫نوع‬ ‫باید‬ ‫بعدی‬ ‫مرحله‬ ‫در‬‫کنیم‬ ‫انتخاب‬ ‫را‬ ‫میکروکنترلر‬‫در‬ ‫ما‬ .
‫این‬‫پروژه‬‫از‬Atmega32‫کرده‬ ‫استفاده‬‫ایم‬‫میکروکنترلر‬ ‫این‬ ‫پس‬
‫می‬ ‫انتخاب‬ ‫رو‬‫کنیم‬‫را‬ ‫فایل‬ ‫نام‬ ‫و‬Led‫می‬‫گذاریم‬.
‫قسمت‬ ‫در‬ ‫بعد‬ ‫مرحله‬ ‫در‬C Compiler‫نوع‬chip‫را‬Atmega32‫و‬Clock
‫روی‬ ‫بر‬ ‫را‬8MHz‫روی‬ ‫بر‬ ‫و‬ ‫گذاریم‬ ‫می‬OK.‫نمائیم‬ ‫می‬ ‫کلیک‬
‫پنجره‬ ‫حال‬‫می‬ ‫باز‬ ‫ای‬‫شود‬.‫نویسیم‬ ‫می‬ ‫آن‬ ‫در‬ ‫را‬ ‫مربوطه‬ ‫کدهای‬ ‫که‬
‫می‬ ‫اضافه‬ ‫را‬ ‫نیازمان‬ ‫مورد‬ ‫های‬ ‫کتابخانه‬ ‫ابتدا‬ ‫در‬: ‫کنیم‬
8
#include <io.h>
#include <mega32.h>
#include <delay.h>
void main(void)
{
{
( ‫اصلی‬ ‫بدنه‬ ‫در‬ ‫سپس‬main‫می‬ ‫را‬ ‫برنامه‬ ‫کدهای‬ ):‫نویسیم‬
‫ابتدا‬‫ال‬ ‫به‬ ‫اتصال‬ ‫برای‬ ‫را‬ ‫پورت‬ ‫یک‬ ‫باید‬‫کنیم‬ ‫فعال‬ ‫ها‬ ‫دی‬ ‫ای‬
‫پورت‬ ‫ما‬ ‫و‬B‫متغییر‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫فعال‬ ‫را‬a‫حلقه‬ ‫شمارش‬ ‫برای‬ ‫را‬
:‫کنیم‬ ‫می‬ ‫تعریف‬
void main(void)
{
int a;
DDRB=0b11111111;
{
‫را‬ ‫آنها‬ ‫مقدار‬ ‫باید‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫روشن‬ ‫برای‬9‫اگر‬ ‫و‬ ‫کنیم‬
‫روشن‬ ‫بلعکس‬ ‫یا‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫بخواهیم‬
‫و‬‫و‬ ‫کنیم‬ ‫مشخص‬ ‫را‬ ‫آن‬ ‫مقدار‬ ‫وضعیت‬ ‫هر‬ ‫برای‬ ‫باید‬ ‫شوند‬ ‫خاموش‬
‫ما‬ ‫چون‬1‫ال‬ ‫یک‬ ‫فقط‬ ‫لحظه‬ ‫هر‬ ‫در‬ ‫خواهیم‬ ‫می‬ ‫و‬ ‫داریم‬ ‫دی‬ ‫ای‬ ‫ال‬
‫را‬ ‫ها‬ ‫وضعیت‬ ‫و‬ ‫کرده‬ ‫تعریف‬ ‫آرایه‬ ‫یک‬ ‫باید‬ ‫پس‬ ‫شود‬ ‫روشن‬ ‫دی‬ ‫ای‬
:‫نمائیم‬ ‫مشخص‬ ‫آن‬ ‫در‬
char
led[]={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b
00100000,0b01000000,0b10000000};
‫حلقه‬ ‫یک‬ ‫در‬ ‫باید‬ ‫حال‬for‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫خاموش‬ ‫و‬ ‫روشن‬
:‫کنیم‬ ‫تعریف‬
9
for (a=0; a<=7; a++) {
PORTB=led[a];
delay_ms(50);
};
‫عمل‬ ‫باال‬ ‫مانند‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫روشن‬ ‫برای‬
‫حلقه‬ ‫در‬ ‫فقط‬ ‫کنیم‬ ‫می‬for‫فراخوانی‬ ‫ترتیب‬ ‫باید‬‫متغییرها‬
‫ب‬:‫شود‬ ‫می‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫کد‬ ‫و‬ ‫شود‬ ‫رعکس‬
for (a=6 ;a>=0; a--) {
PORTB=led[a];
delay_ms(50);
};
‫و‬ ‫روشن‬ ‫هم‬ ‫با‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫بخواهیم‬ ‫اگر‬ ‫حال‬‫شوند‬ ‫خاموش‬
‫ابت‬‫سپس‬ ‫داد‬ ‫قرار‬ ‫روشن‬ ‫حالت‬ ‫در‬ ‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫باید‬ ‫دا‬
‫داده‬ ‫نمایش‬ ‫تا‬ ‫داد‬ ‫وقفه‬ ‫یک‬‫ب‬‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫شوند‬
‫قرا‬ ‫خاموش‬ ‫حالت‬ ‫در‬ ‫را‬ ‫ها‬.‫نمایش‬ ‫برای‬ ‫وقفه‬ ‫دوباره‬ ‫و‬ ‫داد‬ ‫ر‬
‫عملیات‬ ‫این‬ ‫تکرار‬ ‫برای‬‫هم‬‫حلقه‬ ‫یک‬ ‫در‬ ‫را‬ ‫کار‬ ‫این‬ ‫توان‬ ‫می‬
for‫داد‬ ‫قرار‬:
for(a=0; a<4; a++)
{
PORTB=0b11111111;
delay_ms(50);
PORTB=0b00000000;
delay_ms(50);
};
10
‫خاموش‬ ‫و‬ ‫روشن‬ ‫میان‬ ‫در‬ ‫یک‬ ‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫خواهیم‬ ‫می‬ ‫حال‬
‫یکی‬ ‫را‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫پایه‬ ‫هر‬ ‫وضعیت‬ ‫ابتدا‬ ‫کار‬ ‫این‬ ‫برای‬ ‫کنیم‬
‫میان‬ ‫در‬10‫بعد‬ ‫و‬ ‫کنیم‬ ‫می‬01:‫زیر‬ ‫صورت‬ ‫به‬
for(a=0; a<4; a++) {
PORTB=0b01010101;
delay_ms(50);
PORTB=0b10101010;
delay_ms(50);
};
‫یک‬ ‫یا‬ ‫همزمان‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫خواستیم‬ ‫می‬ ‫که‬ ‫باال‬ ‫حالت‬ ‫دو‬ ‫در‬
‫حلقه‬ ‫شرط‬ ‫در‬ ‫ما‬ ‫شوند‬ ‫روشن‬ ‫میان‬ ‫در‬a<4‫این‬ ‫که‬ ‫دادیم‬ ‫قرار‬
‫می‬ ‫دلخواه‬ ‫مقدار‬ ‫یک‬‫باشد‬‫عملیات‬ ‫تکرار‬ ‫تعداد‬ ‫و‬‫مشخص‬ ‫را‬
‫می‬‫و‬ ‫سازد‬.
‫آخر‬ ‫به‬ ‫مانده‬ ‫یکی‬ ‫مثال‬ ‫در‬‫ال‬‫ها‬ ‫دی‬ ‫ای‬4‫روشن‬ ‫و‬ ‫خاموش‬ ‫بار‬
‫می‬‫هم‬ ‫آخر‬ ‫مثال‬ ‫در‬ ‫و‬ ‫شوند‬4‫خاموش‬ ‫و‬ ‫روشن‬ ‫میان‬ ‫در‬ ‫یکی‬ ‫بار‬
‫می‬.‫شوند‬
‫روشن‬ ‫و‬ ‫خاموش‬ ‫درمیان‬ ‫دوتا‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫نیز‬ ‫حالت‬ ‫این‬ ‫در‬
‫می‬:‫شوند‬
for(a=0;a<4;a++)
{
PORTB=0b11001100;
delay_ms(50);
PORTB=0b00110011;
delay_ms(50);
};
11
‫تما‬ ‫کدنویسی‬ ‫کار‬ ‫اکنون‬‫کد‬ ‫همه‬ ‫بخواهیم‬ ‫اگر‬ ‫و‬ ‫است‬ ‫شده‬ ‫م‬‫های‬
‫قط‬ ‫کنیم‬ ‫اجرا‬ ‫هم‬ ‫سر‬ ‫پشت‬ ‫ترتیب‬ ‫به‬ ‫را‬ ‫باال‬‫نهایت‬ ‫در‬ ‫ما‬ ‫کد‬ ‫عه‬
‫می‬ ‫زیر‬ ‫شکل‬ ‫به‬:‫باشد‬
#include <io.h>
#include <mega32.h>
#include <delay.h>
void main(void)
{
int a;
char
led[]={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b
00100000,0b01000000,0b10000000};
DDRB=0b11111111;
while (1)
{
for (a=0;a<=7;a++) // ‫خاموش‬ ‫و‬ ‫روشن‬ ‫به‬ ‫شروع‬ ‫چپ‬ ‫به‬ ‫راست‬ ‫از‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬
‫مي‬ ‫شدن‬‫کنند‬
{
PORTB=led[a];
delay_ms(50);
};
for (a=6;a>=0;a--) // ‫خاموش‬ ‫و‬ ‫روشن‬ ‫به‬ ‫شروع‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬
‫کنند‬ ‫مي‬ ‫شدن‬
{
PORTB=led[a];
delay_ms(50);
};
for(a=0;a<4;a++) // ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬‫شوند‬ ‫مي‬ ‫خاموش‬ ‫و‬ ‫روشن‬ ‫هم‬ ‫با‬ ‫زمان‬ ‫هم‬ ‫ها‬ ‫دي‬ ‫اي‬
{
PORTB=0b11111111;
delay_ms(50);
PORTB=0b00000000;
delay_ms(50);
};
12
for(a=0;a<4;a++) // ‫مي‬ ‫خاموش‬ ‫و‬ ‫روشن‬ ‫ميان‬ ‫در‬ ‫يک‬ ‫صورت‬ ‫به‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬
‫شوند‬
{
PORTB=0b01010101;
delay_ms(50);
PORTB=0b10101010;
delay_ms(50);
};
for(a=0;a<4;a++) // ‫در‬‫اين‬‫حلقه‬‫ال‬‫اي‬‫دي‬‫ها‬‫دو‬‫تا‬‫درميان‬‫روشن‬‫و‬‫خاموش‬‫مي‬‫شوند‬
{
PORTB=0b11001100;
delay_ms(50);
PORTB=0b00110011;
delay_ms(50);
};
}
}
‫صفحه‬ ‫باالی‬ ‫نوار‬ ‫در‬ ‫نویسی‬ ‫کد‬ ‫اتمام‬ ‫از‬ ‫بعد‬‫روی‬‫گزینه‬Build
All Project file‫کلیک‬ ‫را‬‫می‬‫کنیم‬‫کرده‬ ‫وارد‬ ‫درست‬ ‫را‬ ‫کدها‬ ‫اگر‬
‫باشیم‬‫در‬ ‫داشت‬ ‫نخواهد‬ ‫وجود‬ ‫خطایی‬ ‫پیغام‬ ‫هیچ‬ ‫صفحه‬ ‫پایین‬ ‫در‬
‫رفع‬ ‫را‬ ‫خطا‬ ‫باید‬ ‫صورت‬ ‫این‬ ‫غیر‬‫کنیم‬.
PROTEUS
‫با‬ ‫کار‬ ‫به‬ ‫نوبت‬ ‫حاال‬Proteus‫شبیه‬ ‫را‬ ‫مدار‬ ‫باید‬ ‫ما‬ ‫و‬ ‫رسد‬ ‫می‬
‫کنیم‬ ‫سازی‬.
13
‫افزار‬ ‫نرم‬Proteus‫اجرا‬ ‫را‬‫می‬‫کنیم‬‫سمت‬ ‫صفحه‬ ‫باالی‬ ‫قسمت‬ ‫از‬ ‫و‬
‫چپ‬‫روی‬File => New Project‫کلیک‬‫می‬‫کنیم‬‫نام‬ ‫شده‬ ‫باز‬ ‫پنجره‬ ‫در‬ ‫و‬
‫مشخص‬ ‫را‬ ‫پروژه‬ ‫سازی‬ ‫ذخیره‬ ‫محل‬ ‫و‬ ‫پروژه‬‫می‬. ‫کنیم‬
‫روی‬ ‫بر‬ ‫تغییر‬ ‫بدون‬ ‫را‬ ‫بعدی‬ ‫مراحل‬next‫می‬ ‫کلیک‬.‫کنیم‬
‫روی‬ ‫بر‬ ‫نهایت‬ ‫در‬ ‫و‬finish‫می‬ ‫کلیک‬‫کنیم‬.
‫روی‬ ‫بر‬ ‫برنامه‬ ‫داخل‬p‫کنیم‬ ‫می‬ ‫کلیک‬.
‫قسمت‬ ‫در‬ ‫شده‬ ‫باز‬ ‫پنجره‬ ‫در‬ ‫حال‬keywords‫الزم‬ ‫که‬ ‫قطعاتی‬ ‫نام‬
‫باید‬ ‫ما‬ .‫کنیم‬ ‫می‬ ‫اضافه‬ ‫پروژه‬ ‫به‬ ‫و‬ ‫کرده‬ ‫جستجو‬ ‫را‬ ‫داریم‬
‫میکرو‬Atmega32،Res،Led‫پروژه‬ ‫به‬ ‫زیر‬ ‫شکل‬ ‫همانند‬ ‫را‬
‫نمائیم‬ ‫اضافه‬.
‫باش‬ ‫می‬ ‫مدار‬ ‫بستن‬ ‫به‬ ‫نوبت‬ ‫حال‬‫زیر‬ ‫شکل‬ ‫به‬ ‫اتصاالت‬ ‫که‬ ‫د‬
.‫هستند‬
14
‫میکروکنترل‬ ‫روی‬ ‫بر‬‫ر‬atmega32‫کلیک‬ ‫دابل‬‫می‬،‫کنیم‬‫زیر‬ ‫پنجره‬
‫باز‬‫می‬‫آنجا‬ ‫در‬ ‫و‬ ‫شود‬‫آن‬ ‫به‬ ‫را‬ ‫شده‬ ‫نویسی‬ ‫برنامه‬ ‫فایل‬
‫معرفی‬‫می‬:‫شود‬ ‫اجرا‬ ‫برنامه‬ ‫تا‬ ‫کنیم‬
15
‫پروژه‬ ‫طراح‬ ‫معرفی‬
‫در‬ .‫هستم‬ ‫صدرالمتالهین‬ ‫دانشگاه‬ ‫کامپیوتر‬ ‫مهندسی‬ ‫دانشجوی‬ ‫من‬
‫پروژه‬ ‫اگر‬ ‫تدریس‬ ‫کنار‬ ‫در‬ ‫ولی‬ ‫مشغولم‬ ‫معلمی‬ ‫شغل‬ ‫به‬ ‫حاضر‬ ‫حال‬
‫می‬ ، ‫شود‬ ‫پیشنهاد‬ ‫ای‬.‫پذیرم‬
‫هام‬ ‫مندی‬ ‫عالقه‬ ‫از‬‫می‬‫مشاهده‬ ‫و‬ ‫ای‬ ‫رایانه‬ ‫های‬ ‫بازی‬ ‫از‬ ‫توانم‬
.‫ببرم‬ ‫نام‬ ‫فوتبال‬
.‫ندارد‬ ‫شرعی‬ ‫مشکل‬ ‫هیچگونه‬ ‫پروژه‬ ‫این‬ ‫از‬ ‫استفاده‬
‫ارتباطی‬ ‫های‬ ‫راه‬
: ‫تلفن‬4111941091991
: ‫الکترونیکی‬ ‫پست‬mhossein.kaka@gmail.com
‫می‬ ‫همچنین‬‫با‬ ‫مجازی‬ ‫های‬ ‫شبکه‬ ‫در‬ ‫توانید‬ID : mhosseinkaka‫با‬
.‫باشید‬ ‫ارتباط‬ ‫در‬ ‫من‬

More Related Content

Similar to ساخت ال ای دی رقصان

امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیsomayeh daneshparvar
 
بخش سوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش سوم  :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش سوم  :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش سوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )tahereh sharafi
 

Similar to ساخت ال ای دی رقصان (6)

امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
 
winter
winterwinter
winter
 
winter
winterwinter
winter
 
بخش سوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش سوم  :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش سوم  :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش سوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
 
Presentation1
Presentation1Presentation1
Presentation1
 
86203954
8620395486203954
86203954
 

ساخت ال ای دی رقصان

  • 1. 1 ‫الرحیم‬ ‫الرحمن‬ ‫هللا‬ ‫بسم‬ ‫ریزپردازنده‬ ‫آزمایشگا‬ ‫تبار‬ ‫یعقوبی‬ ‫آقای‬ : ‫استاد‬ ‫کاکا‬ ‫محمدحسین‬ : ‫دانشجو‬ ‫سال‬9911-9911
  • 2. 2 ‫فهرست‬ ‫مقدمه‬............................................................................................................................................3 ‫آشنا‬‫یی‬‫با‬ATMEGA32..........................................................................................................4 CODVISION AVR......................................................................................................................6 PROTEUS..................................................................................................................................12 ‫معرف‬‫ی‬‫طراح‬‫پروژه‬...................................................................................................................15 ‫راه‬‫ها‬‫ی‬‫ارتباط‬‫ی‬.......................................................................................................................15
  • 3. 3 ‫مقدمه‬ ‫پروژه‬ ‫این‬ ‫در‬ .‫است‬ ‫ریزپردازنده‬ ‫آزمایشگاه‬ ‫درس‬ ‫به‬ ‫مربوط‬ ‫رو‬ ‫پیش‬ ‫پروژه‬ ‫میکرو‬ ‫معرفی‬ ‫به‬ ‫ابتدا‬‫کنترل‬‫ر‬ATMEGA 32‫می‬‫پردازیم‬‫این‬ ‫است‬ ‫قرار‬ ‫سپس‬ . ‫میکروکنترل‬‫چند‬ ‫تا‬ ‫کنیم‬ ‫نویسی‬ ‫برنامه‬ ‫را‬LED‫روشن‬ ‫و‬ ‫خاموش‬ ‫را‬‫کند‬. .‫دهیم‬ ‫می‬ ‫نشان‬ ‫عملی‬ ‫صورت‬ ‫به‬ ‫پروتئوس‬ ‫برنامه‬ ‫در‬ ‫را‬ ‫کار‬ ‫نتیجه‬ ‫نهایت‬ ‫در‬ :‫داریم‬ ‫نیاز‬ ‫زیر‬ ‫موارد‬ ‫به‬ ‫پروزه‬ ‫این‬ ‫انجام‬ ‫برای‬ ‫برنامه‬ ‫با‬ ‫آشنایی‬CodVision AVR ‫برنامه‬ ‫با‬ ‫آشنایی‬Proteus ‫زبان‬ ‫با‬ ‫آشنایی‬C ‫میکرو‬ ‫با‬ ‫آشنایی‬‫کنترول‬‫ر‬‫ها‬
  • 4. 4 ‫با‬ ‫آشنایی‬ATMEGA32 ‫پیشرفته‬ ‫معماری‬RISC ‫کم‬ ‫مصرفی‬ ‫توان‬ ‫و‬ ‫باال‬ ‫کارایی‬ ‫دارای‬23‫رجیستر‬8‫بیتی‬ ‫تا‬ ‫سرعت‬61‫مگاهرتز‬ ‫انواع‬‫حافظه‬‫ها‬‫در‬ATMEGA32 kb23‫حافظه‬flash‫ریزی‬ ‫برنامه‬ ‫قابلیت‬ ‫با‬ 6231‫حافظه‬ ‫بایت‬EEPROM‫ریزی‬ ‫برنامه‬ ‫قابلیت‬ ‫با‬ kb3‫حافظه‬SRAM‫داخلی‬ ‫برنامه‬ ‫شدن‬ ‫کپی‬ ‫از‬ ‫جلوگیری‬ ‫برای‬‫های‬ ‫حافظه‬ ‫کردن‬ ‫قفل‬ ‫قابلیت‬ ‫و‬ ‫فلش‬EEPROM‫میکرو‬ ‫این‬ ‫در‬ ‫هم‬‫کنترل‬‫وجود‬‫دارد‬. ‫میکرو‬ ‫این‬‫دارای‬ ‫کنترل‬‫سری‬ ‫یک‬‫خصوصیات‬‫جانبی‬‫می‬ ‫نیز‬‫شامل‬ ‫که‬ ‫باشد‬ : 3‫تایمر/کانتر‬8‫بیتی‬ 6‫تایمر/کانتر‬61‫بیتی‬ 1‫کانال‬PWM ‫سریال‬ ‫ارتباط‬3‫سیمه‬ 8‫دیجیتال‬ ‫به‬ ‫آنالوگ‬ ‫مبدل‬ ‫کانال‬62‫بیتی‬ ‫داخلی‬ ‫آنالوگ‬ ‫کننده‬ ‫مقایسه‬ ‫ارتباط‬USART 1‫میکرو‬ ‫مصرف‬ ‫کردن‬ ‫کم‬ ‫برای‬ ‫خواب‬ ‫حالت‬ ‫مد‬‫کنترلر‬ ‫قابلیت‬‫ارتباط‬JTAG
  • 5. 5 ‫کردن‬ ‫دیباگ‬ ‫برای‬ ‫قابلیت‬ ‫این‬‫و‬‫اشکال‬‫زد‬‫تراشه‬ ‫و‬ ‫برنامه‬ ‫ایی‬ ‫می‬ ‫استفاده‬.‫شود‬ ‫قابلیت‬‫ریزی‬ ‫برنامه‬‫ها‬ ‫حافظه‬‫میکروکنترلر‬ ‫ی‬‫دارد‬ ‫را‬‫یا‬ ‫و‬‫اینکه‬ ‫می‬‫شود‬‫بیت‬ ‫فیوز‬‫را‬‫با‬‫آ‬.‫کرد‬ ‫تنظیم‬ ‫ن‬ ‫می‬ ‫مشاهده‬‫کنید‬‫که‬4‫وجود‬ ‫گذاری‬ ‫نام‬ ‫سری‬‫دارد‬.(A,B,C,D)‫سری‬ ‫هر‬ ‫تا‬ ‫صفر‬ ‫از‬ ‫ها‬ ‫پایه‬ ‫این‬ ‫از‬7 (8‫شدن‬ ‫گذاری‬ ‫نام‬ )‫پایه‬‫د‬‫هرکد‬ ‫به‬ ،‫ا‬‫این‬ ‫از‬ ‫م‬8‫پایه‬ ‫یک‬‫پورت‬‫می‬‫گویند‬‫میشه‬ ‫که‬‫آ‬‫ن‬‫ها‬‫ر‬‫ا‬‫کرد‬ ‫تعریف‬ ‫ورودی/خروجی‬ ‫بعنوان‬. ‫هم‬‫ا‬‫نط‬‫دار‬ ‫خاصی‬ ‫اسم‬ ‫پایه‬ ‫هر‬ ‫گفتم‬ ‫که‬ ‫ور‬(‫د‬‫داخل‬‫قابلیت‬ ‫پرانتز‬ ‫شده‬ ‫مشخص‬ ‫پایه‬ ‫هر‬)‫است‬‫پورت‬ ‫مثال‬ ،) A‫های‬ ‫پایه‬99‫تا‬04‫با‬ ‫که‬ ‫اسم‬PA‫مخفف‬ ‫و‬Port A‫شد‬ ‫مشخص‬‫ه‬‫ا‬‫ند‬(.‫قابلیت‬ADC(‫به‬ ‫آنالوگ‬ ‫مبدل‬ ‫دارن‬ ‫رو‬ ‫شدن‬ )‫دیجیتال‬‫د‬‫دارن‬ ‫قابلیت‬ ‫چند‬ ‫ها‬ ‫پایه‬ ‫از‬ ‫برخی‬ ‫یا‬ ‫و‬‫د‬ ‫می‬ ‫که‬‫ش‬‫ود‬‫انتخا‬ ‫رو‬ ‫خودمون‬ ‫نظر‬ ‫مورد‬ ‫قابلیت‬ ‫پروژه‬ ‫به‬ ‫نسبت‬‫ب‬ ‫کنیم‬ ‫استفاده‬ ‫ها‬ ‫پایه‬ ‫اون‬ ‫از‬ ‫و‬ ‫کنیم‬. ‫حداکثر‬ ‫میکروکنترلر‬ ‫این‬ ‫کاری‬ ‫فرکانس‬91‫مگاهرتز‬‫است‬‫در‬ ‫البته‬ ‫سری‬ATMEGA32L‫مقدار‬ ‫این‬1‫هرتز‬ ‫مگا‬‫می‬‫باشد‬.‫که‬ ‫کنید‬ ‫توجه‬ ‫می‬‫تو‬‫ا‬‫پا‬ ‫های‬ ‫فرکانس‬ ‫نیم‬‫مثل‬ ، ‫تر‬ ‫یین‬9‫هم‬ ‫رو‬ ‫مگاهرتز‬‫انتخاب‬ )‫پروژه‬ ‫با‬ ‫کنیم(متناسب‬.9
  • 6. 6 CODVISION AVR ‫قرار‬ ‫که‬ ‫کارهایی‬ ‫تمام‬ ‫مرحله‬ ‫به‬ ‫مرحله‬ ‫خواهیم‬ ‫می‬ ‫قسمت‬ ‫این‬ ‫در‬ ‫بصورت‬ ( ‫دهیم‬ ‫شرح‬ ‫را‬ ‫دهیم‬ ‫انجام‬ ‫کدویژن‬ ‫برنامه‬ ‫در‬ ‫است‬ )‫تصویری‬. ‫افزار‬ ‫نرم‬ ‫وارد‬ ‫ابتدا‬ ‫در‬CodeVision AVR‫بالی‬ ‫منوی‬ ‫از‬ ‫و‬ ‫شده‬ ‫چپ‬ ‫سمت‬ ‫صفحه‬New Project‫می‬ ‫انتخاب‬ ‫را‬.‫کنیم‬ ‫از‬ ‫که‬ ‫قسمتی‬ ‫در‬‫ما‬‫از‬ ‫خواهید‬ ‫می‬ ‫شود‬ ‫می‬ ‫پرسیده‬CodeWizard Avr‫نمائید‬ ‫استفاده‬‫ما‬ ،No‫می‬ ‫انتخاب‬ ‫را‬.‫کنیم‬ ‫دلخو‬ ‫نام‬ ‫با‬ ‫را‬ ‫پروژه‬ ‫ذخیره‬ ‫محل‬ ‫بعد‬ ‫مرحله‬ ‫در‬‫اه‬‫می‬ ‫وارد‬‫کنیم‬ ‫و‬‫روی‬‫گزینه‬Save‫می‬ ‫کلیک‬.‫کنیم‬
  • 7. 7 ‫نوع‬ ‫باید‬ ‫بعدی‬ ‫مرحله‬ ‫در‬‫کنیم‬ ‫انتخاب‬ ‫را‬ ‫میکروکنترلر‬‫در‬ ‫ما‬ . ‫این‬‫پروژه‬‫از‬Atmega32‫کرده‬ ‫استفاده‬‫ایم‬‫میکروکنترلر‬ ‫این‬ ‫پس‬ ‫می‬ ‫انتخاب‬ ‫رو‬‫کنیم‬‫را‬ ‫فایل‬ ‫نام‬ ‫و‬Led‫می‬‫گذاریم‬. ‫قسمت‬ ‫در‬ ‫بعد‬ ‫مرحله‬ ‫در‬C Compiler‫نوع‬chip‫را‬Atmega32‫و‬Clock ‫روی‬ ‫بر‬ ‫را‬8MHz‫روی‬ ‫بر‬ ‫و‬ ‫گذاریم‬ ‫می‬OK.‫نمائیم‬ ‫می‬ ‫کلیک‬ ‫پنجره‬ ‫حال‬‫می‬ ‫باز‬ ‫ای‬‫شود‬.‫نویسیم‬ ‫می‬ ‫آن‬ ‫در‬ ‫را‬ ‫مربوطه‬ ‫کدهای‬ ‫که‬ ‫می‬ ‫اضافه‬ ‫را‬ ‫نیازمان‬ ‫مورد‬ ‫های‬ ‫کتابخانه‬ ‫ابتدا‬ ‫در‬: ‫کنیم‬
  • 8. 8 #include <io.h> #include <mega32.h> #include <delay.h> void main(void) { { ( ‫اصلی‬ ‫بدنه‬ ‫در‬ ‫سپس‬main‫می‬ ‫را‬ ‫برنامه‬ ‫کدهای‬ ):‫نویسیم‬ ‫ابتدا‬‫ال‬ ‫به‬ ‫اتصال‬ ‫برای‬ ‫را‬ ‫پورت‬ ‫یک‬ ‫باید‬‫کنیم‬ ‫فعال‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫پورت‬ ‫ما‬ ‫و‬B‫متغییر‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫فعال‬ ‫را‬a‫حلقه‬ ‫شمارش‬ ‫برای‬ ‫را‬ :‫کنیم‬ ‫می‬ ‫تعریف‬ void main(void) { int a; DDRB=0b11111111; { ‫را‬ ‫آنها‬ ‫مقدار‬ ‫باید‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫روشن‬ ‫برای‬9‫اگر‬ ‫و‬ ‫کنیم‬ ‫روشن‬ ‫بلعکس‬ ‫یا‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫بخواهیم‬ ‫و‬‫و‬ ‫کنیم‬ ‫مشخص‬ ‫را‬ ‫آن‬ ‫مقدار‬ ‫وضعیت‬ ‫هر‬ ‫برای‬ ‫باید‬ ‫شوند‬ ‫خاموش‬ ‫ما‬ ‫چون‬1‫ال‬ ‫یک‬ ‫فقط‬ ‫لحظه‬ ‫هر‬ ‫در‬ ‫خواهیم‬ ‫می‬ ‫و‬ ‫داریم‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫را‬ ‫ها‬ ‫وضعیت‬ ‫و‬ ‫کرده‬ ‫تعریف‬ ‫آرایه‬ ‫یک‬ ‫باید‬ ‫پس‬ ‫شود‬ ‫روشن‬ ‫دی‬ ‫ای‬ :‫نمائیم‬ ‫مشخص‬ ‫آن‬ ‫در‬ char led[]={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b 00100000,0b01000000,0b10000000}; ‫حلقه‬ ‫یک‬ ‫در‬ ‫باید‬ ‫حال‬for‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫خاموش‬ ‫و‬ ‫روشن‬ :‫کنیم‬ ‫تعریف‬
  • 9. 9 for (a=0; a<=7; a++) { PORTB=led[a]; delay_ms(50); }; ‫عمل‬ ‫باال‬ ‫مانند‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫شدن‬ ‫روشن‬ ‫برای‬ ‫حلقه‬ ‫در‬ ‫فقط‬ ‫کنیم‬ ‫می‬for‫فراخوانی‬ ‫ترتیب‬ ‫باید‬‫متغییرها‬ ‫ب‬:‫شود‬ ‫می‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫کد‬ ‫و‬ ‫شود‬ ‫رعکس‬ for (a=6 ;a>=0; a--) { PORTB=led[a]; delay_ms(50); }; ‫و‬ ‫روشن‬ ‫هم‬ ‫با‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫بخواهیم‬ ‫اگر‬ ‫حال‬‫شوند‬ ‫خاموش‬ ‫ابت‬‫سپس‬ ‫داد‬ ‫قرار‬ ‫روشن‬ ‫حالت‬ ‫در‬ ‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫باید‬ ‫دا‬ ‫داده‬ ‫نمایش‬ ‫تا‬ ‫داد‬ ‫وقفه‬ ‫یک‬‫ب‬‫دی‬ ‫ای‬ ‫ال‬ ‫همه‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫شوند‬ ‫قرا‬ ‫خاموش‬ ‫حالت‬ ‫در‬ ‫را‬ ‫ها‬.‫نمایش‬ ‫برای‬ ‫وقفه‬ ‫دوباره‬ ‫و‬ ‫داد‬ ‫ر‬ ‫عملیات‬ ‫این‬ ‫تکرار‬ ‫برای‬‫هم‬‫حلقه‬ ‫یک‬ ‫در‬ ‫را‬ ‫کار‬ ‫این‬ ‫توان‬ ‫می‬ for‫داد‬ ‫قرار‬: for(a=0; a<4; a++) { PORTB=0b11111111; delay_ms(50); PORTB=0b00000000; delay_ms(50); };
  • 10. 10 ‫خاموش‬ ‫و‬ ‫روشن‬ ‫میان‬ ‫در‬ ‫یک‬ ‫را‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫خواهیم‬ ‫می‬ ‫حال‬ ‫یکی‬ ‫را‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫پایه‬ ‫هر‬ ‫وضعیت‬ ‫ابتدا‬ ‫کار‬ ‫این‬ ‫برای‬ ‫کنیم‬ ‫میان‬ ‫در‬10‫بعد‬ ‫و‬ ‫کنیم‬ ‫می‬01:‫زیر‬ ‫صورت‬ ‫به‬ for(a=0; a<4; a++) { PORTB=0b01010101; delay_ms(50); PORTB=0b10101010; delay_ms(50); }; ‫یک‬ ‫یا‬ ‫همزمان‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫خواستیم‬ ‫می‬ ‫که‬ ‫باال‬ ‫حالت‬ ‫دو‬ ‫در‬ ‫حلقه‬ ‫شرط‬ ‫در‬ ‫ما‬ ‫شوند‬ ‫روشن‬ ‫میان‬ ‫در‬a<4‫این‬ ‫که‬ ‫دادیم‬ ‫قرار‬ ‫می‬ ‫دلخواه‬ ‫مقدار‬ ‫یک‬‫باشد‬‫عملیات‬ ‫تکرار‬ ‫تعداد‬ ‫و‬‫مشخص‬ ‫را‬ ‫می‬‫و‬ ‫سازد‬. ‫آخر‬ ‫به‬ ‫مانده‬ ‫یکی‬ ‫مثال‬ ‫در‬‫ال‬‫ها‬ ‫دی‬ ‫ای‬4‫روشن‬ ‫و‬ ‫خاموش‬ ‫بار‬ ‫می‬‫هم‬ ‫آخر‬ ‫مثال‬ ‫در‬ ‫و‬ ‫شوند‬4‫خاموش‬ ‫و‬ ‫روشن‬ ‫میان‬ ‫در‬ ‫یکی‬ ‫بار‬ ‫می‬.‫شوند‬ ‫روشن‬ ‫و‬ ‫خاموش‬ ‫درمیان‬ ‫دوتا‬ ‫ها‬ ‫دی‬ ‫ای‬ ‫ال‬ ‫نیز‬ ‫حالت‬ ‫این‬ ‫در‬ ‫می‬:‫شوند‬ for(a=0;a<4;a++) { PORTB=0b11001100; delay_ms(50); PORTB=0b00110011; delay_ms(50); };
  • 11. 11 ‫تما‬ ‫کدنویسی‬ ‫کار‬ ‫اکنون‬‫کد‬ ‫همه‬ ‫بخواهیم‬ ‫اگر‬ ‫و‬ ‫است‬ ‫شده‬ ‫م‬‫های‬ ‫قط‬ ‫کنیم‬ ‫اجرا‬ ‫هم‬ ‫سر‬ ‫پشت‬ ‫ترتیب‬ ‫به‬ ‫را‬ ‫باال‬‫نهایت‬ ‫در‬ ‫ما‬ ‫کد‬ ‫عه‬ ‫می‬ ‫زیر‬ ‫شکل‬ ‫به‬:‫باشد‬ #include <io.h> #include <mega32.h> #include <delay.h> void main(void) { int a; char led[]={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b 00100000,0b01000000,0b10000000}; DDRB=0b11111111; while (1) { for (a=0;a<=7;a++) // ‫خاموش‬ ‫و‬ ‫روشن‬ ‫به‬ ‫شروع‬ ‫چپ‬ ‫به‬ ‫راست‬ ‫از‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬ ‫مي‬ ‫شدن‬‫کنند‬ { PORTB=led[a]; delay_ms(50); }; for (a=6;a>=0;a--) // ‫خاموش‬ ‫و‬ ‫روشن‬ ‫به‬ ‫شروع‬ ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬ ‫کنند‬ ‫مي‬ ‫شدن‬ { PORTB=led[a]; delay_ms(50); }; for(a=0;a<4;a++) // ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬‫شوند‬ ‫مي‬ ‫خاموش‬ ‫و‬ ‫روشن‬ ‫هم‬ ‫با‬ ‫زمان‬ ‫هم‬ ‫ها‬ ‫دي‬ ‫اي‬ { PORTB=0b11111111; delay_ms(50); PORTB=0b00000000; delay_ms(50); };
  • 12. 12 for(a=0;a<4;a++) // ‫مي‬ ‫خاموش‬ ‫و‬ ‫روشن‬ ‫ميان‬ ‫در‬ ‫يک‬ ‫صورت‬ ‫به‬ ‫ها‬ ‫دي‬ ‫اي‬ ‫ال‬ ‫حلقه‬ ‫اين‬ ‫در‬ ‫شوند‬ { PORTB=0b01010101; delay_ms(50); PORTB=0b10101010; delay_ms(50); }; for(a=0;a<4;a++) // ‫در‬‫اين‬‫حلقه‬‫ال‬‫اي‬‫دي‬‫ها‬‫دو‬‫تا‬‫درميان‬‫روشن‬‫و‬‫خاموش‬‫مي‬‫شوند‬ { PORTB=0b11001100; delay_ms(50); PORTB=0b00110011; delay_ms(50); }; } } ‫صفحه‬ ‫باالی‬ ‫نوار‬ ‫در‬ ‫نویسی‬ ‫کد‬ ‫اتمام‬ ‫از‬ ‫بعد‬‫روی‬‫گزینه‬Build All Project file‫کلیک‬ ‫را‬‫می‬‫کنیم‬‫کرده‬ ‫وارد‬ ‫درست‬ ‫را‬ ‫کدها‬ ‫اگر‬ ‫باشیم‬‫در‬ ‫داشت‬ ‫نخواهد‬ ‫وجود‬ ‫خطایی‬ ‫پیغام‬ ‫هیچ‬ ‫صفحه‬ ‫پایین‬ ‫در‬ ‫رفع‬ ‫را‬ ‫خطا‬ ‫باید‬ ‫صورت‬ ‫این‬ ‫غیر‬‫کنیم‬. PROTEUS ‫با‬ ‫کار‬ ‫به‬ ‫نوبت‬ ‫حاال‬Proteus‫شبیه‬ ‫را‬ ‫مدار‬ ‫باید‬ ‫ما‬ ‫و‬ ‫رسد‬ ‫می‬ ‫کنیم‬ ‫سازی‬.
  • 13. 13 ‫افزار‬ ‫نرم‬Proteus‫اجرا‬ ‫را‬‫می‬‫کنیم‬‫سمت‬ ‫صفحه‬ ‫باالی‬ ‫قسمت‬ ‫از‬ ‫و‬ ‫چپ‬‫روی‬File => New Project‫کلیک‬‫می‬‫کنیم‬‫نام‬ ‫شده‬ ‫باز‬ ‫پنجره‬ ‫در‬ ‫و‬ ‫مشخص‬ ‫را‬ ‫پروژه‬ ‫سازی‬ ‫ذخیره‬ ‫محل‬ ‫و‬ ‫پروژه‬‫می‬. ‫کنیم‬ ‫روی‬ ‫بر‬ ‫تغییر‬ ‫بدون‬ ‫را‬ ‫بعدی‬ ‫مراحل‬next‫می‬ ‫کلیک‬.‫کنیم‬ ‫روی‬ ‫بر‬ ‫نهایت‬ ‫در‬ ‫و‬finish‫می‬ ‫کلیک‬‫کنیم‬. ‫روی‬ ‫بر‬ ‫برنامه‬ ‫داخل‬p‫کنیم‬ ‫می‬ ‫کلیک‬. ‫قسمت‬ ‫در‬ ‫شده‬ ‫باز‬ ‫پنجره‬ ‫در‬ ‫حال‬keywords‫الزم‬ ‫که‬ ‫قطعاتی‬ ‫نام‬ ‫باید‬ ‫ما‬ .‫کنیم‬ ‫می‬ ‫اضافه‬ ‫پروژه‬ ‫به‬ ‫و‬ ‫کرده‬ ‫جستجو‬ ‫را‬ ‫داریم‬ ‫میکرو‬Atmega32،Res،Led‫پروژه‬ ‫به‬ ‫زیر‬ ‫شکل‬ ‫همانند‬ ‫را‬ ‫نمائیم‬ ‫اضافه‬. ‫باش‬ ‫می‬ ‫مدار‬ ‫بستن‬ ‫به‬ ‫نوبت‬ ‫حال‬‫زیر‬ ‫شکل‬ ‫به‬ ‫اتصاالت‬ ‫که‬ ‫د‬ .‫هستند‬
  • 14. 14 ‫میکروکنترل‬ ‫روی‬ ‫بر‬‫ر‬atmega32‫کلیک‬ ‫دابل‬‫می‬،‫کنیم‬‫زیر‬ ‫پنجره‬ ‫باز‬‫می‬‫آنجا‬ ‫در‬ ‫و‬ ‫شود‬‫آن‬ ‫به‬ ‫را‬ ‫شده‬ ‫نویسی‬ ‫برنامه‬ ‫فایل‬ ‫معرفی‬‫می‬:‫شود‬ ‫اجرا‬ ‫برنامه‬ ‫تا‬ ‫کنیم‬
  • 15. 15 ‫پروژه‬ ‫طراح‬ ‫معرفی‬ ‫در‬ .‫هستم‬ ‫صدرالمتالهین‬ ‫دانشگاه‬ ‫کامپیوتر‬ ‫مهندسی‬ ‫دانشجوی‬ ‫من‬ ‫پروژه‬ ‫اگر‬ ‫تدریس‬ ‫کنار‬ ‫در‬ ‫ولی‬ ‫مشغولم‬ ‫معلمی‬ ‫شغل‬ ‫به‬ ‫حاضر‬ ‫حال‬ ‫می‬ ، ‫شود‬ ‫پیشنهاد‬ ‫ای‬.‫پذیرم‬ ‫هام‬ ‫مندی‬ ‫عالقه‬ ‫از‬‫می‬‫مشاهده‬ ‫و‬ ‫ای‬ ‫رایانه‬ ‫های‬ ‫بازی‬ ‫از‬ ‫توانم‬ .‫ببرم‬ ‫نام‬ ‫فوتبال‬ .‫ندارد‬ ‫شرعی‬ ‫مشکل‬ ‫هیچگونه‬ ‫پروژه‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫ارتباطی‬ ‫های‬ ‫راه‬ : ‫تلفن‬4111941091991 : ‫الکترونیکی‬ ‫پست‬mhossein.kaka@gmail.com ‫می‬ ‫همچنین‬‫با‬ ‫مجازی‬ ‫های‬ ‫شبکه‬ ‫در‬ ‫توانید‬ID : mhosseinkaka‫با‬ .‫باشید‬ ‫ارتباط‬ ‫در‬ ‫من‬