اطلاعیه

Collapse
No announcement yet.

نحوه ریست کردن lcd به وسیله 8051

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

    نحوه ریست کردن lcd به وسیله 8051

    با سلام یک مدار فرستنده گیرنده طراحی کردم که می خواهم کلید ریستی در آن تعبیه کنم که بعد از از ارسال کاراکتر روی lcd آن را ریست کند و کاراکترها از روی آن پاک شود اگر کدی می باست به مدار اظافه شود لطفا راهنمایی کنید با تشکر.
    مدار تشکیل شده از 2 میکرو 89c2051
    یک فرستنده گیرنده hmtr
    1 کی پد و 1 ال سی دی


    کد:
    #include <at89x051.h>
    #include <LCD.h>
    void delay_ms( unsigned int value);
    void main()				  
    {
    	char Input=0;
    	cls();
    	while(1)
    	{
    		Input=P3 & 0x0f;
    		delay_ms(5);
    		switch (Input)
    		{
    			//case 0x00:break;
    			case 0x01:lcd_show("B");delay_ms(3);break;
    			case 0x02:lcd_show("C");delay_ms(3);break;
    			case 0x03:lcd_show("D");delay_ms(3);break;
    			case 0x04:lcd_show("3");delay_ms(3);break;
    			case 0x05:lcd_show("6");delay_ms(3);break;
    			case 0x06:lcd_show("9");delay_ms(3);break;
    			case 0x07:lcd_show("#");delay_ms(3);break;
    			case 0x08:lcd_show("2");delay_ms(3);break;
    			case 0x09:lcd_show("5");delay_ms(3);break;
    			case 0x0a:lcd_show("8");delay_ms(3);break;
    			case 0x0b:lcd_show("0");delay_ms(3);break;
    			case 0x0c:lcd_show("1");delay_ms(3);break;
    			case 0x0d:lcd_show("4");delay_ms(3);break;
    			case 0x0e:lcd_show("7");delay_ms(3);break;
    			case 0x0f:lcd_show("*");delay_ms(3);break;
    		}
    		delay_ms(60);
    	}
    }
     void delay_ms( unsigned int value)
    {
    	unsigned int i=0,j=0;
    	for(i=0;i<value;i++)
    		for(j=0;j<1000;j++);
    }
    کد:
    #include <at89x051.h>
    
    sbit D0 = P3^0; 
    sbit D1 = P3^1; 
    sbit D2 = P3^2; 
    sbit D3 = P3^3; 
    sbit TE = P3^4; 
    #define Data P1
    char key=0;
    void delay_ms( unsigned int value);
    void main()
    {
     while(1)
    {
    
       TE=1;
       Data=0x7f; //sotone 1 ra 0 kardeh
       delay_ms(10);
       key=Data;
       key=key&0x0f;
       switch(key){
       case 0x0e:D0=0;D1=0;D2=0;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x0d:D0=1;D1=0;D2=0;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x0b:D0=0;D1=1;D2=0;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x07:D0=1;D1=1;D2=0;D3=0;TE=0;delay_ms(7);TE=1;break; 
             }
       Data=0xbf; //sotone 2 ra 0 kardeh
       delay_ms(10);
       key=Data;
       key=key&0x0f;
       switch(key){
       case 0x0e:D0=0;D1=0;D2=1;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x0d:D0=1;D1=0;D2=1;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x0b:D0=0;D1=1;D2=1;D3=0;TE=0;delay_ms(7);TE=1;break;
       case 0x07:D0=1;D1=1;D2=1;D3=0;TE=0;delay_ms(7);TE=1;break;
             }
       Data=0xdf;  //sotone 3 ra 0 kardeh
       delay_ms(10);
       key=Data;
       key=key&0x0f; 
       switch(key){
       case 0x0e:D0=0;D1=0;D2=0;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x0d:D0=1;D1=0;D2=0;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x0b:D0=0;D1=1;D2=0;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x07:D0=1;D1=1;D2=0;D3=1;TE=0;delay_ms(7);TE=1;break;
             }
       Data=0xef;   //sotone 4 ra 0 kardeh
       delay_ms(10);
       key=Data;
       key=key&0x0f; 
       switch(key){
       case 0x0e:D0=0;D1=0;D2=1;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x0d:D0=1;D1=0;D2=1;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x0b:D0=0;D1=1;D2=1;D3=1;TE=0;delay_ms(7);TE=1;break;
       case 0x07:D0=1;D1=1;D2=1;D3=1;TE=0;delay_ms(7);TE=1;break;
             }	
    }//end of while 
    }
     void delay_ms( unsigned int value)
    {
    	unsigned int i=0,j=0;
    	for(i=0;i<value;i++)
    		for(j=0;j<100;j++);
    }
    دوربین مدار بستهدوربین مدار بستهدوربین مداربسته تحت شبکهسیستم کنفرانسدزدگیر اماکنکرکره اتوماتیکایمپلنت

    #2
    پاسخ : نحوه ریست کردن lcd به وسیله 8051

    نمونه کد اولی که گذاشتید ناقصه ولی کاری که باید بکنید اینه که
    بعد از تشخیص کلید مورد نظر باید با دستور cls() السیدی رو پاک کنید.

    دیدگاه


      #3
      پاسخ : نحوه ریست کردن lcd به وسیله 8051

      میشه یکم واضح تر توضیح بدید با تشکر.
      دوربین مدار بستهدوربین مدار بستهدوربین مداربسته تحت شبکهسیستم کنفرانسدزدگیر اماکنکرکره اتوماتیکایمپلنت

      دیدگاه


        #4
        پاسخ : نحوه ریست کردن lcd به وسیله 8051

        اینکه خودتون دست به کار شدید خوبه. باید کار رو مرحله به مرحله جلو ببرید.
        اول از lcd جواب بگیرید.
        بعد کیپد رو راه بندازید.
        بعد برید سراغ HMTR.
        نکته دیگه اینکه 2051 برای اینکار مناسب نیست.شما برای کیپد 4*4 به 8 پین احتیاج دارید(برای4*3 میشه 7 پین). برای lcd هم 7 پین(البته با 6 پین هم ممکنه.شاید لازم بشه تغییراتی در کد کتابخانه السیدی بدید). بدین ترتیب همه پینها اشغال میشه و برای کارهای دیگه پینی وجود نداره.

        دیدگاه

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