قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

عبوده1234
:: مهندس ::
تاريخ التسجيل: Apr 2012
المشاركات: 1
نشاط [ عبوده1234 ]
قوة السمعة:0
قديم 16-04-2012, 10:51 AM المشاركة 1   
ha أرجو المساعدة في تحويل برنامج بلغة الc إلىhex Twitter FaceBook Google+



[INDENT][INDENT][INDENT]بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته تحية طيبة وبعد:
أرجو تحويل هذا البرنامج المكتوب ب code vision
من لغة ال c إلى hex
وإليكم البرنامج كما يأتي:

Chip type           : ATmega16 
Program type        : Application 
Clock frequency     : 1.000000 MHz 
Memory model        : Small 
External RAM size   : 0 
Data Stack size     : 256
البرنامج يبدأ من هنا
#include <mega16.h> 
#include <delay.h>
unsigned int T = 2000; 
unsigned int X = 2000; 
unsigned int counter = 0; 
//bit f_g=1; 
bit response=0; 
unsigned int F_value = 0; 
int w=0; 
//unsigned int dB_value = 0; 
/*interrupt [EXT_INT2] void ext_int2_isr(void) 
{
// Place your code here 
PORTC.3=0; 
response=1; 
T=1000; 
}*/
// Timer 1 overflow interrupt service rouƟne
interrupt [TIM1_OVF] void Ɵmer1_ovf_isr(void) 
{
// ReiniƟalize Timer 1 value
ICR1H = T>>8; 
ICR1L = T; 
OCR1A = X; 
OCR1B = X; 
counter++;
// Place your code here
}
// Declare your global variables here
// Alphanumeric LCD Module functions 
#asm 
   .equ __lcd_port=0x15 ;PORTC 
#endasm 
#include <lcd.h> 
#define row0 PINA.0 
#define row1 PINA.1 
#define row2 PINA.2 
#define row3 PINA.3
#define col0 PORTA.4 
#define col1 PORTA.5 
#define col2 PORTA.6 
#define col3 PORTA.7
#define a PORTB.6 
#define b PORTB.5 
#define c PORTB.4 
#define en1 PORTB.3 
#define en2 PORTB.2
//char* s=" gg  "; 
//flash char* SF="                "; 
//flash char* SG="                "; 
// Declare your global variables here 
//bit go=0; 
//int value; 
unsigned char i; 
unsigned char j; 
char h; 
char mat[4][4]; 
int data; 
bit p=0; 
bit m=0; 
char z=0; 
bit y=0; 
//bit f=0; 
//bit d=0;
void read() 
{
 j=10; 
 i=10; 
 for(h=0;h<4;h++) 
 {
 switch(h) 
  {
   case 0: col0=0; col1=1; col2=1; col3=1; break; 
   case 1: col0=1; col1=0; col2=1; col3=1; break; 
   case 2: col0=1; col1=1; col2=0; col3=1; break; 
   case 3: col0=1; col1=1; col2=1; col3=0; break; 
  }
   if(!row0) {j=h; i=0;} 
   if(!row1) {j=h; i=1;} 
   if(!row2) {j=h; i=2;}  
   if(!row3) {j=h; i=3;} 
  }
  if(m==0) 
  {
   if(j!=10) 
   {
        data=mat[i][j]; 
    w=0;  
    y=1;  
    PORTB.1=0; 
    p=1; 
   }
   m=1; 
  }
  if(j==10)  
  m=0;   
}
void show() 
{
 if(p==1) 
 {
// lcd_putchar(data); 
  p=0; 
  //y=1; 
 }
}
void get() 
{
/* switch(data) 
        {
        case '=': f_g=1;       break;      
        case '+': f_g=0;       break;      
        case 'c': lcd_clear(); break;      
        } */        
// if(f_g) 
//  {       
//    PORTD.0=1;     // iniƟate the frequancy 
//    PORTD.1=0;
    switch(data) 
        {
        //case '+': T=50;PORTD.0=1;PORTD.1=0;  break;     //20 KHz 
        case '1': T=100;PORTD.0=1;PORTD.1=0; 
  if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("10kHz" );y=0;} break;     //10 KHz 
        case '2': T=125;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("8 kHz" );y=0;} break;     //8 KHz 
        case '3': T=250;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("4 kHz" );y=0;} break;     //4 KHz 
        case '‐': T=500;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("2 kHz" );y=0;} break;     //2 KHz 
        case 'c': T=1000;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("1 kHz" );y=0;} break;     //1 KHz 
        case '0': T=2000;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("500Hz" );y=0;} break;     //500 Hz 
        case '=': T=4000;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');}
 lcd_gotoxy(10,0);lcd_putsf("250Hz");y=0;} break;      //250 Hz 
        case '+': T=8000;PORTD.0=1;PORTD.1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,0 );lcd_putchar(' ');} 
                lcd_gotoxy(10,0);lcd_putsf("125Hz" );y=0;} break;     //125 Hz 
        }
 // }
