برنامه نویسی به زبان basic برای میکروکنترلرهای pic

41
ان ب ه ز ی ب س ی و ن امه رب بBasic رهای ل ر ت ن ک رو ک ی م رای بPIC اول ت م س ق ی , ل ی م س ا ان ب ز ون/ چ 1 ف ل ت خ م های ان ب ا ز زا ب ر ها ل ر ت ن ک رو ک ی م امه رب ب وان ت میbasic وc . ش و ن ان ب ه ز ی بس ی و ن امه رب بBasic رهای ل ر ت ن ک رو ک ی مرای بPIC ت ش ی ا ل ی م س ا ان ب ه ز ی بس ی و ن امه رب ب ر از ب ساده ر ل ر ت ن ک رو ک ی م ی ل ی م س ا ان ب ز وزات ت شاد د عد ت ه/ رچ گ اPIC ت ش اF ک ی سI یK ب ر از مت ک. ا د لد یP ت او ف ت م م ه ا وز ب ت ش د د ت/ چ ها دز نP ت ر ها ل ب ا/ ی م کا ن ی . ا ت ق ا ب وان ن ی م وز_ ظ ن م ن یرای ا ب ی زا لف ت خ م ر های ل ب ا/ ی م کا رد. ک ها کاز نe ا وع از نF ک ا ب ط ب ق ف که ت ش ر ا هت ن ر ل ر ت ن ک رو ک ی م ه ساز یK ی; س ر و ل ب ا/ ی م م، کا ه ی د م ح ی ض و ن نe زه ا ا م و دزب ن ک ی م هاد ن; سI یs ب ری که ل ب ا/ ی م کاPIC ی عن تPIC Simulator IDE ت ی سا وت زا از نe ه ا خ س ی ن ی ر ب د دب ج وان ن ی م د که; اس ی ب م

Upload: api-3725534

Post on 26-Jul-2015

375 views

Category:

Documents


0 download

DESCRIPTION

223

TRANSCRIPT

Page 1: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

زبان به نویسی میکروکنترلرهای Basicبرنامه PICبرای

اول قسمت

اسمبلی , زبان مختلفچون های زبان با را ها میکروکنترلر برنامه میتوان

basic وc. نوشت

زبان به نویسی میکروکنترلرهای Basicبرنامه برنامه PICبرای از تر ساده

اسمبلی زبان دستورات تعداد اگرچه است اسمبلی زبان به نویسی

بیسیکاست PICمیکروکنترلر از .کمتر

. ها کامپایلر این یافت توان می منظور این برای را مختلفی های کامپایلر

آنها از نوع یک با فقط استکه بهتر لذا متفاوتند هم با دستور چند در تنها

. کرد کار

و کامپایلر دهم، می توضیح آن درباره و کنم می پیشنهاد که کامپایلری

میکروکنترلر ساز توان PIC Simulator IDE یعنی PICشبیه می که باشد می

وبسایت از را آن نسخه ترین کرد /http://www.oshonsoft.comجدید دانلود

قسمت) در افزار نرم این رجیسترشده همینسایت دانلودهاینسخه

.). باشد می موجود

. 3در نمی فرقی هیچ میشود داده شرح کامپایلر این قسمتدستورات

نرم . این کامپایلر بزرگ یا بنویسید حروفکوچک با را دستورات که کند

. دهد نمایشمی آبی رنگ به را ها آن و دهد تشخیصمی را دستورات افزار

Page 2: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

نمائید نویسی برنامه بیسیک زبان به افزار نرم این در بتوانید اینکه برای

منوی روی و کنید باز را برنامه سپس TOOLSابتدا و را Basic Compilerرفته

. نمائید انتخاب

دستورات:

DIM

) ( . می دیتا متغیرها میشود استفاده ها متغیر اعالم برای دستور این از

.BIT , BYTE , WORDتوانند باشند

بایت   یک ، یک یا است صفر یا بیت یک 8از byteیک و میشود تشکیل بیت

word ) از ) .2کلمه میشود تشکیل بایت

از قبل منتها نمود استفاده برنامه جای هر در توان می را دستور این

. متغیر از استفاده

