سلام دوستان عزیز اول از همه تولد حضرت علی اکبر و روز جوان مبارک همه شما باشه :applause:
ی کیبرد به میکرو وصله که میخام تا عدد مثلا 25 خونده شد ی چراغ را روشن کنه و اگر غیر از این عدد بود چراغ دیگه ای را چشمک زنان روشن کنه
این برنامه برای تک عددی را نوشتم اما دو عددی یکم گیر دارم
اینم چیزی که از دو عددی به ذهنم رسید ولی جواب نمیده
ی کیبرد به میکرو وصله که میخام تا عدد مثلا 25 خونده شد ی چراغ را روشن کنه و اگر غیر از این عدد بود چراغ دیگه ای را چشمک زنان روشن کنه
این برنامه برای تک عددی را نوشتم اما دو عددی یکم گیر دارم
کد:
#include <mega16.h> #include <delay.h> volatile unsigned char data,b=0,i; void ref_key(){ DDRC=0X0f; PORTC=0xff; PORTC.0=0; delay_ms(15); if(PINC.4==0){data=7,b=1;} if(PINC.5==0){data=4,b=1;} if(PINC.6==0){data=1,b=1;} if(PINC.7==0){data=14,b=1;} //************************* PORTC=0xff; PORTC.1=0; delay_ms(15); if(PINC.4==0){data=8,b=1;} if(PINC.5==0){data=5,b=1; } if(PINC.6==0){data=2,b=1; } if(PINC.7==0){data=15,b=1; } //************************* PORTC=0xff; PORTC.2=0; delay_ms(15); if(PINC.4==0){data=9,b=1;} if(PINC.5==0){data=6,b=1; } if(PINC.6==0){data=3,b=1; } if(PINC.7==0){data=16,b=1; } //************************ PORTC=0xff; PORTC.3=0; delay_ms(15); if(PINC.4==0){data=11,b=1;} if(PINC.5==0){data=12,b=1; } if(PINC.6==0){data=13,b=1; } if(PINC.7==0){data=17,b=1; } //************************ } void main (){ DDRA=0XFF; DDRB=0XFF; while (1){ ref_key(); if(b==1){ // که اگر هیچ کلیدی زده نشد به قسمت الس نره if (data==6){ PORTA.0=1; PORTB.0=0;} else { PORTA.0=0; for(i=0;i<3;i++){ PORTB.0=1; delay_ms(500); PORTB.0=0; delay_ms(500); b=0; } } } }
اینم چیزی که از دو عددی به ذهنم رسید ولی جواب نمیده
کد:
#include <mega16.h> #include <delay.h> volatile unsigned char data,b=0,x=0,a=0; void ref_key(){ DDRC=0X0f; PORTC=0xff; PORTC.0=0; delay_ms(15); if(PINC.4==0){data=7,b=1,x++;} if(PINC.5==0){data=4,b=1,x++;} if(PINC.6==0){data=1,b=1,x++;} if(PINC.7==0){data=14,b=1,x++;} //************************* PORTC=0xff; PORTC.1=0; delay_ms(15); if(PINC.4==0){data=8,b=1,x++;} if(PINC.5==0){data=5,b=1,x++; } if(PINC.6==0){data=2,b=1,x++; } if(PINC.7==0){data=15,b=1,x++; } //************************* PORTC=0xff; PORTC.2=0; delay_ms(15); if(PINC.4==0){data=9,b=1,x++;} if(PINC.5==0){data=6,b=1,x++; } if(PINC.6==0){data=3,b=1,x++; } if(PINC.7==0){data=16,b=1,x++; } //************************ PORTC=0xff; PORTC.3=0; delay_ms(15); if(PINC.4==0){data=11,b=1,x++;} if(PINC.5==0){data=12,b=1,x++; } if(PINC.6==0){data=13,b=1,x++; } if(PINC.7==0){data=17,b=1,x++; } //************************ } void main (){ DDRA=0XFF; DDRB=0XFF; while (1){ ref_key(); //if(b==1){ if(x==1){ a=data*10; if(x==2) { data=a+data; x=0; if (data==69) PORTA.0=1; else { PORTA.0=0; //for(i=0;i<3;i++){ PORTB.0=1; delay_ms(500); PORTB.0=0; delay_ms(500); b=0; //x=0; } } } } }
دیدگاه