مهندسی پزشکی

مقالات مهندسی پزشکی

مهندسی پزشکی

مقالات مهندسی پزشکی

مرجع دستورات بیسیک avr (قسمت1)

جمعه, ۴ آذر ۱۳۹۰، ۰۴:۱۹ ق.ظ
میکرو ها چه جوری به وجود اومدند!  خب ببینید در ابتدا تراشه های اولیه به صورت ROMبودند که مخفف Read Only Memoryاست یعنی تو کارخونه یه سری اطلاعات روی اونا می ریختن و اونا فقط با استفاده از اون اطلاعات پردازش می کردند یعنی سطح پردازش محدودی داشتند.اطلاعات روی اونا هم قابل پاک شدن یا تعویض نبود و فقط خواندنی بودند. یعنی مثلا طوری برنامه ریزی شده بودند که  اگه یک پایه ی اونا 1 شد پایه ی دیگر 0 شود ولی مثلا اگه می خواستین این عمل برعکس اجرا شود باید از یه رله استفاده می کردین . به تدریج ملت اومدن دیدن این حافظه های ROM خیلی ضایعه ! لذا اومدن حافظه های ERom رو ساختند یعنی Eraseable ROM حافظه های که قابل برنامه ریزی بودند و می توانستید به تعداد محدودی برنامه روی آنها بنویسید ولی اینکار به وسیله ی اشعه ی فرابنفش انجام می شد به طوریکه به هنگام نوشتن یه تعداد سلول داخل تراشه را می سوزاند و به هنگام پاک کردن اونا رو باز آوری می کرد. یواش یواش ملت دیدن که به دلیل سرطان زا بودن فرابنفش و خاصیت پرتوزایی تراشه بعد از هر بار نوشتن یا پاک کردن دهنشون داره آسفالت می شه ! لذا حافظه های EEROMرو اختراع کردند که مخفف Electricaly Erasaeble ROM یعنی حافظه با قابلیت برنامه ریزی الکترونیکی که میکرو کنترلر ها جزء این دسته می باشند . البته حافظه های مدرن تری به نام Flashهم اختراع شد که الان برای ذخیره و حمل اطلاعات ازشون استفاده می کنیم ولی یه نوع EEROM هستند. معرفی میکرو  برای شروع یک برنامه در این محیط در ابتدا باید میکرو مورد نظر خود را معرفی کنید که این کار با دستور زیر انجام می شود. regfile=var$ var نام میکرو مورد نظر است که می تواند یکی از موارد زیر باشد: مدل avr یا مدل atmega یا مدل atiny مثال:   معرفی کریستال برای مشخص کردن فرکانس کریستال مورد استفاده از دستو زیر استفاده می کنیم. crystal=x$ x فرکانس کریستال بر حسب هرتز است. crystal=8000000$ اسمبلی(اختیاری) برای نوشتن به زبان اسمبلی در میان بیسیک می توان از این دستور استفاده کرد. ASM$ assembly programme ENDASM$ با این دستور می توان در بین برنامه بیسیک به نوشتن برنامه اسمبلی پرداخت و پس از اتمام برنامه با دستور endasm$ برنامه اسمبلی تمام شده و به نوشتن به زبان بیسیک پرداخت. یادداشت(اختیاری) گاهی نیاز دارید در برنامه خود یادداشت هایی را اضافه کنید در اینصورت از( ' ) یا Rem در برنامه خود استفاده می کنید به این صورت که ابتدا این علامت ( ' )را گذاشته سپس توضیح خود را بعد از آن ذکر می کنیم. توضیحات بعد از این علامت در برنامه بی اثر بوده و کامپایل نمی شوند و به رنگ سبز در می آیند.مثال: config lcd=2*16 ' we use lcd with 16 and 2 chracter شاید برای شما این سوال پیش بیاید که کلمه (کامپایل) که در بالا به آن اشاره شد چیست؟ تمامی میکروکنترلر ها و عموماً کامپیوتر ها از سیستم مبنای دو اعداد یا همان باینری استفاده می کنند که این ماشین ها به جز 0 و 1 چیز دیگری نمی فهمند بنابراین در هر محیط برنامه نویسی بعد از نوشتن برنامه باید آن را به زبان ماشین یا همان 0 و 1 تبدیل کرد که به این عملیات کامپایل کردن می گویند. پایان برنامه END این دستور در انتهای تمامی برنامه های شما قرار می گیرد که با این دستوربرنامه به پایان رسیده و خاتمه می یابد. تعریف متغیر با این دستور می توان متغیر های به کار برده شده در برنامه را تعریف کرد. DIM var AS [xram/sram/eram] data type[at location]0 به عنوان توضیح باید بگم که در کل در دستورات هر عبارتی که داخل آکولاد [] باشد اختیاری است و لزومی به نوشتن آن نیست. var نام متغیر به کار برده شده در برنامه است.گزینه اختیاری xram را برای استفده از حافظه جانبی استفاده کنید و استفاده از گزینه اختیاری sram متغیر را در حافظه sram قرار می دهد و استفاده از گزینه اختیاری eram متغیر مورد نظر را در EEPROM داخلی جای می دهد. data type نوع متغیر است که می تواند طبق جدول زیر bit,byte,integer,long,word,string, یا single باشد. در صورتی که متغیر خود را از نوع داده string تعریف کردید باید بیشترین طول آن را نیز ذکر کنید. value range stores as data type 0 1OR A BIT BIT 0TO 255 UNSIGNED 8-BITS BYTE 32767TO32767- SIGNED 16-BITS INTEGER 0TO 65535 UNSIGNED 16-BIT WORD 2147483648TO 214783647 - SIGNED 32-BITS LONG   SIGNED 32-BITS SINGLE - 0-254 BYTES STRING متغیر STRING به طول 15 کاراکتر DIM F AS STRING*15 گزینه اختیاری AT LOCATION به منظورذخیره کردن متغیر در آدرس دلخواه حافظه به کار می رود. مثال: DIM B1 AS BYTE AT 120 دستور ALIAS از این دستور برای تغییر اسم متغیر استفاده می شود.مثال: Ld ALIAS PORTA.4 SET Ld '=SET PORTA.4 دستور INCR این دستور یک واحد به متغیر VAR می افزاید. INCR VAR مثال: A=0 INCR A:PRINT A 'A=1 www.Cmos.irدستور DECR این دستور از متغیر VAR یک واحد می کاهد. DECR VAR مثال: DIM D AS BYTE D=6 DECR D: PRINT D 'D=5 دستور LCASE این دستور تمام حروف رشته تعیین شده را تبدیل به حروف کوچک می کند. (Target=Lcase(source که source رشته مورد نظر است که به حروف کوچک تبدیل و در رشته Target قرار می گیرد.مثال: Dim P As String * 12 , H As String * 12"P = "FARZAN SHOJAEE(H = Lcase(p "Lcd H                                                       'lcd"farzan shojaeeEnd دستور UCASE این دستور تمام حروف رشته تعیین شده را تبدیل به حروف بزرگ می کند. (Target=Ucase(source که source رشته مورد نظر است که به حروف بزرگ تبدیل و در رشته Target قرار می گیرد.مثال: Dim P As String * 12 , H As String * 12"P = "in the name of god(H = Ucase(p "Lcd H                                                       'lcd"IN THE NAME OF GODEnd دستور LEN این دستور تعداد کارکترهای یک رشته را حساب کرده و در متغیر VAR قرار می دهد که تعداد کارکترهای آن همان طول رشته است. (var=LEN(string طول رشته string در متغیر var قرار می گیرد.رشته string می تواند حداکثر 255 بایت طول داشته باشد به این نکته نیز باید توجه داشت که فضای خالی خود یک کاراکتر محسوب می شود.مثال: Dim A As String * 12 , B As Byte"A = "god (B = Len(aLcd B                                                       'lcd 3  "A = "lo v e   (B = Len(aLcd B                                                       'lcd 6End همانطور که دیدید کلمه love چهار کاراکتر طول دارد که با دو فاصله بین حروف آن 6 کاراکتر می شود. دستور swap این دستور محتوای دو متغیر var1 و var2 را با هم عوض می کند.یعنی محتوای متغیر var1 را در متغیر var2 ومحتوای متغیر var2 را در متغیر var1 می ریزد. نکته: دو متغیر باید از یک نوع داده تغریف شوند.مثال: Dim A As Byte , B As ByteA = 20 : B = 35 Swap A , BLcd A                                                       'lcd 35Lcd B                                                       'lcd 20End دستور space از این دستور برای ایجاد فضای خالی استفاده می شود که x تعداد فضای خالی است که به عنوان رشته در متغیر var قرار می گیرد. (var=space(x مثال: Dim A As String * 10A = Space(4)Lcd "{" ; S ; "}"                                           '{    }4 spaceEnd دستور LTRIM این دستور فضای خالی یک رشته را از سمت چپ حذف می کند که STRING رشته ای است که فضای خالی آن برداشته می شود و رشته بدون فضای خالی در متغیر VAR قرار می گیرد.مثال: Dim A As String * 10 , B As String * 10"A = "     AB(B = Ltrim(a"Lcd B                                                       'LCD"ABEnd دو نوع LCD وجود دارد: LCD های کاراکتر و اعداد(متن) و LCD های گرافیکی. LCD 2x16 به طور مثال یک LCD متنی است و دارای دوسطر است که هر سطر دارای 16 مکان برای نمایش کاراکتر می باشد.www.Cmos.ir LCD2x16دارای 16 پایه می باشد. توضیحات سمبول شماره پایه زمین منبع تغذیه ولتاژ+5 ولت منبع تغذیه ولتاژ کنترل کنتراست VSS VDD V0 1 2 3 اگر RS=0 باشد ثبات دستور انتخاب می شود و اگر RS=1 باشد ثبات داده انتخاب می شود. RS 4 R/W=0 برای نوشتن در LCD R/W=1 برای خواندن از LCD R/W 5 فعال ساز E 6 بیت های 0 تا 7 دیتا D0 – D7 14-7 آنود لامپ LED پشت LCD کاتود لامپ LED پشت LCD - - 15 16
موافقین ۰ مخالفین ۰ ۹۰/۰۹/۰۴
Shahram Ghasemi