که متغیرهایی عنوان  تعداد به توان تعریفنمود bit,byte,wordمی برنامه در

حافظه به .RAMبستگی دارد میکروکنترلر

میکروکنترلر در مثال عنوان بایتو 52متغیربیت , PIC 16F84,  16 به 25متغیر

. تعریفکرد مجزا طور به توان می کلمه متغیر

میکروی که ندانید به . PIC شاید توانید می دارد کلمه یا بایت متغیر چند شما

چندان . موضوع این دانستن که بدانید باید البته کنید مراجعه آن شیت دیتا

. خورد نخواهید بر مشکلی به نویسی برنامه در و ندارد اهمیتی

دستور کلی :DIMفرم است زیر صورت به

DIM varname)array( datatype

Page 3: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

تواند datatypeکه یا bit , byteمی :wordو . مثال باشد

DIM A AS BIT

DIM B AS BYTE

DIM X AS WORD

از بخواهیم می arrayاگر انجام را کار این زیر مثال مطابق کنیم استفاده

دهیم:

DIM A)10( AS BYTE

دستور این های 10با نام با بایت نوع از .A9تا A0متغیر تعریفمیشود

Varname.BIT

از استفاده با توان می باشد تعریفشده بایت صورت به متغیری اگر

. که داشت دسترسی متغیر آن بیتهای تک تک به فوق شماره BITدستور

از تواند می استکه نظر . 7تا 0بیتمورد باشد

مثال:

Dim name As Byte

name.3 = 0

متغیر از بیت چهارمین به را صفر عدد فوق .nameدستور دهد اختصاصمی

 SFRname.BITname

Page 4: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

خاص ) منظور با های ثبات بیتهای به توان می باال دستور از استفاده با

SFRs. یافت( دست

دستور ) با پورت( PORTA.1مثال بیت دومین به توان با Aمی یا و یافت دست

بیت( INTCON.INTFدستور ) به توان .INTCONثبات INTFمی یافت دست

Varname.HB

Varname.LB

به توان می باال دستورات با باشد تعریفشده کلمه صورت به متغیری اگر

. داشت دسترسی آن بایت ارزشترین با و ارزشترین کم

بایتاستو HBکه ارزشترین .LBبا بایت ارزشترین کم

DIM A AS BYTE

DIM C AS BYTE

DIM B AS WORD

A = B.HB

C = B.LB

    =   

تغییر را ثبات یا متغیر یک محتویات توان می تساوی عالمت از استفاده با

: است. زیر صورت به دستور ای کلی فرم داد

Dataname = statement

Page 5: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

:statementکه باشد متغیر یک نام یا و عدد یک تواند می

PORTA.1 = 1

B = A

SYMBOL

با , های ثبات بیتهای ها متغیر به توان می دستور این از استفاده با

در , که دیگری های نام خاص منظور با های ثبات خود یا خاصو منظور

نام , از متغیر آن نام جای کردوسپسبه اطالق هستند تر دار معنی برنامه

. میشود استفاده آن سمبولیک

: است زیر صورت به دستور این کلی فرم

SYMBOL  name = Dataname

مثال:

SYMBOL  LED1 = PORTB.0

) پورت ) بیت اولین بیتصفر به باال دهد LED1نام Bدستور اختصاصمی را

. میسازد ذخیره آن در را یک مقدار زیر دستور سپسبا و

LED1 = 1

HIGH

Page 6: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

آن مقدار و میشود استفاده بیت یک مقدار تغییر برای نیز دستور این از

. به تبدیل را خاصی پایه تواند می دستور این همچنین کند یکمی را

حال در را آن و کند . 1خروجیمی این کلی فرم دهد می قرار منطقی

: است زیر صورت به دستور

HIGH  Pinname

مثال:

HIGH PortB.0

LOW

آن   مقدار و میشود استفاده بیت یک مقدار تغییر برای نیز دستور این از

. به تبدیل را خاصی پایه تواند می دستور این همچنین کند می صفر را

حالت در را آن و کند . 0خروجیمی این کلی فرم دهد می قرار منطقی

: است زیر صورت به دستور

