با سلام یک مدار فرستنده گیرنده طراحی کردم که می خواهم کلید ریستی در آن تعبیه کنم که بعد از از ارسال کاراکتر روی lcd آن را ریست کند و کاراکترها از روی آن پاک شود اگر کدی می باست به مدار اظافه شود لطفا راهنمایی کنید با تشکر.
مدار تشکیل شده از 2 میکرو 89c2051
یک فرستنده گیرنده hmtr
1 کی پد و 1 ال سی دی
مدار تشکیل شده از 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++); }
دیدگاه