سلام به همگی
در کتاب AVR آقای مظاهریان در مبحث پروژه ها برای اسکن یه کیپد 4*4 که شامل 16 کاراکتر هست گفته شده که باید ماتریس چهار در چهار بدست آمده رو طوری بچینیم که ستونها به VCC وصل باشه و سطر ها رو هم با الگوی 0111>1011>1101>1110 اسکن کنیم...من تو برنامه ام همین کار رو کردم ولی از سایر توضیحات آقای مظاهریان چیزی متوجه نشدم...موندم چطور باید فشرده شدن یک کلید خاص رو تشخصی داد
برنامه رو به همراه فایل پروتئوس از پروژه ای که دارم روش کار میکنم (( ماشین حساب مهندسی )) برای شما پلود میکنم:
http://uplod.ir/rcfvuo6ypsra/scientific_calculator_avr.rar.htm
حجمش 128 کیلو هست ولی اگر حال نداشتید دانلود کنید برنامه هم اینه:
در کتاب AVR آقای مظاهریان در مبحث پروژه ها برای اسکن یه کیپد 4*4 که شامل 16 کاراکتر هست گفته شده که باید ماتریس چهار در چهار بدست آمده رو طوری بچینیم که ستونها به VCC وصل باشه و سطر ها رو هم با الگوی 0111>1011>1101>1110 اسکن کنیم...من تو برنامه ام همین کار رو کردم ولی از سایر توضیحات آقای مظاهریان چیزی متوجه نشدم...موندم چطور باید فشرده شدن یک کلید خاص رو تشخصی داد
برنامه رو به همراه فایل پروتئوس از پروژه ای که دارم روش کار میکنم (( ماشین حساب مهندسی )) برای شما پلود میکنم:
http://uplod.ir/rcfvuo6ypsra/scientific_calculator_avr.rar.htm
حجمش 128 کیلو هست ولی اگر حال نداشتید دانلود کنید برنامه هم اینه:
کد:
#include <mega32.h> #include <delay.h> // Graphic LCD functions #include <glcd.h> // Font used for displaying text // on the graphic LCD #include <font5x7.h> ///////////////////////////////////////////////////////////////////////////////////////// void keypadreader(void); void main(void) { GLCDINIT_t glcd_init_data; PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; DDRC=0xf0; PORTD=0x00; DDRD=0x00; glcd_init_data.font=font5x7; glcd_init(&glcd_init_data); glcd_outtextxy(0,28,"SCIENTIFIC CALCULATOR"); delay_ms(100); glcd_clear(); while (1) { keypadreader(); } } ////////////////////////////////////////////////////////////////////// void keypadreader(void) { do{ PORTC = 0b11111110; delay_ms(2); PORTC = 0b11111101; delay_ms(2); PORTC = 0b11111011; delay_ms(2); PORTC = 0b11110111; delay_ms(2); } while(1); }
دیدگاه