LOW  Pinname

مثال:

LOW ADCON0.ADON

بیت فوق ثبات ADONدستور .ADCON0از کند می صفر  را

TOGGLE

Page 7: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

تغییر   برای نیز دستور این بیت از یک را مقدار آن مقدار و میشود استفاده

بیت آن اگر یعنی را 0معکوسمیسازد آن .1بوده بالعکس و کند می

دستور توانداین می دستور این خاصی همچنین معکوسمیسازد ) پایه را 1را

به 0و 0به ( 1را پایه یک به خودکار طور به مشخصشده پایه کند می تبدیل

: . است زیر صورت به دستور این کلی فرم میشود تبدیل خروجی

TOGGLE Pinname

مثال:

TOGGLE PORTA.1

نکته:

، راستعدد سمت در یا ، دهیم نشان هگز مبنای در را عددی بخواهیم اگر

آن Hعالمت سمتچپ در یا و دهیم می مانند )0xقرار دهیم می (0x55قرار

عدد( , 55Hیا ) .55یعنی هگز مبنای در

) سمتراست ) در یا دهیم نشان باینری دو مبنای در را عددی بخواهیم اگر

عالمت عدد عالمت Bآن آن سمتچپ در یا و دهیم می می %قرار قرار

مانند ) ( .000110011Bیا( )00011011%دهیم

GOTO

و پرشکند برچسبمشخصشده به برنامه که باعثمیشود دستور این

: یابد می ادامه برچسب آن از برنامه اجرای

Page 8: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

GOTO  Label

گیرد " : " قرار عالمت باید برچسب یک انتهای :.در مثال

DIM A AS WORD

A = 0

loop:

A = A + 1

GOTO loop

WAITMS  delay

WAITUS delay

WAITMS و کند می ایجاد ثانیه میلی حسب بر بر WAITUSتاخیری تاخیری

: . مثال کند می ایجاد ثانیه میکر حسب

WAITMS 10

WAITUS 50

دستورات به writeو readاما .EEPROMکه مربوطمیشوند

READ

 : دستور کلی فرم

READ Address,Var

محتویاتحافظه توان می فرمان این داده EEPROMحافظه ) EEPROMبا

) برنامه متغیر نه در آدرسآن که را تراشه است Addressداخلی شده ذخیره

Page 9: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

. متغیر آدرسدر این در اطالعاتموجود خواند بایتاست Varرا نوع از که

. کپیمیشود

داده حافظه از PIC 16F876، 256 تراشه EEPROMمقدار که بایتاست

به  00Hآدرس و میشود .0FFHشروع میشود ختم

آدرسحافظه توان یا EEPROMمی و هگز مبنای در فوق دستور در را

با آدرسرا این مستقیم غیر طور به یا و نوشت باینری یا و دسیمال

: مشخصنمود متغیر یک از استفاده

DIM A AS BYTE

DIM B AS BYTE

DIM C AS BYTE

A = 10

READ A, B

READ 5, C  

آدرسهای   اطالعات فوق دستورات و 10مجموعه حافظه 5هگز از هگز

متغیرهای PICتراشه EEPROMداده درون ترتیب به .B ,Cرا ریزد می

WRITE

: است زیر صورت به دستور این کلی فرم

WRITE  Address,Value

مقدار دستور حافظه Valueاین در آدرسآن EEPROMرا که تراشه داخلی

متغیر :Address  توسط , نویسد می است مشخصشده

Page 10: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

DIM A AS BYTE

DIM B AS BYTE

A = 10

B = 14

WRITE A, B

WRITE 11, B

عدد   فوق دستورات آدرسهای 14مجموعه در و 10را از 11هگز هگز

تراشه EEPROMحافظه .PICداخلی ریزد می

GOSUB

دستور : این کلی                             فرم

GOSUB  Label                   

برچسب به برنامه دستور این . Labelبا واقع در برچسب این کند پرشمی

. ) دستور ) باید برنامه زیر انتهای در است سابروتین برنامه زیر یک

RETURN از بعد که عبارتی به برنامه تا .GOSUBباشد برگردد دارد قرار

