آموزش میکروکنترلر STM8 به صورت رجیستری – LCD کاراکتری

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

در این قسمت از اموزش های stm8 به نحوه ی راه اندازی ال سی دی کاراکتری توسط stm8 خواهیم پرداخت.

در قسمت های قبل با نحوه ی ورودی و خروجی کردن پین های gpio با میکرو کنترلر STM8 S003F3 اشنا شدیم که در این پروژه نیز از ان استفاده خواهد شد.

برای استفاده از ال سی دی کاراکتری در پروژه باید کتابخانه ی مورد نیاز را به پروژه اضافه کنیم که این کتابخانه در اخر مطلب قرار داده شده است.

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

آموزش میکروکنترلرهای STM8 به صورت رجیستری - LCD کاراکتری

در فایل lcd.h خط اول باید پایه enable را مشخص کنیم که در این مثال به PD4 و RS به پایه PD5 و پایه های دیتای LCD به PC میکرو کنترلر متصل شده دوستان توجه داشته باشند که به پین های پرارزش پورت C یعنی 4,5,6,7 متصل میشود.

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

/* ***************************************************************************** 
** Text LCD Training **
*** Design By M.ALizadeh *** 
*******************************************************************************/
#include <iostm8s003F3.h> 
#include <intrinsics.h> 
#include "lcd.h" 
#include "delay.h" 
void InitMCU(void) 
{ 
CLK_CKDIVR = 0x00; 
PC_DDR = 0xF0; 
PC_CR1 = 0xF0; 
PC_ODR = 0x00; 
PD_DDR_DDR4 = 1; 
PD_CR1_C14 = 1; 
PD_ODR_ODR4 = 0; 
PD_DDR_DDR5 = 1; 
PD_CR1_C15 = 1; 
PD_ODR_ODR5 = 0; 
} 
void main(void) 
{ 
InitMCU(); 
lcd_init(); 
lcd_string(1,1,"be name KHODA "); 
lcd_string(2,3,"TEST "); 
for(;;); 
}

 

#include <iostm8s003F3.h>

تعریف رجیستری میکرو کنترلر

#include <intrinsics.h>

وارد کردن توابع پایه

#include "lcd.h"

هدر ال سی دی را وارد مینماییم

 #include "delay.h"

کتابخانه تاخیر را اضافه میکینم

void InitMCU(void)
    {
        CLK_CKDIVR = 0x00;
        PC_DDR = 0xF0;
        PC_CR1 = 0xF0;
        PC_ODR = 0x00;
        PD_DDR_DDR4 = 1;
        PD_CR1_C14 = 1;
        PD_ODR_ODR4 = 0;
        PD_DDR_DDR5 = 1;
        PD_CR1_C15 = 1;
        PD_ODR_ODR5 = 0;
    }

در این تابع شرایط اولیه میکرو را تعیین میکنیم . که خط اول ان تقسیم کننده فرکانسی را برابر 0 قرار داده و بقیه خطوط هم پین های GPIO را کانفیگ میکنند که در قسمت های قبل به تفضیل راجب این موضوعات صحبت شده است.

void main(void)
    {
        InitMCU();
        lcd_init();
        lcd_string(1,1,"be name KHODA ");
        lcd_string(2,3,"TEST ");
        for(;;);
    }
InitMCU();

تابع کانفیگ را فراخوانی میکنیم.

lcd_init();

ال سی دی را راه اندازی اولیه میکنیم.

lcd_string(1,1,"be name KHODA ");

توسط این تابع یک رشته را روی پورت میفرستیم که ارگومان اول ان شماره ستون، ارگومان دوم شماره سطر و ارگومان سوم ان رشته ای که میخواهیم روی ال سی دی نمایش داده شود.

for(;;);

در نهایت یک حلقه بینهایت ایجاد میکنیم.

  راه اندازی ارتباط سریال آردوینو

توابع موجود در کتابخانه:

void lcd_enable(void);

فعال کردن ال سی دی

void lcd_command(unsigned char);

ارسال یک کامند به ال سی دی

void lcd_clear(void);

پاک کردن ال سی دی

void lcd_putch(unsigned char);

نمایش یک کاراکتر روی ال سی دی در مکان، مکان نما

void lcd_puts(const char *);

