X
تبلیغات
دانلود مقالات برق - مرحله ساخت پروژه در میکرو
درباره ما

ارائه دهنده انواع مقالات در زمینه مهندسی برق
جواد شاليكار
ارائه دهنده انواع مقالات در زمینه مهندسی برق
ایمیل : www.korosh_kabir9705@yahoo.com



  • نویسنده : جواد شاليكار
  • تاریخ : 10:40 AM - 1 Dec 2011

اهداف :

- طریقه طراحی و ساخت پروژه در محیط  PROTEUS و توضیح برنامه بهمراه عملکرد مدارو همچنین یک نمونه از کاربرد آن در صنعت .

 

1-3 طراحی سخت افزار و مراحل ساخت پروژه :

برای طراحی سخت افزار مدار ما در اینجا از نرم افزار شبیه ساز PROTEUS استفاده کردیم که نحوه عملکرد آن در قسمت مربوط به آموزش این نرم افزار آمده است .

در شروع کار ما اول باید قطعاتی را که نیاز داریم انتخاب کنیم و آنها را به قسمت DEVICES  آورده  و با SELECT کردن قطعات آنها را بروی صفحه طراحی بیاوریم .

برای ساخت پروژه مربوطه ما نیاز به قطعات ذیل داریم که عبارتند از :

NO

نام قطعه

تعداد مورد نیاز

1

پل دیود مدل 2W005G

1 عدد

2

آی سی رگولاتور ولتاژ مدل 7805

1 عدد

3

خازن 1000uf

2 عدد

4

آی سی دما مدل LM35

1 عدد

5

مقاومت 10 کیاو اهم

7 عدد

6

مقاومت 330 اهم

3 عدد

7

LED های آبی ، زرد ، قرمز

1 عدد از هر کدام

8

آی سی ATMEGA32

1 عدد

9

LCD گرافیکی 128*64 مدل T6963

1 عدد

10

خازن 680nf

1 عدد

11

میکرو سوئیچ

7 عدد

12

پتانسیومتر 50 کیلو

1 عدد

13

آداپتور 12V DC

1 عدد

(جدول 1-3)

در ابتدا ما نحوه اتصال آی سی ATMEGA32 را به  LCD گرافیکی توضیح می دهیم . همانطور که می دانید آی سی که ما دراین پروژه بکار بردیم از نوع 40 پایه  و LCD گرافیکی ما هم دارای 20 پایه می باشد  ، طریقه اتصال آن در جدول زیر نمایش داده شده است :    

پایه شماره یک LCD گرافیکی( FG ) به سر پایین پتانسیومتر 50کیلو آی سی ATMEGA32وصل شود .

پایه شماره دو LCD گرافیکی ( VSS )  به رمین متصل شود .

پایه شماره سه LCD گرافیکی ( VDD )  به تغذیه 5 ولت متصل شود .

پایه شماره چهارLCD گرافیکی ( CON )  به سر پایین پتانسیومتر 50 کیلو آی سی ATMEGA32وصل شود .

پایه شماره پنج LCD گرافیکی ( WR )  به پایه 22 آی سی  ATMEGA32 ( PC0 /SCL ( وصل شود

پایه شماره شش LCD گرافیکی ( RD )  به پایه 23 آی سی  ATMEGA32( PC1 /SDA  ) وصل شود

پایه شماره هفت LCD گرافیکی ( CE )  به پایه 24 آی سی  ATMEGA32(  PC2 /TCK  ) وصل شود

پایه شماره هشت LCD گرافیکی ( reset )  به پایه 25 آی سی  ATMEGA32 ( PC3/TMS ) وصل شود .

پایه شماره نه LCD گرافیکی ( C/D )  به پایه 26 آی سیATMEGA32 ( PC4 /TDO) وصل شود.

پایه شماره ده LCD گرافیکی (D0)  به پایه 14 آی سی PD0 /RXD) ATMEGA32 ) وصل شود .

