اطلاعیه

Collapse
No announcement yet.

حل مشکل lcd کاراکتری تا ابد

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    حل مشکل lcd کاراکتری تا ابد

    با سلام همه مبتدی های مثل من تو arm intel sam7x256 به مشکل بر می خورن علت این اتفاق هم اینه که هرکی برای خودش کتابخونه ساخته و اونو معرفی کرده

    من سورس برنامه و کتابخونه هایی که باهاش ال سیدی رو راه انداختم براتون لینک می زارم امیدوارم برای شما هم مثل من کار کنه
    فقط چند تا نکته مهم هست که باید رعایت کنید

    این کد مشخص می کنه lcd رو به چه صورت وصل می کنید من اینجا از مد 4 سیمه استفاده کردم
    کد:
    #define LCD_bit 4
    این کد مشخص می کنه که lcd به چه پورتی وصله
    کد:
    #define LCD_PORT_A
    این کد ها که مشخصه rs به پایه a0 وصله e iهم به 1 و به ترتیب
    [code]
    #define LCD_RS 0
    #define LCD_E 1
    #define LCD_DB4 4
    #define LCD_DB5 5
    #define LCD_DB6 6
    #define LCD_DB7 7[/code
    ]

    نکته ای که خیلی مهمه کد های بالا رو قبل از
    کد:
    #include <lcd.h>
    باید بیارید وگرنه ارور undefine بهتون می ده

    نکته دیگه که کسایی که کد ویژن کار کرده باشن براشون اشنایه

    برای نوشتن روی lcd حتما قبلش باید lcd رو اماده کرد با دستور زیر
    کد:
    lcd_init();

    هر مشکلی پیدا کردید بگید

    اینم لینک فایل ها هدر و سورس برنامه
    http://www.mediafire.com/?py7ndbxo1d5go93

    فایل های هدر رو تو همچین ادرسی باید کپی کنید
    کد:
    X:\Keil\ARM\INC\Atmel\SAM7X
    مصطفی رحمن زاد

    #2
    پاسخ : حل مشکل lcd کاراکتری تا ابد

    سلام.
    این هدر یه مشکل داره اونم وقتیه که میکرو رو ریست میکنی. اونوقته که ال سی دی قاطی میکنه! نتونستم نرمافزاری حلش کنم.دوتاپین میکرو رو هم برای پاور ال سی دی اشغال کردم تا ال سی دی هم همراش ریست بشه.
    اساتید اگه میتونن یه راه حل نرمافزاری ارائه بدن.

    راستی یه مشکل دیگه هم داره ، عدد صفرو نشون نمیده! منظورم تابع lcd_puts هستش.

    :bye

    دیدگاه


      #3
      پاسخ : حل مشکل lcd کاراکتری تا ابد

      قبل نوشتن ال سی درو پاک می کنی ؟
      منم این مشکل داشتم درست شد
      عدد صفرو منم قبول دارم نشون نمی ده اما از این کتابخونه بهتر گیر نیاوردم :(((

      دیدگاه


        #4
        پاسخ : حل مشکل lcd کاراکتری تا ابد

        سلام.
        مشکل نشون دادن صفر رو حل کردم. :smile:
        کافیه کد زیر رو به جای تابع lcd_puts تو هدر lcd.h قرار بدید.
        کد:
        //============================================================================
         void lcd_puts(int num)
        {
          int i,j;
          int p,f=0;
          char ch[5];
        	if(num==0)
        		lcd_putchar('0');
        	else{
        		for(i=0;i<5;i++)
        		{ 
        		p=1;
        		for(j=4-i;j>0;j--)
        		p = p*10;
        		ch[i] = (num/p);
        		if (num>=p && !f){
        		f=1; 
        		}
        		num =num - ch[i] *p ;
        		ch[i] = ch[i] +48;
        		if(f) lcd_putchar(ch[i]);
        		}
          }
        }

        دیدگاه


          #5
          پاسخ : حل مشکل lcd کاراکتری تا ابد

          خب حالا که اینجا هدر های lcd بدون مشکل قرار دارن این هم هدری که خودم نوشتم و استفاده میکنم البته خیلی امکانات نداره ولی بهینه هست.
          ابته برای lpc که با تغیرات جزئی میشه برای هر میکرویی استفاده کرد
          تغییر پایه ها هم با ویرایش کردن هدر :mrgreen:
          lcd.rar - 0.8 Kb
          تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

          دیدگاه


            #6
            پاسخ : حل مشکل lcd کاراکتری تا ابد

            نوشته اصلی توسط Mostafa_y
            سلام.
            مشکل نشون دادن صفر رو حل کردم. :smile:
            کافیه کد زیر رو به جای تابع lcd_puts تو هدر lcd.h قرار بدید.
            کد:
            //============================================================================
             void lcd_puts(int num)
            {
              int i,j;
              int p,f=0;
              char ch[5];
            	if(num==0)
            		lcd_putchar('0');
            	else{
            		for(i=0;i<5;i++)
            		{ 
            		p=1;
            		for(j=4-i;j>0;j--)
            		p = p*10;
            		ch[i] = (num/p);
            		if (num>=p && !f){
            		f=1; 
            		}
            		num =num - ch[i] *p ;
            		ch[i] = ch[i] +48;
            		if(f) lcd_putchar(ch[i]);
            		}
              }
            }
            با if ساده حلش کردی افرین ایول

            دیدگاه


              #7
              پاسخ : حل مشکل lcd کاراکتری تا ابد

              http://www.eca.ir/forum2/index.php?topic=88675.msg547635#msg547635
              یک سری به این لینک بزنید کاملش هست

              دیدگاه

              لطفا صبر کنید...
              X