ُلام به همگی...
چند روزی هست که بدلیل داشتن کمی وقت آزاد قصد داشتم پروژه ماشین حساب مهندسی رو طراحی کنم و خودتون هم میدونید که این دستگاه دکمه های زیادی داره و برای اینکار یکی از دوستان در همین انجمن یک آی سی به اسم 74C922 رو بمن معرفی کرد و منم در پروژه ام ازش استفاده کردم ولی مشکلی که دارم اینه که خروجی این آی سی مثل خروجی پوش باتن بطور لحظه ای نیست...یعنی اگر با زدن یک دکمه خروجی به مقداری مثل 0xf3 تغییر پیدا کنه تا زمانی که دکمه دیگری رو نزدیم این خروجی ثابت میمونه و مشکل منم دقیقا همینجاست...با ثابت موندن این مقدار نمایش اعداد روی GLCD بطور متوالی انجام میشه و اصلا متوقف نمیشه...
ببینید...مشکل از دو جا میتونه باشه...یا از آی سی هست که من بلد نیستم خروجی اش رو مثل پوش باتن (( لحظه ای )) بکنم...
یا از برنامه نویسی و حلقه While هست که باعث میشه اون خروجی تا بینهایت خونده بشه و باعث چاپ اعداد به مدت نامحدود بشه
عکسی از پروتئوس پروژه رو میذارم تا بهتر ملتفت بشید:

برنامه هم اینه:
اینم کل فایلهای پروژه:
http://uplod.ir/bh02av92cir5/scientific_calculator_avr.rar.htm
امیدوارم مشکل من رو فهمیده باشید و یه کمکی هم بکنید....
ممنون
چند روزی هست که بدلیل داشتن کمی وقت آزاد قصد داشتم پروژه ماشین حساب مهندسی رو طراحی کنم و خودتون هم میدونید که این دستگاه دکمه های زیادی داره و برای اینکار یکی از دوستان در همین انجمن یک آی سی به اسم 74C922 رو بمن معرفی کرد و منم در پروژه ام ازش استفاده کردم ولی مشکلی که دارم اینه که خروجی این آی سی مثل خروجی پوش باتن بطور لحظه ای نیست...یعنی اگر با زدن یک دکمه خروجی به مقداری مثل 0xf3 تغییر پیدا کنه تا زمانی که دکمه دیگری رو نزدیم این خروجی ثابت میمونه و مشکل منم دقیقا همینجاست...با ثابت موندن این مقدار نمایش اعداد روی GLCD بطور متوالی انجام میشه و اصلا متوقف نمیشه...
ببینید...مشکل از دو جا میتونه باشه...یا از آی سی هست که من بلد نیستم خروجی اش رو مثل پوش باتن (( لحظه ای )) بکنم...
یا از برنامه نویسی و حلقه While هست که باعث میشه اون خروجی تا بینهایت خونده بشه و باعث چاپ اعداد به مدت نامحدود بشه
عکسی از پروتئوس پروژه رو میذارم تا بهتر ملتفت بشید:

برنامه هم اینه:
کد:
#include <mega32.h> #include <delay.h> #include <math.h> #include <stdio.h> #include <glcd.h> #include <font5x7.h> unsigned char temp,result; char str; unsigned char keyreader(void); void main (void) { GLCDINIT_t glcd_init_data; PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0xf0; DDRC=0x00; 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){ keyreader(); } } ///////////////////////////////////////// //////////////////////////////////////// unsigned char keyreader(void) { temp = PINC; switch(temp) { case 0xff: result=1; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; //////////////////////////////////////////////// case 0xfb: result=2; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; /////////////////////////////////////////////// case 0xf7: result=3; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; /////////////////////////////////////////////// case 0xf3: result=4; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; ////////////////////////////////////////////// case 0xfe: result=5; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; ////////////////////////////////////////////// case 0xfa: result=6; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; ///////////////////////////////////////////// case 0xf6: result=7; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; ///////////////////////////////////////////// case 0xf2: result=8; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; //////////////////////////////////////////// case 0xfd: result=9; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; //////////////////////////////////////////// case 0xf9: result=0; sprintf(&str,"%d",result); delay_ms(5); glcd_outtext(&str); break; //////////////////////////////////////////// } return result; }
http://uplod.ir/bh02av92cir5/scientific_calculator_avr.rar.htm
امیدوارم مشکل من رو فهمیده باشید و یه کمکی هم بکنید....
ممنون
دیدگاه