پایه شماره یازده LCD گرافیکی (D1)  به پایه 15 آی سی)ATMEGA32 ( PD1 /TXDوصل شود .

پایه شماره دوازده LCD گرافیکی (D2)  به پایه 16 آی سی   (PD2 /INT0) ATMEGA32وصل شود .

پایه شماره سیزده LCD گرافیکی (D3)  به پایه 17 آی سی PD3 /INT1 ) ATMEGA32)وصل شود .

پایه شماره چهارده LCD گرافیکی (D4)  به پایه 18 آی سی  ATMEGA32 (( PD4 /OC1Bوصل شود

پایه شماره پانزده LCD گرافیکی (D5)  به پایه 19 آی سی ATMEGA32 (( PD5 /OC1Aوصل شود .

پایه شماره شانزده LCD گرافیکی (D6)  به پایه 20 آی سی  (PD6 /ICP) ATMEGA32وصل شود .

پایه شماره هفده LCD گرافیکی (D7)  به پایه 21 آی سی ATMEGA32 (( PD7 /OC2وصل شود .

پایه شماره هجده LCD گرافیکی (FS1)  به پایه 27 آی سی ATMEGA32 ((PCS /TDIوصل شود .

(جدول 2-3

2-3 شمای آی سی ATMEGA32 :

 

ATMEGA32دارای 4 پورت A,B,C,D می باشد که ما در اینجا پورت A را بعنوان پورت ورودی در نظر گرفتیم که این پورت به عنوان ADC ( مبدل آنالوگ به دیجیتال ) جهت بکارگیری سنسور دمایLM35 و همچنین برای تنظیم میکروسوئیچ های سال ، ماه ، روز ، بکار برده  شده است

اما در پورت B پین های Pb0,1,2 به عنوان پورت خروجی جهت نمایش سه وضعیت دما ،  HOT -NORMAL - COOL) ) توسط سه عدد LED به نمایش در می آورد .

همچنین پین های Pb3,4,5 بعنوان پین های ورودی ما تعریف شده که این سه پین مربوط به میکروسوئیچ های تنظیم ساعت ، دقیقه  و SET می باشد .

و در پایان پورت D ما هم بعنوان پورت DATA در نظر گرفته شده است ، که این پورت جهت فرستادن اطلاعات آی سی ATMEGA32 به LCD گرافیکی مورد استفاده قرار می گیرد . البته یک میکروسوئیچ دیگر در این مدار جهت RESET کردن ( به صورت سخت افزاری ) تعبیع شده است که برای ریست کردن دستگاه در مواقع ضروری از آن استفاده می کنیم .

پتانسیومتر 50کیلو برای تنظیم کنتراست LCD بکار برده می شود .

3-3 نقشه سخت افزار مدار:

 

4-3 نرم افزار مدار( برنامه ) :

بعد از اینکه سخت افزار را طراحی کردیم برنامه مربوط به این مدار را می نویسیم ، در زیر برنامه به همراه توضیحات آن را مشاهده خواهید کرد : 

   ---------------------------------------------------------------------------

1- نوع میکرو استفاده شده را مشخص می کنیم.                                    regfile = "m32def.dat"$

  ---------------------------------------------------------------------------

2- مقدار فرکانس کریستال جهت کار میکرو را مشخص می کنیم.                       crystal = 8000000$

-----------------------------------------------------------------------------

Config Graphlcd = 128 * 64 , Dataport = Portd , Controlport = Portc ,

 

 Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8

3-  پایه ها و نوع  LCD را برای میکرو تعریف می کنیم.

-----------------------------------------------------------------------------

4- مکان نمای LCD را خاموش می کنیم.                                                                Cursor Off

-----------------------------------------------------------------------------

5- پورت A را بعنوان پورت ورودی تعریف می کنیم .                             Config Port A = Input

-----------------------------------------------------------------------------

6- پایه پین های b.0,b.1,b.2 را بعنوان پین های خروجی تعریف Config Pinb.0 = Output

می کنیم و پایه پین های b.3,b.4,b.5 را بعنوان پین های ورودی    Config Pinb.1 = Output

تعریف می کنیم .                                                Config Pinb.2 = Output

Config Pinb.3 = Input

Config Pinb.4 = Input

Config Pinb.5 = Input

Config Adc = Single , Prescaler = Auto

: single/free 7- گزینه هایتوسط 

  انتخاب شود مقدار دیجیتال سیگنال آنالوگ توسطSingle در حالتی که

دستور getadc در یک متغیر از جنس word ریخته می شود و در حالتی که free انتخاب شود مقداردیجیتال سیگنال آنالوگ در رجیستر مربوط به adc ریخته می شود .

: PRESCALER

 اين گزينه کلاک ADC را مشخص می کند و در حالتی که AUTO انتخاب شود کامپاير با توجه به کريستال انتخاب شده بهترين کلاک را در نظر ميگيرد ،موارد ديگر برای کلاک عبارتند از 2و 4و 8و 16 و 32 و 64 يا 128 است که به جای گزینه AUTO نوشته مي شود .

-----------------------------------------------------------------------------

Dim S As Word , M As Word , H As Word

Dim D As Word , E As Word , Y As Word

Dim W As Word

8-  متغیرهای S,M,H به ترتیب ساعت ، دقیقه و ثانیه جهت نمایش زمان تعریف می شود، و متغیرهای D,E,Y  به ترتیب سال ، ماه و روز جهت نمایش تاریخ نمایش می دهد .

متغیر W را جهت نمایش دما تعریف می شود .

-----------------------------------------------------------------------------

9- صفحه LCD را پاک می کند .                                                       Cls

-----------------------------------------------------------------------------

10-  با این دستور می توان یک تصویر را با روش Showpic 35 , 1 , Arm

GRAPHIC CONVERTER در مختصات X وY(1 و35 ) فراخوانی کرد .

Arm برچسبی است که فایل تصویر ما در حافظه flash با فرمت  BGFذخیره شده است .

Wait 4

Cls Graph

Locate 4 , 1

Lcd "University F.Z.A"

Wait 4

                                                                                                           Cls Text

11- به مدت چهار ثانیه منتظر مانده و تصویر بروی LCD را پاک می کند و در ستون اول ،سطر چهارم شروع به نمایش عبارت University F.Z.A کرده و به مدت چهار ثانیه منتظر مانده و متن نوشته شده بروی LCD را پاک می کند .

------------------------------------------------------------------

Showpic 1 , 1 , Mypic

Wait 4

Cls Graph

Locate 2 , 1

Lcd "Masoud Nazari"

Wait 4

Cls Text

12-  با این دستور می توان یک تصویر را با روش GRAPHIC CONVERTER در مختصات X وY(1 و1 ) فراخوانی کرد .                                                  

MYPIC برچسبی است که فایل تصویر ما در حافظه flash با فرمت  BGFذخیره شده است .

به مدت چهار ثانیه منتظر مانده و تصویر بروی LCD را پاک می کند و در ستون اول ،سطر دوم شروع به نمایش عبارت Masoud Nazari کرده و به مدت چهار ثانیه منتظر مانده و متن نوشته شده بروی LCD را پاک می کند .

-----------------------------------------------------------------------------

Locate 3 , 1

Lcd "MASTER:         Engineering Hor"

Wait 4

Cls Text

13-  در ستون اول ، سطر سوم شروع به نمایش عبارت  "MASTER:  Engineering Hor"

کرده و به مدت چهار ثانیه منتظر مانده و متن نوشته شده بروی LCD را پاک می کند .

 

14- با این دستور مبدل آنالوگ به دیجیتال شروع بکار می کند .                                                                                                                                                 Start Adc

-----------------------------------------------------------------------------

S = 0 : M = 0 : H = 0

Locate 1 , 1

15- متغیرهای S,M,H را برابر صفر قرار داده و در ستون اول ،                              Lcd "TIME>"

  سطر اول شروع به نمایش عبارت TIME می کند .

-----------------------------------------------------------------------------

D = 1 : E = 1 : Y = 80

Locate 4 , 1

                                                                                                Lcd "DATE>"

Locate 7 , 1

Lcd "Temp>"

16- متغیرهای D,E را برابر صفر قرار داده ومتغیر Y=80 قرار میدهد و در ستون اول ، سطر اول شروع به نمایش عبارت DATE می کند ، در ستون اول سطر هفتم شروع به نمایش عبارت TEMP می کند .

-------------------------------------------------------------------------------------------------   

17- با این دستور حلقه ای در برنامه بوجود می آید که از LOOP به                                                                                                                                                            DO

DO پرش می کند .

-----------------------------------------------------------------------------

                                                                                            ) W = Getadc(0

W = W / 2

Locate 7 , 8

Lcd W ; " ^c"

Select Case W

18-  با این دستور سیگنال آنالوگ وارد شده به کانالهای ( 0 -7 ) به مقدار دیجیتال تبدیل می شود و در متغییر  var از نوع داده WORD قرار می گیرد .

Var = GETADC( channel)

Var نتیجه تبدیل و channel کانال مبدل آنالوگ به دیجیتال داخلی انتخاب شده است که می تواند بین  0-7 باشد .

متغیر W را تقسیم بر 2 نموده دوباره در همان متغیر W ذخیره می کند و در ستون هشتم ، سطر هفتم شروع به نمایش متغیر W به همراه ^C می نماید .

متغییر W برای شرایط پیشبینی شده انتخاب می شود .

-----------------------------------------------------------------------------

19- اگر متغیر انتخاب شده ( W)کوچکتر یا مساوی 10 باشد   Case Is =< 10

   پورت bرا برابر 1 قرار داده و در ستون اول ، سطر هشتم Portb = 1

شروع به نمایش عبارت COOL می کند .                              Locate 8 , 1

Lcd "Cool     "

---------------------------------------------------------------------------

Case 11 To 32

Portb = 2

Locate 8 , 1

Lcd "Normal "

20- اگر متغیر انتخاب شده ( W) بین 11 تا 32 باشد پورت b را برابر 2 قرار داده و در ستون اول ،

سطر هشتم  شروع به نمایش عبارتNormal  می کند .

-----------------------------------------------------------------------------

Case Is >= 33

Portb = 4

Locate 8 , 1  

                                                                                            " Lcd "Hot 

End Select

21- اگر متغیر انتخاب شده ( W)بزرگتر یا مساوی 33 باشد پورت  bرا برابر 4 قرار داده و در ستون اول                                                                 

، سطر هشتم   شروع به نمایش عبارت Hot می کند و به حالت پیش بینی شده پایان می دهد .

-------------------------------------------------------------------------------------------------

If D > 31 Then

Incr E

D = 1

End If

22-  اگر متغیر D >31 (روز) باشد آنگاه متغیر E ( ماه) را یک واحد افزایش داده و D=1

      قرارمی دهد وبه این شرط پایان می دهد .           

---------------------------------------------------------------------------

If E > 12 Then

Incr Y

E = 1

End If

Locate 4 , 8

"  ";Lcd Y ; "/" ; E ; "/" ; D

23- اگر متغییر E> 12 باشد آنگاه متغیر ( سال ) را یک واحد افزایش داده و متغیر E=1 قرار  می

دهد و به این شرط پایان می دهد ، در ستون 8 ، سطر 4 شروع به نمایش متغیرهای Y,E,D می کند .

-----------------------------------------------------------------------------

If Pinb.5 = 0 Then Gosub Tin

24- اگر pinb.5=0 شود ( دکمه  setفشار داده شود ) آنگاه به زیر برنامه Tin می رود در غیر اینصورت به خط بعدی برنامه می رود .

-----------------------------------------------------------------------------

Locate 1 , 8

"  ";Lcd H ; ":" ; M ; ":" ; S

Waitms 995

Incr S

25- از ستون 8 ، سطر اول LCD متغیر های H,M,S شروع به نمایش می کند  و بمدت 995 میلی ثانیه منتظر مانده و متغیر S را یک واحد افزایش می دهد .

-----------------------------------------------------------------------------

If S > 59 Then

S = 0

Incr M

Locate 1 , 8

"  ";Lcd H ; ":" ; M ; ":" ; S

End If

26- اگر متغیر S>59 شود آنگاه S=0 قرار داده و یک واحد M  را افزایش داده و در ستون هشتم ، سطر اول شروع به نمایش متغیر های H.M,S می کند , پایان شرط .

-----------------------------------------------------------------------------

If M > 59 Then

M = 0

Incr H

End If

27- اگر متغیر M>59 شود آنگاه M=0 قرار داده و متغیر H  را یک واحد افزایش می دهد ، پایان       شرط .

  --------------------------------------------------------------------------

If H > 23 Then

H = 0

Incr D

Locate 1 , 8

"  ";Lcd H ; ":" ; M ; ":" ; S

End If

28- اگر متغیر H>23 شود آنگاه H=0 قرار داده و یک واحد D (روز) را افزایش داده و در ستون هشتم ، سطر اول شروع به نمایش متغیر های H .M , S می کند , پایان شرط .

in:

Bitwait Pinb.5 , Set

S = 0

توجه  : متغیر Tin برای تنظیم ساعت و تاریخ در نظر گرفته شده است که مربوط به زیر برنامه ها می باشد

29- در این خط ، برنامه  آنقدر منتظر مانده تا Pinb.5  یک ( کلید  setرها شود) ، تا به خط بعدی برنامه رود و متغیر s = 0  قرار می دهد .

b.3 = 0 Then Gosub Incr_h

If Pinb.4 = 0 Then Gosub Incr_m

If Pina.1 = 0 Then Gosub Incr_d

If Pina.2 = 0 Then Gosub Incr_e

If Pina.3 = 0 Then Gosub Incr_y

If Pinb.5 = 0 Then Gosub Tout

Loop

30- در اینجا برای  زیربرنامه ها حلقه ای را تشکیل داده که می آید کلیدهای ساعت ، تاریخ و set را جاروب کرده و چک می کند که کدام یک از این 6 کلید فشار داده شده است ، وبا توجه به اینکه کدام کلید فشار داده شده به زیر برنامه مورد نظر می رود .

زیر برنامه ساعت :31- متغیر H  را یک واحد افزایش داده ، اگر متغیر23 H >   شود سپس H=0

قرار داده و این شرط را پایان می دهد .                            Incr_h:

در ستون هشتم ، سطر اول شروع به نمایش متغیر S, M, Hمی کند و  Incr H

آنقدر منتظر مانده تا Pinb.3 ست شود ( دکمه رها شود ) و تا فشار دادن                                                                                                 If H > 23 Then

دکمه دیگر همین زیر برنامه را اجراء می کند .                   H = 0

End If

Locate 1 , 8

"  ";Lcd H ; ":" ; M ; ":" ; S

Bitwait Pinb.3 , Set

Return

زیر برنامه دقیقه :           

                                                                                     :  Incr_m

                                                                                                                  Incr M

If M > 59 Then

M = 0

End If

Locate 1 , 8

"  ";Lcd H ; ":" ; M ; ":" ; S

Bitwait Pinb.4 , Set

Return

32-  متغیر M  را یک واحد افزایش داده ، اگر متغیر59 M >   شود سپس M = 0 قرار داده و این شرط را پایان می دهد .

در ستون هشتم ، سطر اول شروع به نمایش متغیر  S , M , Hمی کند و آنقدر منتظر مانده تا Pinb.4                                                                              

ست شود ( دکمه رها شود ) و تا فشار دادن دکمه دیگر همین زیر برنامه را اجراء می کند .

-------------------------------------------------------------------------------------------------

زیر برنامه روز :                                                                                                                                                                               Incr_d:

Incr D

If D > 31 Then

D = 1

End If

Locate 4 , 8

"  ";Lcd Y ; "/" ; E ; "/" ; D

Bitwait Pina.1 , Set

Return

33-  متغیر D  را یک واحد افزایش داده ، اگر متغیر31 D >   شود سپس D = 1 قرار داده و این شرط را پایان می دهد .

در ستون هشتم ، سطر اول شروع به نمایش متغیر  D , E, Yمی کند و آنقدر منتظر مانده تا Pina.1 ست شود ( دکمه رها شود ) و تا فشار دادن دکمه دیگر همین زیر برنامه را اجراء می کند .

-------------------------------------------------------------------------------------------------

زیر برنامه ماه :                                                                                            Incr_e:

Incr E

If E > 12 Then

E = 1

End If

Locate 4 , 8

"  ";Lcd Y ; "/" ; E ; "/" ; D

Bitwait Pina.2 , Set

Return

34-  متغیر E  را یک واحد افزایش داده ، اگر متغیر12  E >   شود سپس E = 1 قرار داده و این شرط را پایان می دهد .

در ستون هشتم ، سطر اول شروع به نمایش متغیر  D , E, Yمی کند و آنقدر منتظر مانده تا Pina.2                                                                          ست

شود ( دکمه رها شود ) و تا فشار دادن دکمه دیگر همین زیر برنامه را اجراء می کند .

-------------------------------------------------------------------------------------------------

زیر برنامه سال :                                                                                      Incr_y:

Incr Y

If Y > 99 Then

Y = 80

End If

Locate 4 , 8

"  ";Lcd Y ; "/" ; E ; "/" ; D

Bitwait Pina.3 , Set

Return

35-  متغیر Y  را یک واحد افزایش داده ، اگر متغیر99  Y >   شود سپس Y = 80 قرار داده و این شرط را پایان می دهد .

در ستون هشتم ، سطر چهارم شروع به نمایش متغیر  D , E, Yمی کند و آنقدر منتظر مانده تا Pina.3 ست

شود ( دکمه رها شود ) و تا فشار دادن دکمه دیگر همین زیر برنامه را اجراء می کند .

------------------------------------------------------------------

زیر برنامه خارج شدن از حالت تنظیمات :                                                                                                                                      Tout:

Bitwait Pinb.5 , Set

Loop

36- با فشار دادن مجدد کلید Pinb.5 و رها کردن آن از تنظیمات خارج می شویم ، پایان حلقه .

-----------------------------------------------------------------------------

End

Arm:

bgf "BASCOM1.BGF"$

Mypic:

bgf "BASCOM2.BGF"$

37- پایان برنامه .

 توجه : تصویر آرم دانشگاه و تصویر شخصی lable است که بعد از اتمام برنامه (END ) نوشته می شود .

-----------------------------------------------------------------------------

بعد از نوشتن برنامه ، برنامه را یک بار توسط نرم افزار PROTEUSE تست می کنیم و در صورت جواب گرفتن برنامه را توسط پروگرمر ، پروگرام می کنیم حال بعداز اینکه آی سی را پروگرام کردیم پشت فیبر مدار را توسط همین نرم افزار ، زده و قطعات را بروی فیبر مونتاژ می کنیم در ذیل پشت و روی فیبر را می توانید مشاهده فرمایید :


دسته بندی : ميكروكنترولر AVR



آخرین مطالب

» سنسور ( 24 Dec 2011 )
» biophysics ( 23 Dec 2011 )
» ميني پي ال سي ( 3 Dec 2011 )
» ( 3 Dec 2011 )
» مقاومت ( 3 Dec 2011 )
» رله ( 3 Dec 2011 )
» دیود ( 3 Dec 2011 )
» ترانزیستور[1] ( 3 Dec 2011 )
» میکروکنترلر AVR ( 1 Dec 2011 )
» دستورات برنامه نویسی BASCOM ( 1 Dec 2011 )
» پایه های میکرو ( 1 Dec 2011 )
» کار با محیط بسکام ( 1 Dec 2011 )