// if(!f_g) 
//  { 
//    PORTD.1=1;      // iniƟate the dB 
//    PORTD.0=0; 
    switch(data) 
        {                  
        case '*': en1=0;en2=0;a=0;b=0;c=1;PORTD.1= 1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("10 dB" );y=0;}  break; 
        case '6': en1=0;en2=0;a=1;b=1;c=0;PORTD.1= 1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("20 dB" );y=0;}  break; 
        case '5': en1=0;en2=0;a=1;b=0;c=1;PORTD.1= 1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("30 dB" );y=0;}  break; 
        case '4': en1=0;en2=0;a=0;b=1;c=0;PORTD.1= 1;PORTD.0=0; 
f(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("40 dB" );y=0;}  break; 
        case '/': en1=0;en2=0;a=0;b=0;c=0;PORTD.1=1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("50 dB" );y=0;}  break; 
        case '9': en1=0;en2=0;a=1;b=0;c=0;PORTD.1= 1;PORTD.0=0;en1=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("60 dB" );y=0;}  break; 
        case '8': en1=0;en2=0;a=1;b=1;c=1;PORTD.1= 1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("70 dB" );y=0;}  break; 
        case '7': en1=0;en2=0;a=0;b=1;c=1;PORTD.1= 1;PORTD.0=0; 
            if(y==1) 
                {for(z=10;z<16;z++){lcd_gotoxy(z,1 );lcd_putchar(' ');} 
                lcd_gotoxy(10,1);lcd_putsf("80 dB" );y=0;}  break; 
        //case '8': en1=0;en2=1;a=1;b=1;c=1;PORTD.1=1;PORTD. 0=0;  break; 
        //case '9': en1=0;en2=1;a=0;b=1;c=0;PORTD.1=1;PORTD. 0=0;  break; 
        }