. شده آورده قسمت این انتهای در دستور این از مثالی

IF … THEN…ELSE…END IF

. نظر شرطمورد اگر دهد می انجام را ای مقایسه آزمون یک فرمان این

از بعد عبارت به برنامه بود به THENبرقرار اینصورت غیر در رود می

از بعد با ELSEعبارت شرطی سپسدستور و رود می END IFمی اتمام به

: مثال. رسد

Page 11: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

IF PORTA.0 = 0 THEN

   PORTB.0 = 1

ELSE

   PORTB.0 = 0

ENDIF

IF……THEN

: است زیر صورت به دستور این کلی فرم

IF  statement  THEN  GOTO label

. شرطمورنظر اگر دهد می انجام ای مقایسه آزمون یک نیز فرمان این

بود برچسب برقرار به کند labelبرنامه به پرشمی برنامه ایصورت غیر در

. رود می دستور این از بعد به  عبارت نیازی دستور . END IFاین دقت ندارد

فقطعبارت دستور این در که باشید .GOTO labelداشته گیرد می قرار

نکته:

بیتهای تمام صفرباشند  TRISA,TRISB,TRISC,TRISDثباتهای  اگر

مقدار اگر و انتخابمیشود خروجی عنوان به ثبات آن به مربوط پورت

.1آنها میشود شناخته ورودی عنوان به ثبات آن به مربوط پورت باشد

پین توان می شده یاد های ثبات بیتهای دهی مقدار با دیگر عبارت به

. با مثال ورودیمشخصنمود یا خروجی عنوان به را بیت آن به مربوط

پورت TRISB=15دستور ارزشتر کم بیت شناخته Bچهار ورودی عنوان به

و .4میشود خروجی عنوان به ارزشتر با بیت

Page 12: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

میکروکنترلرهای که است این رعایتشود باید که دیگری نکته که PICاما

داخلیهستند 40یا 28دارای دیجیتال به آنالوگ مبدل دارای هستند می)پین

) پورت روی معموال مبدل این کنید مراجعه ها آن شیت دیتا به Aتوانید

کنید استفاده پورت این از اینکه از قبل بنابراین دارد قرار میکروکنترلر

دیجیتال یا است آنالوگ صورت به پورت این که مشخصسازید برایباید

ثبات باید کار . ADCON1این مبدل درباره قسمت این در ما دهیشود مقدار

کنیم نمی صحبت میکروها این داخلی دیجیتال به فقط  آنالوگ اینجا در لذا

پورت های پین تمام بخواهیم هرگاه که میشوم صورت Aمتذکر به

مقدار باید کنند کار ثبات 7دیجیتالی درون را .:ADCON1دسیمال ریخت

ADCON1 = 7

ثباتهای   به دهی .TRISو ADCONمقدار دهید انجام برنامه ابتدای در را

نکته:

متغیری داخل به و گیرد قرار گیومه دو میان عدد یا حرف کاراکتر یک اگر

دستور , مثال است شده ریخته کاراکتر آن اسکی کد واقع در شود = Aریخته

“F” اسکیحرف متغیر Fکد در دستور Aرا یا و دهد می ”PORTB = “Oقرار

اسکیحرف پورت Oکد به .Bرا کتد می ارسال

END

میکرو که باعثمیشود و دهد می خاتمه را برنامه اجرای دستور این

. گیرد قرار کاهشتوان حالت در کنترلر

Page 13: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

اینصورت در که شود استفاده اسمبلی کدهای از برنامه در که است ممکن

: نمود استفاده دستورزیر از باید آنها از استفاده از قبل

 ASM

مثال:

ASM:        NOP

ASM:LABEL1: MOVLW 0xFF

: حسابی منطقیو دستورات

AND                     NOR                                                      +           جمع

OR                        XOR                                                      -          تفریق

NAND                  XNOR                                                      *         ضرب

تقسیم قسمتعمل (                                       /     خارج مکمل )  معکوس

NOT

