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

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-09-2016, 08:59 AM المشاركة 1   
x5 مشروع تطبيقى : عداد لفات المواتير باستخدام AVR Twitter FaceBook Google+



بسم الله الرحمن الرحيم

السلام عليم و رحمة الله و بركاته

اخوتى الاعزاء ان شاء الله اقدم لكم محاولة لمشروع عداد مواتير و التحكم في تشغيل و ايقاف موتور اللف , و هذه النسخة الاولى و قابلة للتعديل او التطوير لاى اقتراح عليها .

باستخدام ميكروسي AVR :
كود:

/* PROJECT : TRANSFORMER TURNS COUNTER AND CONTROLLER . MCU: AVR ATMEGA 8 OR ELSE . CRYSTAL : INTERNAL ANY VALUE . INPUT PIN : INPUT PIN FROM COUNTER is ( INT1 ). MOTOR PIN : PORTC PIN 0. BUZZER PIN : PORTC PIN 1. KEYPAD : 4X3 . DISPLAY : LCD 16X2. start motor : press ( # ). delete entered number : press ( * ) VERSION : V1.0 . DATE : 2016. */ #define STARTMOTOR (PORTC=1) #define STARTBUZZER (PORTC=2) sbit LCD_RS at PORTD1_bit; sbit LCD_EN at PORTD2_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 DDD1_bit; sbit LCD_EN_Direction at DDD2_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 keypadPort at PORTB; char keypadPort_Direction at DDRB; // End Keypad module connections char kp; unsigned int counter=0 , maxTurns=0; void interruptcounter()iv IVT_ADDR_INT1 { counter++ ; GIFR |= 1<< INTF1; } void startCount(){ SREG_I_BIT=1; GICR |= 1<<INT1; MCUCR |= 0X08;// external counter T1 on falling edge } void firstScreen(){ lcd_out(1,1," HELLOW"); lcd_out(2,1,"TRANSF. COUNTER"); delay_ms(1000); lcd_cmd(_lcd_clear); lcd_out(1,1,"MAX 65000 TURNS"); delay_ms(1000); lcd_cmd(_lcd_clear); lcd_out(1,1,"NUMBER :0 "); lcd_out(2,1,"OK= # | NO=*"); } void displayCounter(){ lcd_cmd(_lcd_clear); lcd_out(1,1," TURNS:"); delay_ms(1000); } void displayValue(char row, char column, int value ){ lcd_chr( row,column,(value/10000+48 )); lcd_chr( row,column+1,((value%10000)/1000 + 48)); lcd_chr( row,column+2,(((value%10000)%1000)/100 + 48)); lcd_chr( row,column+3,((((value%10000)%1000)%100)/10 + 48)); lcd_chr( row,column+4,((((value%10000)%1000)%100)%10 + 48)); } void main() { DDRC = 0XFF; lcd_init(); Keypad_init(); firstScreen(); while(1){ do{ kp=0; kp = Keypad_Key_click(); } while(!kp) ; switch (kp) { case 1: kp = 49; break; // 1 // Uncomment this block for keypad4x4 case 2: kp = 50; break; // 2 case 3: kp = 51; break; // 3 // case 4: kp = 65; break; // A case 5: kp = 52; break; // 4 case 6: kp = 53; break; // 5 case 7: kp = 54; break; // 6 // case 8: kp = 66; break; // B case 9: kp = 55; break; // 7 case 10: kp = 56; break; // 8 case 11: kp = 57; break; // 9 // case 12: kp = 67; break; // C case 13: kp = 42; break; // * case 14: kp = 48; break; // 0 case 15: kp = 35; break; // # // case 16: kp = 68; break; // D } if(kp==42){ maxTurns = 0; // '*' lcd_out(1,9,"0 "); } else if(kp==35){displayCounter(); // '#' startCount(); STARTMOTOR; while(1) { displayValue(1,11,counter); if(counter == maxTurns){ STARTBUZZER ; } } } else { maxTurns = maxTurns * 10 + (kp-48); displayValue(1,9,maxTurns); } } }
ارجو من الله ان ينفع بنا .

و على الله قصد السبيل .

الله ولى التوفيق


اللهم اجعلنا مؤمنين حقا
و علمنا ما ينفعنا و ينفع بنا
اللهم اكتب لنا الحج و العمرة و اهلنا



احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )
اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 22-09-2016, 01:24 AM المشاركة 2   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


السلام عليكم ورحمة الله

هل نفس مكتبه الميكرو سى تعمل عل متحكم AVR أم يوجد اختلاف فى صيغة كتابه الكود كما لاحظت فى كود تعريف الشاشة يوجد اختلاف بسيط .. عن الكود الموجود داخل مكتبة ميكرو سى ..

أم يوجد مترجم ميكرو سى خاص بال AVR

وشكرااا جزيلا على تقديم المشروع للعامة ..

تحياتى و بالتوفيق ..

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 22-09-2016, 08:04 AM المشاركة 3   
sun


بسم الله الرحمن الرحيم

السلام عليم و رحمة الله و بركاته

السلام عليكم ورحمة الله
هل نفس مكتبه الميكرو سى تعمل عل متحكم AVR أم يوجد اختلاف فى صيغة كتابه الكود كما لاحظت فى كود تعريف الشاشة يوجد اختلاف بسيط .. عن الكود الموجود داخل مكتبة ميكرو سى ..

أم يوجد مترجم ميكرو سى خاص بال AVR

وشكرااا جزيلا على تقديم المشروع للعامة ..

تحياتى و بالتوفيق ..
اخى العزيز تقبل الله منا جميعا , و لكل نوعية ميكرو مترجم خاص بها مثل ARM - AVR - 8051- PIC

http://www.mikroe.com/mikroc/

الله ولى التوفيق


اللهم اجعلنا مؤمنين حقا
و علمنا ما ينفعنا و ينفع بنا
اللهم اكتب لنا الحج و العمرة و اهلنا



احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )
إضافة رد

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

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

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


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

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