برنامه نویسی به زبان basic برای میکروکنترلرهای pic
DESCRIPTION
223TRANSCRIPT
زبان به نویسی میکروکنترلرهای Basicبرنامه PICبرای
اول قسمت
اسمبلی , زبان مختلفچون های زبان با را ها میکروکنترلر برنامه میتوان
basic وc. نوشت
زبان به نویسی میکروکنترلرهای Basicبرنامه برنامه PICبرای از تر ساده
اسمبلی زبان دستورات تعداد اگرچه است اسمبلی زبان به نویسی
بیسیکاست PICمیکروکنترلر از .کمتر
. ها کامپایلر این یافت توان می منظور این برای را مختلفی های کامپایلر
آنها از نوع یک با فقط استکه بهتر لذا متفاوتند هم با دستور چند در تنها
. کرد کار
و کامپایلر دهم، می توضیح آن درباره و کنم می پیشنهاد که کامپایلری
میکروکنترلر ساز توان PIC Simulator IDE یعنی PICشبیه می که باشد می
وبسایت از را آن نسخه ترین کرد /http://www.oshonsoft.comجدید دانلود
قسمت) در افزار نرم این رجیسترشده همینسایت دانلودهاینسخه
.). باشد می موجود
. 3در نمی فرقی هیچ میشود داده شرح کامپایلر این قسمتدستورات
نرم . این کامپایلر بزرگ یا بنویسید حروفکوچک با را دستورات که کند
. دهد نمایشمی آبی رنگ به را ها آن و دهد تشخیصمی را دستورات افزار
نمائید نویسی برنامه بیسیک زبان به افزار نرم این در بتوانید اینکه برای
منوی روی و کنید باز را برنامه سپس 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
تواند 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
خاص ) منظور با های ثبات بیتهای به توان می باال دستور از استفاده با
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
:statementکه باشد متغیر یک نام یا و عدد یک تواند می
PORTA.1 = 1
B = A
SYMBOL
با , های ثبات بیتهای ها متغیر به توان می دستور این از استفاده با
در , که دیگری های نام خاص منظور با های ثبات خود یا خاصو منظور
نام , از متغیر آن نام جای کردوسپسبه اطالق هستند تر دار معنی برنامه
. میشود استفاده آن سمبولیک
: است زیر صورت به دستور این کلی فرم
SYMBOL name = Dataname
مثال:
SYMBOL LED1 = PORTB.0
) پورت ) بیت اولین بیتصفر به باال دهد LED1نام Bدستور اختصاصمی را
. میسازد ذخیره آن در را یک مقدار زیر دستور سپسبا و
LED1 = 1
HIGH
آن مقدار و میشود استفاده بیت یک مقدار تغییر برای نیز دستور این از
. به تبدیل را خاصی پایه تواند می دستور این همچنین کند یکمی را
حال در را آن و کند . 1خروجیمی این کلی فرم دهد می قرار منطقی
: است زیر صورت به دستور
HIGH Pinname
مثال:
HIGH PortB.0
LOW
آن مقدار و میشود استفاده بیت یک مقدار تغییر برای نیز دستور این از
. به تبدیل را خاصی پایه تواند می دستور این همچنین کند می صفر را
حالت در را آن و کند . 0خروجیمی این کلی فرم دهد می قرار منطقی
: است زیر صورت به دستور
LOW Pinname
مثال:
LOW ADCON0.ADON
بیت فوق ثبات ADONدستور .ADCON0از کند می صفر را
TOGGLE
تغییر برای نیز دستور این بیت از یک را مقدار آن مقدار و میشود استفاده
بیت آن اگر یعنی را 0معکوسمیسازد آن .1بوده بالعکس و کند می
دستور توانداین می دستور این خاصی همچنین معکوسمیسازد ) پایه را 1را
به 0و 0به ( 1را پایه یک به خودکار طور به مشخصشده پایه کند می تبدیل
: . است زیر صورت به دستور این کلی فرم میشود تبدیل خروجی
TOGGLE Pinname
مثال:
TOGGLE PORTA.1
نکته:
، راستعدد سمت در یا ، دهیم نشان هگز مبنای در را عددی بخواهیم اگر
آن Hعالمت سمتچپ در یا و دهیم می مانند )0xقرار دهیم می (0x55قرار
عدد( , 55Hیا ) .55یعنی هگز مبنای در
) سمتراست ) در یا دهیم نشان باینری دو مبنای در را عددی بخواهیم اگر
عالمت عدد عالمت Bآن آن سمتچپ در یا و دهیم می می %قرار قرار
مانند ) ( .000110011Bیا( )00011011%دهیم
GOTO
و پرشکند برچسبمشخصشده به برنامه که باعثمیشود دستور این
: یابد می ادامه برچسب آن از برنامه اجرای
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داخلی شده ذخیره
. متغیر آدرسدر این در اطالعاتموجود خواند بایتاست 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 توسط , نویسد می است مشخصشده
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می اتمام به
: مثال. رسد
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میشود خروجی عنوان به ارزشتر با بیت
میکروکنترلرهای که است این رعایتشود باید که دیگری نکته که PICاما
داخلیهستند 40یا 28دارای دیجیتال به آنالوگ مبدل دارای هستند می)پین
) پورت روی معموال مبدل این کنید مراجعه ها آن شیت دیتا به Aتوانید
کنید استفاده پورت این از اینکه از قبل بنابراین دارد قرار میکروکنترلر
دیجیتال یا است آنالوگ صورت به پورت این که مشخصسازید برایباید
ثبات باید کار . ADCON1این مبدل درباره قسمت این در ما دهیشود مقدار
کنیم نمی صحبت میکروها این داخلی دیجیتال به فقط آنالوگ اینجا در لذا
پورت های پین تمام بخواهیم هرگاه که میشوم صورت Aمتذکر به
مقدار باید کنند کار ثبات 7دیجیتالی درون را .:ADCON1دسیمال ریخت
ADCON1 = 7
ثباتهای به دهی .TRISو ADCONمقدار دهید انجام برنامه ابتدای در را
نکته:
متغیری داخل به و گیرد قرار گیومه دو میان عدد یا حرف کاراکتر یک اگر
دستور , مثال است شده ریخته کاراکتر آن اسکی کد واقع در شود = Aریخته
“F” اسکیحرف متغیر Fکد در دستور Aرا یا و دهد می ”PORTB = “Oقرار
اسکیحرف پورت Oکد به .Bرا کتد می ارسال
END
میکرو که باعثمیشود و دهد می خاتمه را برنامه اجرای دستور این
. گیرد قرار کاهشتوان حالت در کنترلر
اینصورت در که شود استفاده اسمبلی کدهای از برنامه در که است ممکن
: نمود استفاده دستورزیر از باید آنها از استفاده از قبل
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
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
زبان به نویسی میکروکنترلرهای Basicبرنامه PICبرای
به --- مربوط دستورات دوم LCDقسمت
کامپایلر دستورات ادامه قسمت این می PIC Simulator IDEدر داده شرح
با. میکروکنترلر ارتباط به مربوط دستورات این . LCDشود باشد برایمی
ابتدا نمائید نویسی برنامه بیسیک زبان به افزار نرم این در بتوانید اینکه
منوی روی و کنید باز را سپس TOOLSبرنامه و را Basic Compilerرفته
. نمائید انتخاب
: دستورات ادامه اکنون
دستورات:
با که است بهتر دستورات این مطالعه از با روشهای و LCDقبل ارتباط
.آن باشید داشته آشنایی
DEFINE
: دستور کلی فرم
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مقدار است
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
: دستور کلی فرم
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مقدار است
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 = میکروثانیه برحسب زمان
مشخصمی را است الزم فرمان هر اجرای پساز که تاخیر زمان مدت
سازد.
پیشفرض .5000مقدار است میکروثانیه
LCD_DATAUS
: دستور کلی فرم
DEFINE LCD_DATAUS = میکروثانیه حسب بر زمان
اطالعاتروی ارسال هربار پساز که تاخیر زمان را LCDمدت است الزم
. مشخصمیسازد
پیشفرض .50مقدار است
LCD_INITMS
: دستور کلی فرم
DEFINE LCD_INITMS = میلی حسب بر ثانیه زمان
دستور برای تاخیر زمان مدت دستور .LCDINITاین کند مشخصمی را
پیشفرض .100مقدار است
سازی: شبیه هنگام در اخیر دستور سه از استفاده هنگام در توجه
. بگیرید نظر در ها آن برای را ممکن مقدار کمترین ، برنامه با
یک هر هرگاه لذا پیشفرضهستند مقادیر دارای فوق دستورات از یک هر
آن برای پیشفرضرا مقدار کامپایلر ، نکردید تایپ را فوق دستورات از
. دستور هرگاه مثال عنوان به گیرد می نظر در متغیر یا پارامتر
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
اطالعاتروی ارسال برای دستور . 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
به را ها فرمان توان می روشفوق با که این LCDدرسته اما نمود ارسال
استفاده آن و است گرفته نظر در عمل این برای نیز روشدیگری کامپایلر
: است زیر کلیدی دستورات و کلمات از
LCDCLEAR صفحهLCD: پاکشود
LCDHOME در نما قرار مکان ستونسمتچپ آخرین در و باالترینسطر
گیرد می
LCDLINE2HOME ستونسمتچپ مکان آخرین و دوم سطر در نما
گیرد می قرار
LCDLEFT اجرای هربار سمتچپ با به کاراکتر یک نما مکان دستور این
رود می
LCDRIGHT هربار سمت با به کاراکتر یک نما مکان دستور این اجرای
رود راستمی
LCDSHIFTLEFT هربار یک با اندازه به کاراکترها تمامی دستور این اجرای
می پیدا سمتچپشیفت به کنند کاراکتر
LCDSHIFTRIGHT هربار اندازه با به کاراکترها تمامی دستور این اجرای
می پیدا سمتراستشیفت به کاراکتر کنند یک
LCDLINE1CLEAR کند تمامی پاکمی را اول کاراکترهایسطر
LCDLINE2CLEAR کند تمامی پاکمی را دوم کاراکترهایسطر
. باید پرانتز داخل مشخصمیسازد را اول سطر در نما مکان موقعیت
بین گیرد 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ها که باشد بایتمی
مشخصمی کاراکترها مکان در خاموشرا و نقاطروشن واقع در بایت
سازند:
روی کاراکتر یک مکان فوق . 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به پایین به
مقادیر. یه 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سمتچپ دستوراتشیفت با توان سپسمی و گیرد می قرار
. داد انتقال دلخواه خانه به را نظر مورد کاراکتر
: مثال چند
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
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آن
: از عبارتند
1 X 16 - 2 X 16 - 4 X 16 - 2 X 20 - 4 X 20 - 2 X 40
این از یک هر برای فوق دستورات .LCDنوع 6تمامی است صادق