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

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 15-03-2013, 09:03 PM المشاركة 17   
افتراضي



لكن الكود الذي ارسلته لك يقرأ جميع القيم ....
للحصول على الفارزة العشرة عرف المتغير الخاص بالتردد بصيغة Float

اعلانات

ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 16-03-2013, 11:01 PM المشاركة 18   
افتراضي


بارك الله فيك لقد غيرت الي float لكن يعطي خطا لما اعمل كمبايلر او رن للبرنامج علي الميكرو سي ياليت تعملها لي ياباشمهندس

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 17-03-2013, 10:52 AM المشاركة 19   
افتراضي


في الكود السابق كنا نحسب عدد النبضات في الثانية و مع كل نبضة تزداد قيمة x بواحد ...
ولاظهار النتائج بالكسور فنحتاج الى ان تكون الزيادة في X بمعدل 0.1 لكل نبضة و خلال 10 ثوان ...
و هذا يعني ان التغير الذي يحصل في التردد سيظهر على الشاشة بعد 10 ثوان على الاقل ...
و هذا هو الكود

كود:
   
 sbit LCD_RS at Rd2_bit;
sbit LCD_EN at Rd3_bit;
sbit LCD_D4 at Rd4_bit;
sbit LCD_D5 at Rd5_bit;
sbit LCD_D6 at Rd6_bit;
sbit LCD_D7 at Rd7_bit;

sbit LCD_RS_Direction at TRISd2_bit;
sbit LCD_EN_Direction at TRISd3_bit;
sbit LCD_D4_Direction at TRISd4_bit;
sbit LCD_D5_Direction at TRISd5_bit;
sbit LCD_D6_Direction at TRISd6_bit;
sbit LCD_D7_Direction at TRISd7_bit;
float x=0.00;
float y[12];
void interrupt()
{
x+=0.1;
intcon.f1=0;
}
void main()
{
trisc=0;PORTc=0;trisb.f0=1;
lcd_init();
lcd_cmd(_LCD_CURSOR_OFF);

while(1){
intcon=0b10010000;
delay_ms(9902);
FloatToStr(x,y);
lcd_out(1,2,y);
lcd_out_cp("    Hz");

intcon=0;



}

}


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 17-03-2013, 05:13 PM المشاركة 20   
افتراضي


كعادتك اخي حيدر ماشاء الله تبارك الله عندي ملاحظتيين:

1- البرنامج شغال 100% بالفواصل مع موجة مربعة اما اذا ادخلنا اشارة تناظرية يعطي صفر على طول

2-ياليت اخي حيدر تغير لي الكود اللي وضعتة انا بحيث يقرأ float لاني حاولت لكن يعطي خطأ لما اعمل رن للبرنامج الميكروسي.

كود:
sbit LCD_RS at RC4_bit;
sbit LCD_EN at RC5_bit;
sbit LCD_D4 at RC0_bit;
sbit LCD_D5 at RC1_bit;
sbit LCD_D6 at RC2_bit;
sbit LCD_D7 at RC3_bit;
sbit LCD_RS_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISC5_bit;
sbit LCD_D4_Direction at TRISC0_bit;
sbit LCD_D5_Direction at TRISC1_bit;
sbit LCD_D6_Direction at TRISC2_bit;
sbit LCD_D7_Direction at TRISC3_bit;
// End LCD module connections
// Define Messages

char message1[] = "F=      Hz";
char *freq = "00.0";
//float freq=0.00;
//float y[12];
void Display_Freq(unsigned int freq2write) {

 freq[0] =  (freq2write/10)%10 + 48;    // Extract tens digit
 freq[1] =   freq2write%10     + 48;    // Extract ones digit
 // Display Frequency on LCD
  
 //FloatToStr(freq,y);
 //lcd_out(1,5,y);
 
  Lcd_Out(1, 5, freq);
}
void main() {

 CMCON0 = 0x07;    // Disable Comparators
 ANSEL = 0x00;     // Disable analog channels
 TRISC = 0x00;     // PORTC O/P
 TRISA = 0b00001100; // RA2/T0CKI input, RA3 is I/P only
 OPTION_REG = 0b00101000; // Prescaler (1:1), TOCS =1 for counter mode
 Lcd_Init();                 // Initialize LCD
 Lcd_Cmd(_LCD_CLEAR);        // CLEAR display
 Lcd_Cmd(_LCD_CURSOR_OFF);   // Cursor off
 Lcd_Out(1,1,(message1));      // Write message1 in 1st row
 do {

  TMR0=0;
  Delay_ms(1000);  // Delay 1 Sec
  Display_Freq(TMR0);
 } while(1);  // Infinite loop
}


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 17-03-2013, 07:51 PM المشاركة 21   
افتراضي


كنت اقصد بالموجة التناظرية ان تكون جيبية ..
و تكون قمتها 5 فولت ...
عندما اعمل نسخ للكود يضهر كله بجملة واحدة متداخله يصعب ترتيبها ...
اما ان تضعه بدون تعليقات او يستحسن ان ترفع ملفات المشروع كاملة مع البروتوس


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 18-03-2013, 12:43 AM المشاركة 22   
افتراضي


تفضل اخي الديزاين مع الكود
ملاحظة ملف comparator مع المتحكم الاول pic16f877a وملف Timer مع المتحكم الاخر.
بارك الله فيك اخي حيدر
https://www.4shared.com/zip/0Q_D6Vgl/Timerconter.html?


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 19-03-2013, 12:33 AM المشاركة 23   
افتراضي


هل من حل هنا !!!


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 19-03-2013, 02:29 AM المشاركة 24   
افتراضي


اسف اخي على التاخير فاني كنت مريض هذه الفترة ...
ملف الكود يظهر فارغ ...



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