تقسیم MOD     باقیمانده

) (SQR             جذر

مثال:

X = NOT A

X = A AND B

X = A OR B

Page 14: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

X = A XOR B

X = A NAND B

X = A NOR B

X = A NXOR B

DIM A AS WORD

A = 3600

A = SQR)A(

A = A OR B

PORTB = PORTC AND %11110000

نکته:

1 ) دستور- ) پساز باید را ها برنامه زیر ها روال زیر .ENDتمامی نمود وارد

کاراکتر- " ’ 2 از باید برنامه توضیحات .برای نمود" استفاده

: زنم می زیربرنامه از مثال یک انتها در

SYMBOL DISPLAY = PORTB.0 HIGH DISPLAY  GOSUB getadresult END getadresult: LOW DISPLAYRETURN

Page 15: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

زبان به نویسی میکروکنترلرهای Basicبرنامه PICبرای

به --- مربوط دستورات دوم LCDقسمت

کامپایلر دستورات ادامه قسمت این می PIC Simulator IDEدر داده شرح

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

ابتدا نمائید نویسی برنامه بیسیک زبان به افزار نرم این در بتوانید اینکه

منوی روی و کنید باز را سپس TOOLSبرنامه و را Basic Compilerرفته

. نمائید انتخاب

: دستورات ادامه اکنون

دستورات:

با   که است بهتر دستورات این مطالعه از با   روشهای و LCDقبل ارتباط

.آن باشید داشته آشنایی

DEFINE

 : دستور کلی فرم

Page 16: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

DEFINE command

دستور   درباره چیز هر از . DEFINEقبل دستورات از برخی دهم می توضیح

دستور با که پیشفرضهستند مقادیر مقدار DEFINEدارای توان می

. خواهید مشاهده را دستور این کاربرد ها مثال در مشخصنمود را دلخواه

نمود.

 LCD_BITS

 : دستور کلی فرم

 DEFINE LCD_BITS =  4 OR 8

اطالعات   پورت که مشخصمیسازد دستور یا LCDاین است چهاربیتی

