سلام....خسته نباشید...
برای پروژه ماشین حساب نیاز دارم تا با هربار زدن یک عدد از طریق کیپد مقدار اون عدد در glcd نمایش داده بشه...مثلا با 5 بار زدن 1 مقدار 11111 نمایش داده بشه...ولی نمیتونم...چندین بار حلقه های برنامه رو جابجا کردم...کانتر گذاشتم...ولی همون یدونه 1 شروع به حرکت میکنه...برنامه هم اینه:
و اون تیکه کدی که باعث خرابی میشه این هست :
مشکل زیاد شدیدی نیست...نیاز دارم اعداد به ترتیبی که در کیپد زده میشن روی GLCD نمایش داده بشه...اگر نمایش یک عدد مثل همین 1 رو بفهمم بقیه رو خودم انجام میدم...
یه کمکی بکنید.
اگه خواستید پروتئوسش رو هم براتون پلود میکنم...
برای پروژه ماشین حساب نیاز دارم تا با هربار زدن یک عدد از طریق کیپد مقدار اون عدد در glcd نمایش داده بشه...مثلا با 5 بار زدن 1 مقدار 11111 نمایش داده بشه...ولی نمیتونم...چندین بار حلقه های برنامه رو جابجا کردم...کانتر گذاشتم...ولی همون یدونه 1 شروع به حرکت میکنه...برنامه هم اینه:
کد:
#include <mega32.h>
#include <delay.h>
#include <math.h>
// Graphic LCD functions
#include <glcd.h>
// Font used for displaying text
// on the graphic LCD
#include <font5x7.h>
int i,j;
char A[40];
/////////////////////////////////////////////////////////////////////////////////////////
void keyreader(void);
void main (void)
{
GLCDINIT_t glcd_init_data;
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
DDRC=0x00;
PORTC = 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();
keyreader();
}
/////////////////////////////////////////
////////////////////////////////////////
void keyreader(void)
{
i=0;
do{
PORTC = 0xf0;
if(PINC == 0xff){
delay_ms(5);
if(PINC == 0xff)
A[i]=1;
}
glcd_outtextxy(i,0,"1");
i++;
}
while(i<115);
}
و اون تیکه کدی که باعث خرابی میشه این هست :
کد:
void keyreader(void)
{
i=0;
do{
PORTC = 0xf0;
if(PINC == 0xff){
delay_ms(5);
if(PINC == 0xff)
A[i]=1;
}
glcd_outtextxy(i,0,"1");
i++;
}
while(i<115);
}
یه کمکی بکنید.
اگه خواستید پروتئوسش رو هم براتون پلود میکنم...







دیدگاه