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

   

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 04-07-2014, 05:52 PM المشاركة 9   
angry



السلام عليكم
مثال بسيط حول رقم 0xAA الى البيانري

الحل//
حيث 0xAA =170 طبعا لكي نحصل على رقم بالبيانري لازم نقسم على 2 لماذا لان البيانري متكون من رقمين هما 0 و1 ولهذا أحيانا يسمى بثنائي لذا نقسم على 2 ونأخذ باقي قسمه لكي نحصل على 1 او 0
0 الباقي القسمه على 2 85 =170/2
1 الباقي القسمه على 2 42 =85/2
0 الباقي القسمه على 2 21 =42/2
1 الباقي القسمه على 2 10 =21/2
0 الباقي القسمه على 2 5 =10/2
1 الباقي القسمه على 2 2 =5/2
0 الباقي القسمه على 2 1 =2/2
1 الباقي القسمه على 2 0 =1/2

اذن الرقم الباينري هو 01010101

تحياتي
وعليكم السلام ورحمة الله وبركاتة
اهلا ومرحبا بمهندسنا الغالى مهندس/حسن هادى
دائما منور المواضيع
ودائما تضع بصمة ثابتة داخل اى موضوع
كل عام وحضرتك بخير والامة الاسلامية بخير وامان ان شاء الله
و رمضــــــــــــــــــــــــــــان كريــــــــــــــــم
================
فعلا كنت احتاج الى هذا المثال
فهو يوضح الكثير ويشرح المعادلة بالتفصيل
ارجو ان تعزرو المبتدئين امثالى

================
علشان كدة البرنامج مصر على ارسال البيانات بترتيب ثابت
ولا يقبل عكس الترتيب
لانى وجدت فى الشاشة 3310 Nokia Lcd
وجدت ان البيانات تدخل بشكل معكوس

البيانات تدخل صحيحة ولكن بشكل معكوس
كمثال :
1
1
1
0
0
0
0
0
لو كانت الصورة هكذا
تظهر على الشاشة
0
0
0
0
0
1
1
1

مهما قمت بتغيير اللوب سواء + او _
بمعنى لو بدات الارسال من 0 حتى 7 او بدات الارسال من 7 حتى 0
النتيجة دائما واحدة
========================
اعتقد محتاجين دالة اولا لحفظ البيانات
ثم اعادة ارسالها بالترتيب المطلوب
لانة صعب التعديل على الصور لطول وكبر حجم الداتا ههههههههه
========================
انتظروا باقى الاسئلة والاستفسارات
كنت ناوى اضع بعض الشروحات البسيطة من طالب علم بسيط فى هذا الشهر الكريم
ولكن على مايبدوا انى سوف اقضى شهر رمضان اسئلة واستفسارات

اعلانات

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 05-07-2014, 12:15 AM المشاركة 10   
افتراضي


انا فعلا كتبتلك دالة لعكس البايت وكنت هرفعهالك بس النور قطع
ربنا يحميكى يابلدى هههههههههههه
انا دلوقتى برة اول ما اروح ان شاء الله هكتبها تانى وارفعهالك ان شاء الله
علشان انا بكتب من الموبايل دلوقتى

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

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 05-07-2014, 12:48 AM المشاركة 11   
angry


انا فعلا كتبتلك دالة لعكس البايت وكنت هرفعهالك بس النور قطع
ربنا يحميكى يابلدى هههههههههههه
انا دلوقتى برة اول ما اروح ان شاء الله هكتبها تانى وارفعهالك ان شاء الله
علشان انا بكتب من الموبايل دلوقتى
هههههههههه بركاتك ياللى فى بالى
مالناش دعوة بالسياسة هنا ياعم هههههههه
فى انتظار الكود :
انا جربت عكس اللوب من سالب لموجب لكن فى جميع الاحوال
النتيجة ثابتة
======================
عندى مشكلة جديدة
لما بعطى الشاشة delay_ms(5);
تعمل بدون مشاكل
انما اقل من كدة البرتوس بيعطى اخطاء
للعلم :
انا بستخدم كود من موقع اجنبى وعدلتة انا سايب بس الدوال الخاصة بتهيئة الشاشة .
عموما انا لسة مااستوعبتش ال 3310 لانى بدات فيها من اقل من اسبوع فقط .
وبصراحة ال GLCD برقبتها ههههههههههه
==================
الخطوة القادمة ان شاء الله كارت الميمورى mmc