//  }
}
void main(void) 
{
   
// Declare your local variables here
// Input/Output Ports initialization 
// Port A initialization 
//  Func7=Out  Func6=Out  Func5=Out  Func4=Out  Func3=In  Func2=In  Func1=In 
Func0=In  
// State7=1 State6=1 State5=1 State4=1 State3=P Stat e2=P State1=P State0=P  
PORTA=0xFF; 
DDRA=0xF0;
// Port B initialization 
//  Func7=In  Func6=Out  Func5=Out  Func4=Out  Func3=Out  Func2=Out  Func1=Out 
Func0=In  
// State7=T State6=0 State5=0 State4=0 State3=0 Stat e2=0 State1=0 State0=P  
PORTB=0x01; 
DDRB=0x7E;
// Port C initialization 
// Func7=In Func6=In Func5=In Func4=In Func3=Out Fun c2=In Func1=In Func0=In  
// State7=T State6=T State5=T State4=T State3=0 Stat e2=T State1=T State0=T  
PORTC=0x00; 
DDRC=0x08; 
// Port D initialization 
// Func7=In Func6=In Func5=Out Func4=Out Func3=In Fu nc2=In Func1=In Func0=In  
// State7=T State6=T State5=0 State4=0 State3=T Stat e2=T State1=T State0=T  
PORTD=0x00; 
DDRD=0x33;
// Timer/Counter 0 iniƟalizaƟon 
// Clock source: System Clock 
// Clock value: Timer 0 Stopped 
// Mode: Normal top=FFh 
// OC0 output: Disconnected 
TCCR0=0x00; 
TCNT0=0x00; 
OCR0=0x00;
// Timer/Counter 1 iniƟalizaƟon 
// Clock source: System Clock 
// Clock value: 1000.000 kHz 
// Mode: Fast PWM top=ICR1 
// OC1A output: Non‐Inv. 
// OC1B output: Inverted 
// Noise Canceler: Off 
// Input Capture on Falling Edge 
// Timer 1 Overflow Interrupt: On 
// Input Capture Interrupt: Off 
// Compare A Match Interrupt: Off 
// Compare B Match Interrupt: Off 
TCCR1A=0xB2; 
TCCR1B=0x19; 
TCNT1H=0x00; 
TCNT1L=0x00; 
ICR1H=0x00; 
ICR1L=0x00; 
OCR1AH=0x00; 
OCR1AL=0x00; 
OCR1BH=0x00; 
OCR1BL=0x00; 
// Timer/Counter 2 iniƟalizaƟon 
// Clock source: System Clock 
// Clock value: Timer 2 Stopped 
// Mode: Normal top=FFh 
// OC2 output: Disconnected 
ASSR=0x00; 
TCCR2=0x00; 
TCNT2=0x00; 
OCR2=0x00;
// External Interrupt(s) initialization 
// INT0: Off 
// INT1: Off 
// INT2: Off 
MCUCR=0x00; 
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization 
TIMSK=0x04;
// Analog Comparator initialization 
// Analog Comparator: Off 
// Analog Comparator Input Capture by Timer/Counter 1: Off 
ACSR=0x80; 
SFIOR=0x00;
// LCD module initialization 
lcd_init(16);
mat[0][0]='/'; 
mat[1][0]='*'; 
mat[2][0]='‐'; 
mat[3][0]='+'; 
mat[0][1]='9'; 
mat[1][1]='6'; 
mat[2][1]='3'; 
mat[3][1]='='; 
mat[0][2]='8'; 
mat[1][2]='5'; 
mat[2][2]='2'; 
mat[3][2]='0'; 
mat[0][3]='7'; 
mat[1][3]='4'; 
mat[2][3]='1'; 
mat[3][3]='c';
// Global enable interrupts 
#asm("sei")
lcd_putsf("this project is made by :"); 
delay_ms(3000); 
lcd_clear();
lcd_putsf("N.M.D & GH.H &  M.KH"); 
delay_ms(5000); 
lcd_clear();
lcd_putsf("Supervised by : ENG M.H"); 
delay_ms(2000); 
lcd_clear();
lcd_putsf("frequ_val= off"); 
lcd_gotoxy(0,1); 
lcd_putsf("dBell_val= off"); 
while (1) 
      {
      //lcd_putsf("nader"); 
       read(); 
       show(); 
       get(); 
      if(w!=1) 
      {
      if ( counter >= 1 ) 
        {
            counter = 0; 
            X=T/2; 
            X %= T;       
        }
      }   
      if(PINB.0==0) 
        {
         PORTB.1=1; 
         PORTD.5=0; 
         response=1; 
         F_value=T; 
         w=1; 
        }  
      };

 
ملاحظة :هل يجب تحديد المداخل و المخارج عند التحويل إلى ملف ال hex

[IMG][/IMG]
 
وإذا كان يجب ذلك فإليكم الصورة التي توضح الدارة أي المداخل والمخارج للمتحكم



وهل يجب تحديد البورت المناسب لل lcd



أرجو الرد السريع ولكم جزيل الشكر

اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:58 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025