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

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

haled
:: مهندس ::
تاريخ التسجيل: Aug 2006
المشاركات: 24
نشاط [ haled ]
قوة السمعة:0
قديم 26-03-2014, 11:02 PM المشاركة 1   
افتراضي هل يمكن المساعده باكتشاف الخطء في هذا الكود Twitter FaceBook Google+



السلام عليكم
هل يمكن المساعده باكتشاف الخطء في هذا الكود
نتيجة قراءة الذاكره بعد الكتابه هي اصفار

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;
// End LCD module connections

char message1[] = "1.READ";
char message2[] = "2.WRITE";
char message3[] = "3.Delete";
char message4[] = "WRITE COMPLETED";
char message5[] = "Read Data";
char message6[] = "Data Deleted";

char digi[] = "0000000000";
unsigned short i, NUM ;
unsigned int ADD = 0, temp; // Start EEPROM Location
unsigned long hum =9845261;
char ary[7];
char j;

void main() {
CMCON |= 7; // Disable Comparators
TRISB = 0x0F;
PORTB = 0x00;
Lcd_Init();
start:
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,message1); // Write message1 in 1st row
Lcd_Out(1,8,message2);
Lcd_Out(2,1,message3);
do {
// Read Operation
if (Button(&PORTD, 0, 1, 1)) { // Detect logical one to zero
Delay_ms(300);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,message5);
for (i=0; i<=8; i++) {
temp = 0x20+i;
NUM = EEPROM_Read(temp);
digi[i] = NUM+48;
}
Lcd_Out(2,1,digi);
delay_ms(3000);
goto start;
}
// Write Operation
if (Button(&PORTD, 1, 1, 1)) { // Write
Delay_ms(300);




for (j=0;j<8;j++){
IntToStr(hum,ary);
EEPROM_Write(0x02,ary[j]);
}
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,message4);
delay_ms(2000);
goto start;
}


// Delete Operation
if (Button(&PORTD, 2, 1, 1)) { // Detect logical one to zero
Delay_ms(300);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,message6);
for (i=0; i<=8; i++) {
temp = 0x20+i;
EEPROM_Write(temp, 0);
}
delay_ms(2000) ;
goto start;
}

} while(1);
}

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 27-03-2014, 12:41 AM المشاركة 2   
افتراضي


كود:
TRISB = 0x0F;
PORTB = 0x00;
هذه العبارات خطأ ...
جعلت بعض الاطراف كمداخل بينما هي مخارج للشاشة ...
فقط احذف العبارتين

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

حسين البغدادي
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2013
الدولة: Baghdad
المشاركات: 61
نشاط [ حسين البغدادي ]
قوة السمعة:0
قديم 27-03-2014, 11:30 AM المشاركة 3   
افتراضي


يجب ان تكون CMCON1


الصورة الرمزية هيثم العليمي
هيثم العليمي
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
الدولة: yemen
المشاركات: 236
نشاط [ هيثم العليمي ]
قوة السمعة:0
قديم 27-03-2014, 10:19 PM المشاركة 4   
افتراضي


ما هو نوع البك المستخدم

والرجاء انزال الملف كاملا الكود مع المخطط

اذا كان نوع البك pic16f628a
فلا يوجد فيه PORTD

اما اذا كان pic16f877a
بدل cmcon=7;
اكتب adcon1=7;

وباقي التعديلات كما قال اخوتي حيدر وحسين


haled
:: مهندس ::
تاريخ التسجيل: Aug 2006
المشاركات: 24
نشاط [ haled ]
قوة السمعة:0
قديم 28-03-2014, 05:37 AM المشاركة 5   
افتراضي


اخي الكريم هيثم العليمي
بارك الله بك على اهتمامك ولطفك .المكروكنترولارهو pic16f877a
لقد انحلت المشكله بفضلكم بارك الله بكم

إضافة رد

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

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

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


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

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