.دة الكود الاساسى :
طبعا انا غيرتة بالكامل ماعدا دوال التهيئة لحد ماافهمها وبعدين انسفها

كود:
void spisend(unsigned char); void wrdata(unsigned char); void wrcmd(unsigned char); void pixelxy(unsigned char, unsigned char); void cursorxy(unsigned char, unsigned char); void clearram(void); void initlcd(void); void putchar(unsigned char); void putstr (unsigned char*); /* Modify it to fit your schematic */ #define SCK portb.f0 #define DAT portb.f1 #define DC portb.f2 #define CE portb.f3 #define RES portb.f4 /* Lookup Table for Nokia LCD */ unsigned char const FontLookup [][5] = { { 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp { 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! { 0x00, 0x07, 0x00, 0x07, 0x00 }, // " { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ { 0xc4, 0xc8, 0x10, 0x26, 0x46 }, // % { 0x36, 0x49, 0x55, 0x22, 0x50 }, // & { 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) { 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * { 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + { 0x00, 0x00, 0x50, 0x30, 0x00 }, // , { 0x10, 0x10, 0x10, 0x10, 0x10 }, // - { 0x00, 0x60, 0x60, 0x00, 0x00 }, // . { 0x20, 0x10, 0x08, 0x04, 0x02 }, // / { 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 { 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 { 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 { 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 { 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 { 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 { 0x00, 0x36, 0x36, 0x00, 0x00 }, // : { 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; { 0x08, 0x14, 0x22, 0x41, 0x00 }, // < { 0x14, 0x14, 0x14, 0x14, 0x14 }, // = { 0x00, 0x41, 0x22, 0x14, 0x08 }, // > { 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? { 0x32, 0x49, 0x59, 0x51, 0x3E }, // * { 0x7E, 0x11, 0x11, 0x11, 0x7E }, // A { 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B { 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C { 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D { 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E { 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F { 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G { 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H { 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I { 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J { 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K { 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L { 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M { 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N { 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O { 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P { 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q { 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R { 0x46, 0x49, 0x49, 0x49, 0x31 }, // S { 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T { 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U { 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V { 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W { 0x63, 0x14, 0x08, 0x14, 0x63 }, // X { 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y { 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z { 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ { 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55 { 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ] { 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ { 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ { 0x00, 0x01, 0x02, 0x04, 0x00 }, // ' { 0x20, 0x54, 0x54, 0x54, 0x78 }, // a { 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b { 0x38, 0x44, 0x44, 0x44, 0x20 }, // c { 0x38, 0x44, 0x44, 0x48, 0x7F }, // d { 0x38, 0x54, 0x54, 0x54, 0x18 }, // e { 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f { 0x0C, 0x52, 0x52, 0x52, 0x3E }, // g { 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h { 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i { 0x20, 0x40, 0x44, 0x3D, 0x00 }, // j { 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k { 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l { 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m { 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n { 0x38, 0x44, 0x44, 0x44, 0x38 }, // o { 0x7C, 0x14, 0x14, 0x14, 0x08 }, // p { 0x08, 0x14, 0x14, 0x18, 0x7C }, // q { 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r { 0x48, 0x54, 0x54, 0x54, 0x20 }, // s { 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t { 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u { 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v { 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w { 0x44, 0x28, 0x10, 0x28, 0x44 }, // x { 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y { 0x44, 0x64, 0x54, 0x4C, 0x44 } // z }; /* Send single byte on SPI Bus (software) */ /* Input Arguments: x -> Byte to send */ void spisend(unsigned char x) { unsigned char i; for(i=8;i>0;i--){ SCK = 0; if((x&0x80)){ DAT = 1; } else { DAT = 0; } SCK = 1; x <<= 1; } } /* Write Data Byte to Nokia LCD */ /* Input Arguments: x-> Data Byte to be sent */ void wrdata(unsigned char x) { DC = 1; CE = 0; spisend(x); CE = 1; } /* Write Command Byte to Nokia LCD */ /* Input Arguments: x -> Command Byte to be sent */ void wrcmd(unsigned char x) { DC = 0; CE = 0; spisend(x); CE = 1; } /* Brings ram pointer to X,Y pixel position */ /* Input Arguments: x-> X cordinate range from 0 to 83 */ /* Input Arguments: y-> Y cordinate range from 0 to 5 */ void pixelxy(unsigned char x, unsigned char y) { wrcmd(0x40|(y&0x07)); // Y axis wrcmd(0x80|(x&0x7f)); // X axis } /* Clears the screen */ void clearram(void) { int ddram; pixelxy(0,0); // Cursor Home. for (ddram=504;ddram>0;ddram--) {wrdata(0x00);} // 6*84 = 504 DDRAM addresses. } /* Nokia3310 LCD Initialization */ void initlcd(void) { RES = 1; // Set _RES HIGH. CE = 1; // Disable Chip. RES = 0; // Reset the LCD. delay_ms(240); // Wait 100ms. RES = 1; // Awake LCD from RESET state. wrcmd(0x21); // Activate Chip and H=1. wrcmd(0xC2); // Set LCD Voltage to about 7V. wrcmd(0x13); // Adjust voltage bias. wrcmd(0x20); // Horizontal addressing and H=0. wrcmd(0x09); // Activate all segments. clearram(); // Erase all pixel on the DDRAM. wrcmd(0x08); // Blank the Display. wrcmd(0x0C); // Display Normal. pixelxy(0,0); // Cursor Home. } /* Bring cursor to Line and character specified */ /* Input Arguments: row -> Line number range from 1 to 6 */ /* Input Arguments: Column -> character position range from 1 to 14 */ /* You can have maximum of 6 lines of text on LCD and each line containing 14 characters. Address is auto increment */ void cursorxy(unsigned char row, unsigned char col) { if((row>6) || (row<1) || (col<1) || (col>14)) return; pixelxy(((col-1)*6),(row-1)); } /* Writes single character on LCD */ /* Input Arguments: ch -> Character to be displayed */ void putchar(unsigned char ch) { unsigned char i, temp; if ( (ch < 0x20) || (ch > 0x7b) ){ ch = 92; } for(i=0;i<5;i++){ temp = FontLookup[ch - 32][i] << 1; wrdata(temp); } wrdata(0x00); } /* Writes character string on LCD */ /* Input Arguments: str -> Pointer to string to be displayed */ void putstr (unsigned char *str) { while(*str) putchar(*str++); } /* Main code by Ronald Arthur Accra - Ghana (c) 2010 */ void main() { cmcon = 0x07; //convert all comparators to digital pins trisa = 0xff; //set porta as input trisb = 0x00; //set portb as output initlcd(); while(1) { while(porta.f0==1) { cursorxy(1,1); putstr("FUSE 1 IS OK"); } clearram(); while(porta.f0==0) { cursorxy(1,1); putstr("FUSE 1 ALERT"); clearram(); delay_ms(1000); cursorxy(1,1); putstr("FUSE 1 ALERT"); delay_ms(1000); } clearram(); } }


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 05-07-2014 الساعة 12:52 AM

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 05-07-2014, 02:39 AM المشاركة 12   
افتراضي