با ) ارتباط روشهای به بیتی .(LCDهشت نمائید مراجعه

پیشفرض   .4مقدار است

LCD_DREG

 : دستور کلی فرم

 DEFINE LCD_DREG  =  PORTA OR PORTB OR PORTC OR PORTD

دیتای   خطوط که متصل LCDمشخصمیسازد میکرو پورت کدام به

. انتخابشود . باید فوق های پورت از یکی که است

پیشفرض   .PORTBمقدار است

Page 17: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

LCD_DBIT

 : دستور کلی فرم

 DEFINE LCD_DBIT  =  0 or 4

که   دارد کاربرد زمانی دستور .  BUSاین باس برای و باشد بیتی 8چهار

تعریفنشده . بیتی

که   مشخصمیسازد دستور پورت 4به BUSاین از ارزشتر کم بیت

باسبه همچنین و انتخابشود صفر استهرگاه با 4میکرومتصل بیت

هرگاه ، است متصل میکرو پورت از .4ارزشتر انتخابشود

پیشفرض   .4مقدار است

LCD_RSREG

 : دستور کلی فرم

 DEFINE LCD_RSREG  =   PORTA OR PORTB OR PORTC OR PORTD

پایه   که .LCDاز RSمشخصمیسازد متصلشده میکرو از پورت کدام به

پیشفرض   .PORTBمقدار است

LCD_RSBIT

 : دستور کلی فرم

Page 18: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

 DEFINE LCD_RSBIT = پورتمشخص پین شده شماره

پایه   که با LCDاز RSمشخصمیسازد که میکرو پورت از پین کدام به

. متصلشده ، است قبلمشخصشده  دستور

پیشفرض   .3مقدار است

LCD_EREG

 : دستور کلی فرم

 DEFINE LCD_EREG = PORTA OR PORTB OR PORTC OR PORTD

پایه   که متصل LCDاز Enableمشخصمیسازد میکرو از پورت کدام به

شده.

پیشفرض   .PORTBمقدار است

LCD_EBIT

 : دستور کلی فرم

 DEFINE LCD_EBIT = پورتمشخص پین شده شماره

پایه   که با LCDاز Enableمشخصمیسازد که میکرو پورت از پین کدام به

. متصلشده ، است قبلمشخصشده  دستور

پیشفرض   .2مقدار است

Page 19: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

LCD_RWREG

 : دستور کلی فرم

 DEFINE LCD_RWREG = PORTA OR PORTB OR PORTC OR PORTD

پایه   که متصل LCDاز R/Wمشخصمیسازد میکرو از پورت کدام به

شده.

پیشفرض   .0مقدار است

LCD_RWBIT

 : دستور کلی فرم

 DEFINE LCD_RWBIT = پورتمشخص پین شده شماره

پایه   که با LCDاز R/Wمشخصمیسازد که میکرو پورت از پین کدام به

. متصلشده ، است قبلمشخصشده  دستور

پیشفرض   .0مقدار است

LCD_COMMANDUS

 : دستور کلی فرم

 DEFINE LCD_COMMANDUS = میکروثانیه برحسب زمان

Page 20: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

مشخصمی   را است الزم فرمان هر اجرای پساز که تاخیر زمان مدت

سازد.

پیشفرض   .5000مقدار است میکروثانیه

LCD_DATAUS

 : دستور کلی فرم

 DEFINE LCD_DATAUS = میکروثانیه حسب بر زمان

اطالعاتروی   ارسال هربار پساز که تاخیر زمان را LCDمدت است الزم

. مشخصمیسازد

پیشفرض   .50مقدار است

LCD_INITMS

 : دستور کلی فرم

 DEFINE LCD_INITMS = میلی حسب بر ثانیه زمان

دستور   برای تاخیر زمان مدت دستور .LCDINITاین کند مشخصمی را

پیشفرض   .100مقدار است

سازی:    شبیه هنگام در اخیر دستور سه از استفاده هنگام در توجه

. بگیرید نظر در ها آن برای را ممکن مقدار کمترین ، برنامه با

Page 21: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

یک   هر هرگاه لذا پیشفرضهستند مقادیر دارای فوق دستورات از یک هر

آن برای پیشفرضرا مقدار کامپایلر ، نکردید تایپ را فوق دستورات از

. دستور هرگاه مثال عنوان به گیرد می نظر در متغیر یا پارامتر

LCD_RWREG پورتهای از پینی هیچ کامپایلر ننمودید تایپ برنامه در را

پایه به را .LCDاز R/Wمیکروکنترلر دهد اختصاصنمی

LCDINIT

 : دستور کلی فرم

 LCDINIT  0 or 1 or 2 or 3

دستورفرمان )ا   اولین از قبل باید دستور اولین( LCDCMDOUTین و

اطالعات ) ارسال گیرد( LCDOUTدستور قرار

آن   برای صفر مقدار یا و مشخصنشود دستور این برای مقداری هیچ اگر

نمای مکان ، .LCDمشخصشود بود خاموشخواهد

مقدار   نمای 1اگر مکان ، مشخصشود دستور این چشمکزن LCDبرای

. بود خواهد

مقدار   نمای 2اگر مکان ، مشخصشود دستور این صورت LCDبرای به

underline. بود ثابتخواهد

مقدار   نمای 3گر مکان ، مشخصشود دستور این صورت LCDبرای به

underline. بود خواهد چشمکزن

LCDOUT

Page 22: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

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

. با و نمود ارسال متغیر و ای رشته متغیر ، ثابت مقادیرعددی توان می

: نمود ),( ارسال را فوق موارد از ترکیبی توان می عالمت از استفاده

 LCDOUT "Hello world"!                        روی را گیومه داخل LCDعبارت

. دهد می نمایش

LCDOUT #A                    متغیر روی Aمحتوای دسیمال صورت به LCDرا

. دهد می نمایش

 LCDOUT "Hello!",#A

LCDOUT A                       متغیر محتوای اسکی LCDراروی Aکاراکتر

دهد می نمایش

LCDCMDOUT

روی   فرمان ارسال برای دستور . LCDاین می دستور این با رود می کار به

. استفاده با و نمود ارسال متغیر و ای رشته متغیر ، ثابت مقادیرعددی توان

. نمود ),( ارسال را فوق موارد از ترکیبی توان می عالمت از

یا   حرف هر نوشتن پساز نما مکان که مشخصمیسازد زیر دستور مثال

: کند پیدا سمتراستشیفت به عدد

 DIM A AS BYTE

A = 6

LCDCMDOUT #A

Page 23: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

به   را ها فرمان توان می روشفوق با که این LCDدرسته اما نمود ارسال

استفاده آن و است گرفته نظر در عمل این برای نیز روشدیگری کامپایلر

: است زیر کلیدی دستورات و کلمات  از

LCDCLEAR     صفحهLCD: پاکشود

LCDHOME    در نما قرار مکان ستونسمتچپ آخرین در و باالترینسطر

گیرد می

LCDLINE2HOME       ستونسمتچپ مکان آخرین و دوم سطر در نما

گیرد می قرار

LCDLEFT   اجرای هربار سمتچپ با به کاراکتر یک نما مکان دستور این

رود می

LCDRIGHT   هربار سمت با به کاراکتر یک نما مکان دستور این اجرای

رود راستمی

LCDSHIFTLEFT   هربار یک با اندازه به کاراکترها تمامی دستور این اجرای

می پیدا سمتچپشیفت به کنند کاراکتر

LCDSHIFTRIGHT   هربار اندازه با به کاراکترها تمامی دستور این اجرای

می پیدا سمتراستشیفت به کاراکتر کنند یک

LCDLINE1CLEAR    کند تمامی پاکمی را اول کاراکترهایسطر

LCDLINE2CLEAR      کند تمامی پاکمی را دوم کاراکترهایسطر

Page 24: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

  . باید پرانتز داخل مشخصمیسازد را اول سطر در نما مکان موقعیت

بین گیرد 40تا 1عددی می قرار آن در نما مکان که ای خانه شماره که باشد

) مشخصمیسازد ) سمتچپ از :را

