میکروکنترلر های AVR همه مطالب

نمایش عدد اعشاری بر روی lcd در کدویژن

نمایش عدد اعشاری بر روی lcd در کدویژن

یکی از مشکلات رایج در استفاده از lcd های کاراکتری نمایش اعداد با فرمت های مختلف است.کاربرانی که با میکروکنترلرهای avr کار می کنند اغلب از کامپایلر کدویژن استفاده می کنند .در کدویژن نمایش اعداد float بر روی lcd به دلیل محدودیت فضای رم در این میکروکنترلرها به صورت پیش فرض غیر فعال می باشد و کاربر باید قبل از استفاده از توابع مربوط به نمایش اعداد اعشاری این امکان را در محیط کدویژن فعال کند.به منظور فعال کردن این امکان ابتدا تنظیمات زیر را در محیط کدویژن انجام دهید:

نمایش عدد اعشاری بر روی lcd در کدویژن
نمایش عدد اعشاری بر روی lcd در کدویژن

مثال :

فرض کنید قصد نمایش عدد اعشاری  x با یک رقم صحیح و یک رقم اعشار را دارید.

char buf[10];
float x=3.123456;
sprint(buf,"%1.1f",x);
lcd_puts(buf);

خروجی : 3.1

تابع sprintf  مقدار  عددی شما را با فرمت مشخص به یک عبارت رشته ای تبدیل می کند.و تابع   ()lcd_puts  این مقدار را بر روی lcd  چاپ می کند.ورودی دوم تابع   ()sprint  فرمت را مشخص می کند .عبارت 1.1f% ‌ به معنای تبدیل عدد x به صورت یک عبارت متنی با یک رقم صحیح و یک رقم اعشار است. اگر بخواهید عدد نمایش به صورت یک رقم صحیح و دو رقم اعشار باشد باید این عبارت را برابر 1.2f% قرار دهید .

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

-نمایش عدد x به صورت عدد صحیح:

char buf[10];
int x=10;
sprint(buf,"%d",x);
lcd_puts(buf);

خروجی : 10


-نمایش عدد x در مبنای هگز با حروف کوچک :

char buf[10];
int x=10;
sprint(buf,"%x",x);
lcd_puts(buf);

خروجی : a


– نمایش عدد x در مبنای هگز با حروف بزرگ:

char buf[10];
int x=10;
sprint(buf,"%X",x);
lcd_puts(buf);

خروجی : A


– نمایش عدد ۳۲ بیتی از نوع long :

char buf[10];
long l=105400;
sprint(buf,"%ld",L);
lcd_puts(buf);

خروجی : 105400

3 دیدگاه

دیدگاهتان را بنویسید

5 × 5 =