;=======LCD_Nokia nse1,nse3,nsm1 / Version 1.0====================21/12/02== ; cod LPH7366-1 / driver PCD8544 ; rb6,rb7 sclock,sdata ; ra0,ra1,ra2,ra3 d/C,Reset,Vccmd,SCE ; internal clock ; standard crystal 4.000 MHz XT - 1us pe instructiune/pe aproape ; Program realizat de Ing. Bergthaller Iulian-Alexandru ;------------------------------------------------------------ ; cpu init Include "Modedefs.Bas" 'needed for debug, not the PC-064PYL 'PIC16F84 compatibilty stuff, modify if comparators used CMCON = %111 'Comparator inputs to OFF VRCON.7 = %0 ' VRCON.6 = %0 'Comparator voltage reference OFF Define OSC 4 ' Set Xtal Frequency Define Shift_pauseus 1000 'slow down the shift clock count1 var byte count2 var byte count3 var byte counter var word lcd_chr var byte sclk var portb.6 sdta var portb.7 dorc var porta.0 rset var porta.1 lcd_pwr var porta.2 enab var porta.3 init: low portb 'port b to zero's low porta 'port a to zero's start: Pause 100 '100ms pause high dorc 'select data register high enab 'chip off high lcd_pwr 'turn on LCD power pause 1 gosub lcres 'reset lcd routine lcd_chr=$21 'set extended instruction set gosub lccmd lcd_chr=$B5 'sets Vop gosub lccmd lcd_chr=$13 'Sets bias mux rate to 1:48 gosub lccmd lcd_chr=$20 'Select basic instruction set gosub lccmd gosub cbild lcd_chr=$09 'all display segments on gosub lccmd pause 80 lcd_chr=$08 'display blank gosub lccmd pause 80 lcd_chr=$0C 'normal mode gosub lccmd top_left: lcd_chr=$40 'sets y address to 0,0,0 gosub lccmd lcd_chr=$80 'sets X address to 0,0,0,0,0,0 gosub lccmd disp_stuff: lcd_chr=$7F 'H gosub lcdta lcd_chr=$08 gosub lcdta lcd_chr=$08 gosub lcdta lcd_chr=$08 gosub lcdta lcd_chr=$7F gosub lcdta lcd_chr=$20 'a gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$78 gosub lcdta lcd_chr=$3c 'w gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$30 gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$3c gosub lcdta lcd_chr=$7f 'k gosub lcdta lcd_chr=$10 gosub lcdta lcd_chr=$28 gosub lcdta lcd_chr=$44 gosub lcdta lcd_chr=$00 gosub lcdta lcd_chr=$38 'e gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$18 gosub lcdta lcd_chr=$48 's gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$20 gosub lcdta lcd_chr=$0c 'y gosub lcdta lcd_chr=$50 gosub lcdta lcd_chr=$50 gosub lcdta lcd_chr=$50 gosub lcdta lcd_chr=$3C gosub lcdta lcd_chr=$00 ' ' gosub lcdta lcd_chr=$05 gosub lcdta lcd_chr=$03 gosub lcdta lcd_chr=$00 gosub lcdta lcd_chr=$00 gosub lcdta lcd_chr=$48 's gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$54 gosub lcdta lcd_chr=$20 gosub lcdta lcd_chr=$00 'space gosub lcdta lcd_chr=$00 'space gosub lcdta lcd_chr=$00 'space gosub lcdta lcd_chr=$7F 'L gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$40 gosub lcdta lcd_chr=$3E 'C gosub lcdta lcd_chr=$41 gosub lcdta lcd_chr=$41 gosub lcdta lcd_chr=$41 gosub lcdta lcd_chr=$22 gosub lcdta lcd_chr=$7F 'D gosub lcdta lcd_chr=$41 gosub lcdta lcd_chr=$41 gosub lcdta lcd_chr=$22 gosub lcdta lcd_chr=$1C gosub lcdta lcd_chr=$00 gosub lcdta lcd_chr=$60 gosub lcdta lcd_chr=$60 gosub lcdta lcd_chr=$00 gosub lcdta lcd_chr=$00 gosub lcdta goto top_left lccmd: low dorc 'select common register low enab gosub dout high enab 'Turn off chip return dout: low sclk 'Clock low shiftout sdta,sclk,1,[lcd_chr\8] 'Serially shift out 8 bits of lcd_chr LSB first return lcres: low rset 'reset lcd pause 80 high rset return cbild: lcd_chr=0 high dorc 'select data mode low enab 'Turn on chip for counter=1 to 504 step -1 'counter to clock in 8 bits by 84 columns by 6 pages =504bytes shiftout sdta,sclk,1,[lcd_chr\8] ' clock in all zero's to claer data registers next counter 'go back to and decrement x until it is zero return lcdta: high dorc 'select data register low enab 'chip on gosub dout high enab 'chip off return