LCDLINE1POS) (

. باید پرانتز داخل مشخصمیسازد را سطردوم در نما مکان موقعیت

بین گیرد 40تا 1عددی می قرار آن در نما مکان که ای خانه شماره که باشد

) مشخصمیسازد ) سمتچپ از را

LCDLINE2POS) (

LCDDEFCHAR

 : دستور کلی فرم

 LCDDEFCHAR  v,a1,a2,a3,a4,a5,a6,a7,a8

  . اگر مثال میشود کاربراستفاده دلخواه تعریفکاراکتر برای دستور این از

و نمائید ایجاد را پارسی حرف یا و پارسی عدد یک کاراکتر که بخواهید شما

دستور این از استفاده با توانید می ، نمائید استفاده آن از تان پروژه در

. بیشاز که است این آن و دارد وجود محدودیتی اما دهید انجام را کار 8این

به مربوطمیشود هم موضوع این دلیل تعریفکنید توانید نمی کاراکتر

. LCDخود این کاراکتری نام LCDهای با ثباتی دارای باشند CGRAMها می

. Character Ceneratorمخففعبارت CGکه ) تعداد ) باشد می کاراکتر سازنده

ها ثبات باشد ) 8این می از( cgram0 - cgram7عدد بیشتر نمی 8لذا کاراکتر

. این از یک هر ساخت دارای CGRAMتوان اینهشت 8ها که باشد بایتمی

Page 25: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

مشخصمی کاراکترها مکان در خاموشرا و نقاطروشن واقع در بایت

سازند:

روی کاراکتر یک مکان فوق . LCDشکل از مکانی هر دهد می نشان 5را

و .8ستون است تشکیلشده ریز نقاط از متشکل سطر

ثبات شد گفته قبال که هر CGRAMهمانطور که باشد بایتمی دارایهشت

این از و 8یک مربوطمیشود فوق سطرهایشکل از یکی به بیت 5بایت

آن از یک ارزشهر . 8کم مقدار مربوطمیشود فوق های ستون به 1بایت

مقدار و میسازد روشن را ای نقطه را 0منطقی ای نقطه منطقی

. خاموشمیسازد

دستور اولین ) LCDDEFCHAR )LCDDEFCHAR  v,a1,a2,a3,a4,a5,a6,a7,a8اما

