اطلاعیه

Collapse
No announcement yet.

کامپایل کد تلفن کننده در Keil

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کامپایل کد تلفن کننده در Keil

    سلام،من یه کد C در Keil دارم که فقط کتابخونه های reg51.h و io.h رو فراخونی میکنه، میکروی من 8051AH هستش،مساله اینه که کد کامپایل نمیشه،این error ها رو میده:

    InitIO:missing function prototype
    ClearScreen:missin function protype
    PutChar:missing function prototype
    PutChar:requires ANSI-style prototype

    من io.h رو که مینکم stdio.h این دفعه همون error هاست فقط به جای PutChar میشه gotoXY.

    اگه کتابخونه ی conio.h که دستورات بالا رو توش هست به نرم افزار اضافه کنم(از کتابخونه های Turbo C ،چون توی اینترنت نیست) حالا error های قبلی میره یه error دیگه دارم:
    missing: ';' before 'directvideo'
    که این مربوط میشه به یکی از خطوط conio.h

    دیگه واقعا نمیدونم چیکار کنم،من تا حالا با 8051 کار نکردم و الان فقط منتظر یه فایل HEX نا قابلم،اگه لازمه هم کد رو بفرستم،لطفا یکی واسه من اینو کامپایل کنه(یا کمک کنه کامپایل کنم)،باید پروژه تحویل بدم،ممنون!

    #2
    پاسخ : کامپایل کد تلفن کننده در Keil

    تو رو خدا یکی به من کمک کنه،دیوونه شدم دیگه!!! :cry: :cry: :cry:

    دیدگاه


      #3
      پاسخ : کامپایل کد تلفن کننده در Keil

      درود اگه میشه کد برنامه رو بفرستید

      دیدگاه


        #4
        پاسخ : کامپایل کد تلفن کننده در Keil

        کد:
        /* main.c */
        
        
        
        /* Read from a keypad and display the key pressed */
        
        /* on an 7-segment display */
        
        
        
        #pragma SMALL DB OE
        
        #include <reg51.h>
        
        #include "io.h"
        
        
        
        
        
        /* sigs for clk, "go" input from eblock, turn realy on sig */
        
        sbit PH2= P0^2;
        
        sbit GO_SIG = P0^3;
        
        sbit RELAY_ON = P0^4;
        
        
        
        
        
        unsigned char key_scan(){
        
         unsigned char i, j, temp1, temp2;
        
        
        
         while(1){           /* keep waiting for a key to be pressed */
        
           for(i=0; i<4; i++){
        
                         /* Set each row to 0 */
        
        	 P1 = 0xff & ~(1<<i);
        
        	 
        
         			     /* Scan each column to see which key was pressed */
        
        	 for(j=4; j<8; j++){
        
        	   
        
        		 		 /* Code to determine the position 
        
                          of the key which was pressed*/
        
        	   
        
        	   temp1 = (P1 >> j) & 1;
        
        	   if(!temp1)
        
        	   {
        
        	     temp2 = i*4 + j - 4;
        
        	 	 return(temp2);
        
        	   }
        
        	 }
        
           }
        
         }
        
        }
        
        
        
        void delay() {
        
        	int i, j;
        
        
        
        	for(i=0; i<1000; i++)
        
        		for(j=0; j<50; j++)
        
        			i = i+0;
        
        }
        
        
        
        /* strobes mt8880c PH2 clock */
        
        void strobe()
        
        {
        
        	int i;
        
        	PH2=1;
        
        	i=i+1;
        
        	i=i+2;
        
        	i=i+3;
        
        	PH2=0;
        
        	i=i+4;
        
        	i=i+5;
        
        }
        
        
        
        
        
        
        
        void main()
        
        {
        
         /* You can have a conversion table to convert the key position into a
        
           valid number or letter. The "*" and "#" symbols result in
        
           errors and map into postion 17 of the LookupTable */
        
        
        
        
        
         unsigned char conv_table[] = { 
        
           0x01, 0x02, 0x03, 0x0f /*add*/,
        
           0x04, 0x05, 0x06, 0x0f /*sub*/,
        
           0x07, 0x08, 0x09, 0x0f /*mul*/,
        
          0x0f, 0x0a, 0x0f, 0x0f /*div*/
        
         };
        
        	
        
        	char num;
        
        	char number[16];
        
        	int on=0;
        
        	int i;
        
        
        
        	RELAY_ON=0;
        
        	InitIO();
        
        	ClearScreen();
        
        
        
        
        
         	PH2=0;
        
         	/*P2=0xff;
        
         	strobe();
        
         	delay(); */
        
         	
        
         	delay();
        
         	delay();
        
         	
        
         	
        
         	/* init sequence for mt8880c */
        
         	P2=0x30;
        
         	strobe();
        
         	P2=0x20;
        
         	strobe();
        
         	P2=0x20;
        
         	strobe();
        
         	P2=0x28;
        
         	strobe();
        
         	P2=0x20;
        
         	strobe();
        
         	P2=0x30;
        
         	strobe();
        
         	
        
        	P2=0x2d;
        
        	strobe();
        
        	
        
        	P2=0x20;
        
        	strobe();
        
        	
        
        	while(1)
        
        	{
        
           /*read input from user */
        
           num=conv_table[key_scan()];
        
           if(num!=0x0f)
        
           {
        
           	number[on++]=num;
        
           	
        
           	/* print num then repeat */
        
           	if(num>0 && num <= 9) PutChar(num+'0');
        
           	else if(num==10) PutChar('0');
        
           	
        
           	if(on==8) GotoXY(1,0);
        
           	if(on==16) goto done;
        
           	delay();
        
        
        
           }
        
           else
        
           {
        
           	/* wait for eblock signal */
        
           	done: ClearScreen();
        
           	PrintString("Waiting.");
        
           	GotoXY(1,0);
        
           	PrintString("..");
        
           	while(GO_SIG==0);
        
           	ClearScreen();
        
           	RELAY_ON=1;
        
           	delay();
        
           	
        
           	/* output + dial */
        
           	for(i=0;i<on;++i)
        
           	{
        
           		if(number[i]>0 && number[i] <= 9) PutChar(number[i]+'0');
        
           		else if(number[i]==10) PutChar('0');
        
           		
        
           		P2=number[i];
        
           		strobe();
        
           		delay();
        
           		delay();
        
           		if(i==7) GotoXY(1,0);
        
           	}
        
           	
        
           	for(i=0;i<40;++i) delay();
        
           	ClearScreen();
        
           	RELAY_ON=0;
        
          	PrintString("DONE!!!");
        
           }
        
         }
        
        
        
           
        
         
        
        	
        
        	
        
        	
        
        	
        
        	
        
        	
        
        }

        دیدگاه


          #5
          پاسخ : کامپایل کد تلفن کننده در Keil

          درود دوست عزیزبرنامه تونو تو ورد بریز بعد از اونجا کپی کن تو برنامه کد ویژن
          و از طریق کد ویژن برنامه تونو تو آی سی 8051 بریزید اگه نشد خبرم کنید موفق باشید

          دیدگاه


            #6
            پاسخ : کامپایل کد تلفن کننده در Keil

            دوست عزیز شرمنده،من AVR CodeVision خیلی بلد نیستم ولی خب این نرم افزار که اصلا 8051 نداره،در ضمن هرچی باهاش ور میرم اصلا کد رو کامپایل نمیکنه!خواهش میکنم کمکم کنید!!! :cry: :cry: :cry2:

            دیدگاه


              #7
              پاسخ : کامپایل کد تلفن کننده در Keil

              دوست عزیزم منظورم اینه که وقتی برنامتونو توسط کد ویژن به باینریی تبدیل کردی بعد اونو توسط برنامه باینری به هگز تبدیل کن به هگز بعد پروگرام کن تو ای سی

              دیدگاه


                #8
                پاسخ : کامپایل کد تلفن کننده در Keil

                تا کی وقت داری؟من الان نرم افزار رو کامپیوتر ندارم

                دیدگاه


                  #9
                  پاسخ : کامپایل کد تلفن کننده در Keil

                  من نتونستم توی کد ویژن کامپایل کنم،اگه لطفا میشه یه جوری مشکل من رو حل کنید،خیلی وقت ندارم ،باید ظرف 2 ،3 روز دیگه تحویل بدم،واقعا شرمنده م که دارم اینجوری مزاحم میشم! :sad: :cry:

                  دیدگاه


                    #10
                    پاسخ : کامپایل کد تلفن کننده در Keil

                    سلام خدمت دوستان.من میخوام توسط برنامه keilبه زبان اسمبلی یک برنامه بنویسم که با فشردن کیپد عددمن بر روی سون سگمنت نمایش داده بشه البته با IC89C51.اما نمیدونم چطور باید بنویسیم میتونید کمکم کنید تا بتونم بنویسم؟

                    دیدگاه

                    لطفا صبر کنید...
                    X