نمایش یک رشته روی ال سی دی در مکان، مکان نما

void lcd_gotoxy(unsigned char,unsigned char);

تغییر مکان، مکان نما که ارگومان اول ان ستون و ارگومان دوم ان سطر lcd میباشد.

void lcd_init(void);

کانفیگ اولیه lcd

void lcd_lshift(void);

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

void lcd_rshift(void);

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

void lcd_display_on(void);

روشن کردن صفحه lcd

void lcd_display_off(void);

خاموش کردن صفحه lcd

lcd_string(unsigned char,unsigned char,const char *);

قرار دادن یک رشته روی ال سی دی با وارد کردن مکان آن
ارگومان اول آن ستون، آرگومان دوم سطر و ارگومان سوم رشته مورد نظر است.

lcd_char(unsigned char,unsigned char,unsigned char);

قرار دادن یک کاراکتر روی ال سی دی با وارد کردن مکان آن
ارگومان اول آن ستون، آرگومان دوم سطر و ارگومان سوم کاراکتر مورد نظر است.

lcd_sChar(unsigned char,unsigned char,unsigned char);

قرار دادن یک کاراکتر تعریف نشده روی ال سی دی با وارد کردن مکان آن
ارگومان اول آن ستون، آرگومان دوم سطر و ارگومان سوم کاراکتر مورد نظر است.

void specialCharacters(void);

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

void Write_SpecChar(unsigned char);

نوشتن یک کاراکتر تعریف شده در تابع بالا روی ال سی دی

  معرفی STM32CubeIDE جدیدترین IDE شرکت ST
tags, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
نفوذ به شبکه وایفای از طریق KRACK
راه اندازی و شماتیک RS485

برای حمایت از ما! لطفا این مطلب را به اشتراک بگذارید

پست های مرتبط

8 دیدگاه. ارسال دیدگاه جدید

  • حبیب
    1399-05-06 22:33

    درود.این پایه های دیتا رو که گفتین به پورت c متصل نمایید 8 تا پین رو وصل کنم یا 4 تا پین و ترتیبش به چه صورتیه.سپاس

    پاسخ
    • علی حفیظی
      1399-05-06 23:22

      سلام حبیب عزیز

      طبق توضیحات داخل متن نویسنده ذکر کرده است که “پایه های دیتای LCD به PC میکرو کنترلر متصل شده دوستان توجه داشته باشند که به پین های پرارزش پورت C یعنی ۴,۵,۶,۷ متصل میشود.”
      موفق باشید.

      پاسخ
  • حبیب
    1399-05-06 22:35

    و اینکه ولتاژ میکروی stm8s من 3.3 ولت هست.این ولتاژ برای ارتباط با lcd که منطق 5 ولت داره موردی نداره و ارتباط برقرار میشه؟

    پاسخ
    • علی حفیظی
      1399-05-06 23:23

      سلام حبیب عزیز

      میتونید از مبدل های سطح ولتاژ بین میکروکنترلر و نمایشگر استفاده کنید یا ولتاژ تغذیه نمایشگر را به حداقل ولتاژ لازم کاهش بدین و مقاومت های کنترل جریان استفاده کنید.
      موفق باشید

      پاسخ
  • محمد
    1399-07-23 12:42

    با سلام و تشکر بابت آموزشهای بسیار مفید شما
    بنده این برنامه را پیاده کردم ولی کامپایلر این ارور را در مورد توابع موجود در کتابخانه میدهد.
    Error[Li005]: no definition for “lcd_init” [referenced from C:\Users\5570\Desktop\stm8\my prj\1\Debug\Obj\main.o]
    تشکر از راهنمایی شما

    پاسخ
    • علی حفیظی
      1399-07-26 00:31

      سلام محمد عزیز

      کامپایلر این عبارت را تعریف نشده اعلام کرده.
      بررسی کنید آیا کتابخانه را به درستی به برنامه اتون اضافه کردید یا نه
      موفق باشید

      پاسخ
  • عليرضا
    1400-01-11 13:03

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

    پاسخ
    • علی حفیظی
      1400-01-11 13:35

      سلام علیرضا عزیز

      در محل تعریف پروژه اضافه کنید.

      پاسخ

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

فهرست
خانه
درباره ما
ارتباط با ما
جستجو