یعنی دستور این از vآرگومان مقادیری تواند در 7تا 0می که یاشد داشته

شماره ذکر nواقع قبال و مشخصمیسازد را تعریفشده کاراکتر امین

فقط که بود .8شده تعریفنمود توان می کاراکتر

مقادیر   مریوطمی a8تا a1اما فوق هایشکل ستون از یکی به یک هر

- بطوریکه- پایین به باال از و a1شود ستون باالترین ترین a8به پایین به

Page 26: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

مقادیر. یه a8تا a1ستون هم و باشد دسیمال صورت به تواند می هم

. باینری صورت

دستور از که کافیست تعریفی کاراکترهای از هریک ارسال lcdoutبرای

. دستور ابتدا که اینصورت به شود سپس LCDOUTاستفاده و نوشته را

. زیر مثال در نویسیم می را تعریفشده کاراکتر تعریف 2شماره کاراکتر

عدد یکی ایم دیگریحرفب :3نمده و

Lcddefchar 0, %00000, %10101, %11111, %10000, %10000, %10000, %10000,

%00000

Lcddefchar 1, %00000, %00000, %00000, %10001, %11111, %00100, %00000,

%00000

lcdout 0

lcdout 1

اینست   گیرد قرار توجه مورد باید کاراکترها این درباره که مهمی ی نکته

در نوع این از ارسالی کاراکتر اولین از ) homeکه خانه اولین و باالترین

دهنده( lcdسمتچپ دستوراتشیفت با توان سپسمی و گیرد می قرار

. داد انتقال دلخواه خانه به را نظر مورد کاراکتر

             

Page 27: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

: مثال چند

1:DEFINE LCD_BITS = 8

DEFINE LCD_DREG = PORTB

DEFINE LCD_DBIT = 0

DEFINE LCD_RSREG = PORTD

DEFINE LCD_RSBIT = 1

DEFINE LCD_EREG = PORTD

DEFINE LCD_EBIT = 3

DEFINE LCD_RWREG = PORTD

DEFINE LCD_RWBIT = 2

DEFINE LCD_COMMANDUS = 10000

DEFINE LCD_DATAUS = 100

DEFINE LCD_INITMS = 1000

LCDINIT

loop:

   LCDOUT "Hello world!"

   WAITMS 1000

   LCDCMDOUT LcdClear

   WAITMS 1000

GOTO loop

2:DEFINE LCD_BITS = 8

DEFINE LCD_DREG = PORTB

DEFINE LCD_DBIT = 0

DEFINE LCD_RSREG = PORTD

DEFINE LCD_RSBIT = 1

DEFINE LCD_EREG = PORTD

DEFINE LCD_EBIT = 3

Page 28: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

DEFINE LCD_RWREG = PORTD

DEFINE LCD_RWBIT = 2

DEFINE LCD_COMMANDUS = 10000

DEFINE LCD_DATAUS = 100

DEFINE LCD_INITMS = 1000

DIM A AS WORD

A = 65535

LCDINIT 3

WAITMS 1000

loop:

   LCDOUT "I am counting!"

   LCDCMDOUT LcdLine2Home

   LCDOUT #A

   A = A - 1

   WAITMS 250

   LCDCMDOUT LcdClear

GOTO loop

3:

LCDDEFCHAR 0, 10, 10, 10, 10, 10, 10, 10, 10

LCDDEFCHAR 1, %11111, %10101, %10101, %10101, %10101, %10101, %10101,

%11111

LCDOUT 0, 1, "Hello!", 1, 0

 

می LCDنوع 6دارای PIC Simulator IDEافزار نرم عدد و کاراکتر نوع از

قسمت در که از LCDماژول SETUPباشد یک هر توان می افزار نرم این

. این نمائید انتخاب سازی شبیه برای ، پروژه نوع به بسته را ها نوع 6آن

: از عبارتند

Page 29: برنامه نویسی به زبان Basic برای میکروکنترلرهای PIC

 1 X 16 - 2 X 16 - 4 X 16 - 2 X 20 - 4 X 20 - 2 X 40

این از یک هر برای فوق دستورات .LCDنوع 6تمامی است صادق