ROMIO1985 ملازم أول
عدد الرسائل : 104 تاريخ التسجيل : 15/10/2008
| موضوع: LCD Program الجمعة 14 نوفمبر 2008 - 4:52 | |
| السلام عليكم اخواني الاعزاء هل هذا البرنامج صحيح للتحكم بشاشة LCD عن طريق المتحكم PIC16F877A وهذا هو البرنامج كود: list p=16f877a #include <p16f877a.inc>
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_ON & _PWRTE_ON&_HS_OSC&_LVP_OFF& _DEBUG_OFF & _CPD_OFF ;'__CONFIG'directive is used to embed configuration data within .asm file. ;the labels following the directive are located in the respective .inc file. ;see respective data sheet for additional information on configuration word. ;******************************************************************************* ORG 0X000 ; RESET ADDRESS GOTO RESETFUN ORG 0X007 RESETFUN BSF STATUS,RP0 ; NOW IN BLANK 1 BCF STATUS, RP1 BSF PCON, 0 BSF PCON, 1 GOTO START ORG 0X020 START BCF STATUS, RP0 ;BANK 0 CLRF PORTB ; PORTB USED AS DATA PINS CLRF PORTE ; PORTE AS A CONTROL PINS BSF STATUS, RP0 ;BLANK 1 MOVLW 0X00 MOVWF TRISB ;INITIALIZTION PORTB AND PORTE AS MOVWF TRISE ;OUTPUT PINS MOVLW 0X86 MOVWF ADCON1 NOP BCF STATUS, RP0 ;BANK 0 MOVLW 0XFF MOVWF PORTB MOVLW 0XDC CALL LCDDELAY ;POWER UP DELAY FOR 67 mSEC MOVLW 0X3F MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 ;50 mSEC DELAYS BETWEEN EACH ENABLE CALL LCDDELAY NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY NOP MOVLW 0X3B ; FUNCTION SET MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X0C ; DISPLAY ON/OFF MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X01 ;DISPLAY CLEAR MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X06 ;ENTRY MODE SET MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X01 MOVWF PORTB ; DISPLAY CLEAR NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X80 ;SET DDRAM ADDRESS AS 0X00H MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY ; STARTING WRITTEN DATA FROM HERE BSF PORTE,0 MOVLW 0X07 CALL LCDDELAY MOVLW 0X49 ;I MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X49 ;I MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X54 ;T MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY MOVLW 0X4B ;K MOVWF PORTB NOP CALL LCDENABLE MOVLW 0XA3 CALL LCDDELAY OVER GOTO OVER ; INFINITE LOOP LCDENABLE BSF PORTE,2 NOP NOP BCF PORTE,2 MOVLW 0X07 CALL LCDDELAY RETURN LCDDELAY MOVWF 0X025 NEST1 MOVLW 0XFF MOVWF 0X027 NEST2 DECFSZ 0X027
GOTO NEST2 END
اللهم لك الحمد كما ينبغي لجلال وجهك ولعظيم سلطانك | |
|
metwally.mustafa فريق أول
عدد الرسائل : 4226 العمر : 38 الموقع : Egypt العمل/الترفيه : automation engineer تاريخ التسجيل : 12/01/2009
| موضوع: رد: LCD Program الجمعة 20 مارس 2009 - 10:47 | |
| انا لا اعلم لغه الassembly وارجو من الاخوه الاعضاء من لديه المعلومات الكافيه عن هذه اللغه ان يقوم بعمل دوره على المنتدى وله جزيل الشكر | |
|
Bakri hafez عريف
عدد الرسائل : 13 تاريخ التسجيل : 20/08/2009
| موضوع: رد: LCD Program السبت 14 أغسطس 2010 - 11:53 | |
| | |
|
fathiidriss رقيب
عدد الرسائل : 22 العمر : 54 تاريخ التسجيل : 26/06/2010
| موضوع: رد: LCD Program الأربعاء 22 سبتمبر 2010 - 18:30 | |
| اعتقد ان البرنامج ناقص كما يبدو في اخر السطور عند استدعاء LCDDELAY فبعد تنفيذ التاخير يقفذ الي النهاية مباشرة كان من المستحسن ان تضع الامر return فيصبح كالاتي NEST2 DECFSZ 0X027 GOTO NEST2 RETURN END
| |
|