di2519.txt ;************************************************************************************************* ; LISTING 1 - SAMPLE DATA DISPLAY; 8051 CODE FOR DATA DISPLAY ON LCD ; ; PROGRAM LISTING FOR SAMPLE DATA DISPLAY ON LCD SCREEN. ; ALPHANUMERIC LCD MODULE 1 LINE x 16 CHARACTERS TYPE ; WRITTEN BY : BHARAT D. METHA ; ; "Interface LCD with ease," EDN, April 27, 2000, pg 142 ; http://www.ednmag.com/ednmag/reg/2000/042700/designideas.htm#09di6 ;********************************************************************************************** temp1: reg 20h Dat: reg P1.0 Clk: reg P1.1 RS: reg P1.2 ENA: reg P1.3 ;;;;;;;;;;;;;;;; Main progarm ;;;;;;;;;;;;;; org 0000h jmp start org 30h start: call INT mov dptr,#title mov r0,#10h ;counter for data transfer loop1: clr a movc a,@a+dptr mov temp1,a djnz r0,loop2 call dly jmp start loop2: call sr_tx setb RS ;This part transfer data to LCD. setb ENA call delay ;small delay clr ENA clr RS inc dptr jmp loop1 title: db "Hello,EDN Reader" ;;;;;;;;;;;;;;;;; Main program End ;;;;;;;;;;; ;------ Sub-Routine programs -------- ;;; initialization of LCD screen. INT: mov sp,#60h clr RS clr ENA mov temp1,#38h call disp2 mov temp1,#01h call disp2 mov temp1,#02h call disp2 mov temp1,#06h call disp2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;; disp2: call sr_tx setb ENA mov r3,#0ffh djnz r3,$ clr ENA ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; program to transfer data serially from I/O sr_tx: mov r1,#08h ;counter s1: mov a,temp1 clr c rlc a mov temp1,a mov Dat,c setb Clk nop nop clr Clk djnz r1,s1 ret ;;;;;;;; Delay Sub-Routine ;;;;;;;;;;;;;;; ; this delay program is a flexible loop , any time delay can ; be adjusted by changing the value of registers dly: mov r5,#0fh d1: acall mdly djnz r5,#d1 ret mdly: mov r6,#0ffh mdly1: call delay djnz r6,mdly1 ret delay: mov r7,#0ffh djnz r7,$ ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; end