السلام عليكم ورحمة الله وبركاتة
تم ضغط الكود السابق حتى اصبح فى حجم (كبسولة ) ههههههه


حتى مصفوفة الصورة تم تضمينها داخل ملف من نوع h وتم وضع انكلودز لها داخل البرنامج (تضمين )
واحببت ان اضع الكود بعد التعديل للفائدة


كود:
#define SCK portb.f0 #define DAT portb.f1 #define DC portb.f2 #define CE portb.f3 #define RES portb.f4 #include "nn.h" ////تضميين ملف الصورة //////// void senddata ( unsigned int data1){ int i; //unsigned char data2[8]; for(i=0;i<8;i++){ DC=1; CE = 0; SCK = 0; data2[i]=data1%2; DAT=~data2[i]; SCK = 1; CE = 1; DC=0; delay_ms(2); data1=data1/2; } } int n; void main() { cmcon = 0x07; //convert all comparators to digital pins trisb = 0x00; //set portb as output RES = 1; // Set _RES HIGH. CE = 1; // Disable Chip. RES = 0; // Reset the LCD. RES = 1; // Awake LCD from RESET state. while(1) { for (n=0;n<=504; n++) { senddata(mmm[n]); } } }

المشكلة الان
هو انتظار الكود من مهندس /محمد
والمشكلة الاخرى هى ال delay اذا كان اقل من 2 ms البرتوس يعطى خطا
اما ابتداء من 2 فمافوق يعمل البرنامج بدون اخطاء


