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

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

mshh
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2010
المشاركات: 53
نشاط [ mshh ]
قوة السمعة:0
قديم 24-04-2011, 08:57 PM المشاركة 1   
افتراضي مساعده في درجة حراره Twitter FaceBook Google+



[LEFT]
انا بستعمل lm35 عايز اخد درجة الحراره واعرضها علي lcd
لكن مش عارف ازاي استرجع درجة الحراره
مثلا ازاي احول درجة الحراره اللي اتحولت بالانالوج الي ديجيتال الي الصوره دي
35 ]درجه مثلا
اللي بيحصل انها بتبقي 35 واللي بيتعرض عالشاشه رقم تاني
بستخدم ميكروسي avr

atmega8
كود:
unsigned long Vin,temp;
unsigned char op[12];

unsigned char i,j,lcd[5];
  


            // LCD module connections
sbit LCD_RS at PORTD2_bit;
sbit LCD_EN at PORTD3_bit;
sbit LCD_D4 at PORTD4_bit;
sbit LCD_D5 at PORTD5_bit;
sbit LCD_D6 at PORTD6_bit;
sbit LCD_D7 at PORTD7_bit;

sbit LCD_RS_Direction at DDD2_bit;
sbit LCD_EN_Direction at DDD3_bit;
sbit LCD_D4_Direction at DDD4_bit;
sbit LCD_D5_Direction at DDD5_bit;
sbit LCD_D6_Direction at DDD6_bit;
sbit LCD_D7_Direction at DDD7_bit;
// End LCD module connections
char txt1[] = "HELLO ";
char txt2[] = "temp =";
//char txt3[] = "=";
char txt4[] = "c";

                                      // Loop variable

void Move_Delay() {                  // Function used for text moving
  Delay_ms(500);                     // You can change the moving speed here
}
void main(){
  Lcd_Init();                        // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off    

 main:   Lcd_Out(1,4,txt1);                 // Write text in first row

  //Delay_ms(100);
   for(u=0;u<8; u++)                // Move text to the right 4 times
  {
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }
   Lcd_Cmd(_LCD_CLEAR);               // Clear display
   
 for(;;)
    {
    Lcd_Cmd(_LCD_CLEAR);               // Clear display
    Vin = adc_read(2);
    Lcd_Out(2,1,"temp = ");
    Lcd_Out(2,10,"C ");
    temp = Vin>>10;

  LongToStr(temp,op);


    j=0;
    for(i=0;i<11;i++)
         {
         if(op[i] !=' ')
         {
      lcd[j]=op[i];
            j++;
          }
          }

     Lcd_Out(2,7,lcd);    //display result on lcd
[/LEFT
]

اعلانات

الصورة الرمزية tata2
tata2
:: عضو متميز ::
تاريخ التسجيل: Jan 2007
الدولة: https://t.me/pump_upp
المشاركات: 238
نشاط [ tata2 ]
قوة السمعة:0
قديم 25-04-2011, 08:38 AM المشاركة 2   
افتراضي


اخي سامحني انا استخدم بيك
انا عملت هذه الدايرة من قبل لكن لا اذكر اني وضعت اخر
for loop
ما هي فائدتها يمكن يكون الخلل عندها

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

mshh
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2010
المشاركات: 53
نشاط [ mshh ]
قوة السمعة:0
قديم 25-04-2011, 10:11 AM المشاركة 3   
افتراضي


for(;
موجوده عشان بس تكرر الي مالانهايه مش اكتر المشكله في التحويل انت عملتها ازاي في البيك وهتبقي نفس الفكره


الصورة الرمزية tata2
tata2
:: عضو متميز ::
تاريخ التسجيل: Jan 2007
الدولة: https://t.me/pump_upp
المشاركات: 238
نشاط [ tata2 ]
قوة السمعة:0
قديم 25-04-2011, 11:45 AM المشاركة 4   
افتراضي


كود:
sbit LCd_RS at rb0_bit;
sbit lcd_en at rb1_bit;
sbit lcd_d4 at rb2_bit;
sbit lcd_d5 at rb3_bit;
sbit lcd_d6 at rb4_bit;
sbit lcd_d7 at rb5_bit;

sbit lcd_RS_direction at trisb0_bit;
sbit lcd_en_direction at trisb1_bit;
sbit lcd_d4_direction at trisb2_bit;
sbit lcd_d5_direction at trisb3_bit;
sbit lcd_d6_direction at trisb4_bit;
sbit lcd_d7_direction at trisb5_bit;

void main() {
long temp;
char text[17];
trisa=0xff;

adcon1=0x0e;
lcd_init();
lcd_cmd(_lcd_cursor_off);
while(1)
{
temp=ADC_Read(0);
temp=(temp*5000)>>10;
temp=temp/10;
longtostr(temp,text);
lcd_out(1,1,"Temp Moha =");
lcd_out(2,1,text);

lcd_chr_cp('C');
delay_ms(500);
lcd_cmd(_lcd_clear);

}

}


عمار سعيد
:: مهندس ::
تاريخ التسجيل: Aug 2011
الدولة: سوريا الحره
المشاركات: 42
نشاط [ عمار سعيد ]
قوة السمعة:0
قديم 10-08-2011, 02:38 AM المشاركة 5   
افتراضي أخي هذا كود المشروع كامل بلغة الميكرو سي


sbit LCD_RS at PORTD2_bit;
sbit LCD_EN at PORTD3_bit;
sbit LCD_D4 at PORTD4_bit;
sbit LCD_D5 at PORTD5_bit;
sbit LCD_D6 at PORTD6_bit;
sbit LCD_D7 at PORTD7_bit;
sbit LCD_RS_Direction at DDD2_bit;
sbit LCD_EN_Direction at DDD3_bit;
sbit LCD_D4_Direction at DDD4_bit;
sbit LCD_D5_Direction at DDD5_bit;
sbit LCD_D6_Direction at DDD6_bit;
sbit LCD_D7_Direction at DDD7_bit;
int temp_res;
char temp[10];
void main(){
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Loop:
temp_res=ADC_read(0);
temp_res=((temp_res*5)/10);
inttostr(temp_res,temp);
Lcd_Out(1,6,temp);
goto loop
}

انشاء الله تعمل معاك الدارة


الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 10-08-2011, 07:30 AM المشاركة 6   
افتراضي


اخي هنا سوف تجد تفاصيل التحويل بما يتعلق بهذا السنسور.
http://www.pic-tronics.com/Temperatu...-using-PIC.php

إضافة رد

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

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

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


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

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