P
piscaroy
Guest
hihi ، أريد أن عرض البيانات المخزنة في EEprom ولكن لا اعلم كيف تأتي أنا لا يوجد خطأ.. أنا غير متأكد ما إذا كان ط رموز مكتوبة issit.. الصحيح يمكن أن تساعدني في اسرع وقت ممكن.. أنا باستخدام C18 البرمجي لpic18f452 أدناه هنا هو مصدر المدونات..
************************************************** *********
غير الموقعة ReadEEPROM شار (الحرف غير الموقعة العنوان)
(
EEADR = العنوان ؛
EECON1bits.EEPGD = 0 ؛ / / وصول إلى البيانات EEPROM
EECON1bits.CFGS = 0 ؛ / / وصول برنامج فلاش / بيانات EEprom الذاكرة
EECON1bits.RD = 1 ؛ / / تمكين اقرأ
عودة EEDATA ؛ / / هنا يتم تخزين البيانات
)
WriteEEPROM اغية (غير الموقعة تشار العنوان ، تشار بيانات غير موقعة)
(
EEADR = العنوان ؛
EEDATA = بيانات ؛
EECON1bits.EEPGD = 0 ؛
EECON1bits.CFGS = 0 ؛
EECON1bits.WREN = 1 ؛
INTCONbits.GIEH = 0 ؛ / / تعطيل المقاطعات
INTCONbits.GIEL = 0 ؛
EECON2 = 0x55 ؛
EECON2 = 0xAA ؛
EECON1bits.WR = 1 ؛
EECON1bits.WREN = 0 ؛ / / تعطيل يكتب عن الكتابة كاملة
)
/ / البرنامج للالرئيسي
باطلة الرئيسي () (
قيمة كثافة العمليات ؛
EEpromInit () ؛
LCDinit () ؛
القيمة = 0 ؛
مرة أخرى :
في حين أن ((قيمة> 0) & & (قيمة <3))
(
WriteEEPROM (EEADR ، والقيمة) ؛ قيمة ؛
)
ReadEEPROM (EEADR) ؛
اذا كان ((EEDATA = 0) & & (EEDATA = 1))putrsXLCD ( "القيمة = ٪ د" ، EEDATA) ؛ <--- خطأوالا اذا ((EEDATA> 1) & & (EEDATA <3))putrsXLCD ( "ميد القيمة = ٪ د" ، EEDATA)؛<---- خطأأيضا
putrsXLCD ( "قيمة كبيرة جدا") ؛
القيمة = 5 ؛ / / زيادة القيمة الأولية للاختبار... إذا المقبل تشغيل شاشات الكريستال السائل يجب عرض "قيمة كبيرة جدا"
غوتو مرة أخرى ؛
في حين (1) ؛
)
************************************************** ********
************************************************** *********
غير الموقعة ReadEEPROM شار (الحرف غير الموقعة العنوان)
(
EEADR = العنوان ؛
EECON1bits.EEPGD = 0 ؛ / / وصول إلى البيانات EEPROM
EECON1bits.CFGS = 0 ؛ / / وصول برنامج فلاش / بيانات EEprom الذاكرة
EECON1bits.RD = 1 ؛ / / تمكين اقرأ
عودة EEDATA ؛ / / هنا يتم تخزين البيانات
)
WriteEEPROM اغية (غير الموقعة تشار العنوان ، تشار بيانات غير موقعة)
(
EEADR = العنوان ؛
EEDATA = بيانات ؛
EECON1bits.EEPGD = 0 ؛
EECON1bits.CFGS = 0 ؛
EECON1bits.WREN = 1 ؛
INTCONbits.GIEH = 0 ؛ / / تعطيل المقاطعات
INTCONbits.GIEL = 0 ؛
EECON2 = 0x55 ؛
EECON2 = 0xAA ؛
EECON1bits.WR = 1 ؛
EECON1bits.WREN = 0 ؛ / / تعطيل يكتب عن الكتابة كاملة
)
/ / البرنامج للالرئيسي
باطلة الرئيسي () (
قيمة كثافة العمليات ؛
EEpromInit () ؛
LCDinit () ؛
القيمة = 0 ؛
مرة أخرى :
في حين أن ((قيمة> 0) & & (قيمة <3))
(
WriteEEPROM (EEADR ، والقيمة) ؛ قيمة ؛
)
ReadEEPROM (EEADR) ؛
اذا كان ((EEDATA = 0) & & (EEDATA = 1))putrsXLCD ( "القيمة = ٪ د" ، EEDATA) ؛ <--- خطأوالا اذا ((EEDATA> 1) & & (EEDATA <3))putrsXLCD ( "ميد القيمة = ٪ د" ، EEDATA)؛<---- خطأأيضا
putrsXLCD ( "قيمة كبيرة جدا") ؛
القيمة = 5 ؛ / / زيادة القيمة الأولية للاختبار... إذا المقبل تشغيل شاشات الكريستال السائل يجب عرض "قيمة كبيرة جدا"
غوتو مرة أخرى ؛
في حين (1) ؛
)
************************************************** ********