ملاحظة : البك المستخدم هو pic16f877A


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 05-07-2014 الساعة 02:46 AM

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 05-07-2014, 08:07 PM المشاركة 13   
افتراضي


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

كود:
sbit datapin at PORTD.b0;
sbit pluspin at PORTD.b1;

unsigned conv(char bytes){
char i,bits,dat=0;
for(i=0;i<8;i++){
bits=bytes%2;
dat <<= 1;
if(bits==1){dat += 1;}
bytes/=2;     }
return dat;
               }

void senddata ( unsigned int datas){
char i,data1,data2;
            data1=conv(datas);
            for(i=0;i<8;i++){
                data2=data1%2;
                datapin=data2;
                pluspin=1;pluspin=0;
                data1=data1/2;
                              }
                               }
دول الدالتين دالة للتحويلو الكتابة ودى انت عارفها ودالة تانية لعكس البايت ان شاء الله كدة تشتغل تمام الى هى conv
ومعلش لو مش مختصر الكود اكثر من كدة

وبالنسبة لجزئية ال ديلاى دى
فدة منقدرش نبت فية غير لما نشوف البروتكول الى بتتعامل بية الشاشة
علشان نفهم المشكلة فى اية

وعموما الشاشة دى هى عبارة عن شاشة GLCD
زى زى غيرها

بالتوفيق يا هندسة وجرب وعرفنى ان شاء الله هتشتغل معاك تمام


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 06-07-2014, 05:49 PM المشاركة 14   
افتراضي


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

كود:
sbit datapin at PORTD.b0;
sbit pluspin at PORTD.b1;

unsigned conv(char bytes){
char i,bits,dat=0;
for(i=0;i<8;i++){
bits=bytes%2;
dat <<= 1;
if(bits==1){dat += 1;}
bytes/=2;     }
return dat;
               }

void senddata ( unsigned int datas){
char i,data1,data2;
            data1=conv(datas);
            for(i=0;i<8;i++){
                data2=data1%2;
                datapin=data2;
                pluspin=1;pluspin=0;
                data1=data1/2;
                              }
                               }
دول الدالتين دالة للتحويلو الكتابة ودى انت عارفها ودالة تانية لعكس البايت ان شاء الله كدة تشتغل تمام الى هى conv
ومعلش لو مش مختصر الكود اكثر من كدة

وبالنسبة لجزئية ال ديلاى دى
فدة منقدرش نبت فية غير لما نشوف البروتكول الى بتتعامل بية الشاشة
علشان نفهم المشكلة فى اية

وعموما الشاشة دى هى عبارة عن شاشة GLCD
زى زى غيرها

بالتوفيق يا هندسة وجرب وعرفنى ان شاء الله هتشتغل معاك تمام
السلام عليكم ورحمة الله وبركاتة
مشكلتك يابشمهندس محمد احمد
انك مش عايز تقتنع انى مجرد هااااااااااااااااااوى

ياباشا واحدة واحدة علينا
انا ماصدقت افهم شوية موضوع الدالة تحول البتاع لبتاع تانى
وانا كدة اتلخبطت اكترررررررررررر
انت كاتب دالتين
وانا شايف تشابة بينهم هل واحدة منهم تكفى للغرض بالكامل
((اقصد الدالة الاولى ؟؟؟)))
ولا لازم الاتنين (معبعضيهم)
معلش اتعب نفسك ((وكمل جميلك )) وعدل الكود اللى انا كاتبة فى المشاركة السابقة .
انت عارف دماغى مليانة بلاستك وهدروليك وشواكيش .
يالا ياباشا عدل الكود ورمضان كريم


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 06-07-2014, 06:00 PM المشاركة 15   
angry


على فكرة
موضوع مشكلة ال delay اتضح انها من اعدادات الميكروكونترول فى الميكروسى
انا جربت على ميكروسى العادى لانى بقدر اتحكم فى اعدادات البك اكثر من الميكرو برو
والمشكلة اختفت والديلاى يقبل اى رقم صغير او كبير

=========================
واليك هذة البشرررررى
من السهل جدا محاكاة الشاشةنوكيا 3310 بالماتركس
وقمت بعمل تجربة بسيطة ونجحت
ولكن بهذا الشكل تحتاج الى عدد بسيط جدا من مسجلات الازاحة 595
رقم بسيط جدا
ايوة رقم بسيط جدا جدا


.




504 مسجل ازاحة ههههههههه
خللى بالك مش خطا كتابة هو فعلا 504 مسجل ازاحة
================
الموضوع محتاااااج محايلااااااااااااااااااات علشان ضغط الرقم المهول دة


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 06-07-2014, 07:21 PM المشاركة 16   
افتراضي


ههههههههههههههههههه من عنيى يا هندسة

اتفضل الكود كامل بعد التعديل

كود:
#define SCK portb.f0
#define DAT portb.f1
#define DC portb.f2
#define CE portb.f3
#define RES portb.f4
#include "nn.h"
////&#202;&#214;&#227;&#237;&#237;&#228; &#227;&#225;&#221; &#199;&#225;&#213;&#230;&#209;&#201; ////////

unsigned conv(char bytes){
char i,bits,db;
for(i=0;i<8;i++){
bits=bytes%2;
db <<= 1;
if(bits==1){db += 1;}
bytes/=2;     }
return db;
               }

void senddata ( unsigned int datas){
int i;
//unsigned
char data1,data2;
data1=conv(datas);
 for(i=0;i<8;i++){
    DC=1;
    CE = 0;
     SCK = 0;
     data2=data1%2;
     DAT=data2;
     SCK = 1;
     CE = 1;
     DC=0;
    delay_ms(2);
   data1=data1/2;
  }   }

int n;
void main()
{
  cmcon = 0x07;      //convert all comparators to digital pins
  trisb = 0x00;    //set portb as output
  RES = 1;        // Set _RES HIGH.
   CE = 1;        // Disable Chip.
   RES = 0;      // Reset the LCD.
   RES = 1;      // Awake LCD from RESET state.
  while(1)
  {
  for (n=0;n<=504; n++)
  {
    senddata(mmm[n]);

    }  } }
الدالة الاولى يا هندسة بتحول البايت بتعكسة يعنى
انما الدالة الثانية فهى بتخرجة على اطراف البيك وبتجزءة تانى


والحمد لله ان التجربة نجحت معاك يا هندسة
بس حتة 504 مسجل ازاحة دى كثيررررررررر واى
لازم يكون التفكير بش اقوى شوية بحيث يختصر العدد دة كلة لانة كثير جدا جدا جدا

جرب الكود دة بس وعرفنى وان شاء الله هيشتغل معاك تمام
وبعدين نبقى نشوف موضوع الالمسجلات دة
ولونى مش شايف فكرة تقليد الشاشة على شكل ماتريكس فكرة كويسة



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