Hola, antes que nada, gracias por el ejemplo, ya que se puede usar como base y o libreria para otros proyectos... Anoche me puse largo y tendido entender el programa y ver el error...
Tengo en mente hacer una mini fuente de poder (tipo variable por medio de PWM en segundo plano) y emplear el display para ver tension y corriente... ya tengo algo a medio camino, ahora me falta hacer el filtro y ver como hago el calculo para que segun la lectura de una entrada analoica, me genere una salida de 0 a 5Vcc...

Name:  NOKV10_1.JPG
Views: 3531
Size:  50.9 KB

Bueno, para no irme del tema. para modificar tu programa y que funcione, configura 1ero los puertos de esta manera:

D_C var PORTB.0
RST VAR PORTB.1
SCK var PORTB.2
SDIN var PORTB.3
SCE VAR PORTB.4

luego, en la seccion de control del display nokia3310, coloca esta seccion (corregi reset y sce):

Code:
InicializaLCD:      
    D_C=1          ' Seleccionamos el registro de datos en RAM
    SCE=1         ' Anulamos la seleccion del chip
    pause 100         ' Hacemos una pausa de 100 ms
    gosub Reset_LCD   ' Reseteamos el LCD 
    return
               
Reset_LCD:
    RST=0   ' Damos un pulso de reset durante 100 ms  
    pause 100
    RST=1
    SCE=0
    RETURN
    
CursorHome:     
                  SCK = 1
                LcdReg  =  %10000000            ' cursor Home
                call    PrintCtrlLcd
                LcdReg  =  %01000000            ' cursor Home
                call    PrintCtrlLcd
                return

PrintChar:      
               offset = Char * 5          
            
                for a = 1 to 5                
                    read offset, LcdReg
                    call  PrintDataLcd
                    offset = offset + 1
                next a
                LcdReg = 0
                call    PrintDataLcd
                return
                                    
PrintCtrlLcd:   D_C = 0                            

PrintDataLcd:   
                   
                    for x = 1 to 8                
                    SDIN = LcdReg.7              
                    SCK = 1
                    LcdReg = LcdReg << 1
                    SCK = 0
                next x               
                D_C = 1
                
                return               
                
LCD_Clear:
                PosX=0:PosY=0:Gosub LCD_GotoXY
                D_C = 1
                FOR Chr=1 TO 252
                    LcdData=0:Gosub LCD_ByteOut
                    LcdData=0:Gosub LCD_ByteOut
                next Chr
                return

LCD_GotoXY:
                D_C = 0
                LcdData=%01000000 | PosY :Gosub LCD_ByteOut
                LcdData=%10000000 | PosX :Gosub LCD_ByteOut
                return

LCD_ByteOut:

                SHIFTOUT SDIN,SCK,1,[LcdData]
                
                return  

Border_line:
'~~~~~~~~~~~~~~~~~  RAND 0
                LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000000            ' cursor  Y
                call    PrintCtrlLcd
        
    for y = 0 to 83                   			         				          
    LOokup y, [$FF,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_         ' UP-side "DIGITAL"
               $01,$01,$01,$F9,$F9,$F9,$09,$09,$F9,$F9,$F1,$01,_
               $01,$F9,$F9,$F9,$01,$01,$F1,$F9,$F9,$09,$09,$19,_
               $19,$11,$01,$01,$F9,$F9,$F9,$01,$09,$09,$09,$F9,$F9,$F9,_        
               $09,$09,$09,$01,$F1,$F9,$F9,$09,$09,$F9,$F9,$F1,$01,$01,_
	         $F9,$F9,$F9,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_
	         $01,$01,$01,$01,$01,$FF] ,LcdReg       
               call    PrintDataLcd
    next y
'~~~~~~~~~~~~~~~~~  RAND 1                                
                LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000001            ' cursor  Y
                call    PrintCtrlLcd
    
    for y = 0 to 83                          				                   
    LOokup y, [$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_         ' DOWN-side "DIGITAL"
               $00,$00,$00,$1F,$1F,$1F,$10,$10,$1F,$1F,$0F,$00,$00,_
               $1F,$1F,$1F,$00,$00,$0F,$1F,$1F,$10,$11,$1F,$1F,_                      
               $0F,$00,$00,$1F,$1F,$1F,$00,$00,$00,$00,$1F,$1F,$1F,$00,_
	         $00,$00,$00,$1F,$1F,$1F,$01,$01,$1F,$1F,$1F,$00,$00,$1F,$1F,_
	         $1F,$10,$10,$10,$10,$00,$00,$00,$00,$00,$00,$00,_
	         $00,$00,$00,$00,$00,$FF] ,LcdReg                                          
               call    PrintDataLcd
    next y 

'===================================  RAND 2
                LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000010            ' cursor  Y
                call    PrintCtrlLcd  
                 
    LOokup 0, [$FF] , LcdReg 
                call    PrintDataLcd
               
                LcdReg  =  %10000000 + 83       ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000010            ' cursor  Y
                call    PrintCtrlLcd              
               
    LOokup 0, [$FF] , LcdReg 
                call    PrintDataLcd
'===================================  RAND 3
                LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000011            ' cursor  Y
                call    PrintCtrlLcd
              
    LOokup 0, [$FF] , LcdReg 
                call    PrintDataLcd
                       
                LcdReg  =  %10000000 + 48       ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000011            ' cursor  Y              
               for y = 0 to 35                   
   LOokup y, [$18,$38,$60,$60,$38,$18,_								' "VOLT"
              $00,$30,$78,$48,$78,$30,_
            $00,$78,$78,$40,$40,_
          $00,$08,$08,$78,$78,$08,$08,$00,_
            $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF] ,LcdReg
           
                call    PrintDataLcd
                next y 
'===================================  RAND 4
                 
                LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000100            ' cursor  Y
                call    PrintCtrlLcd

    LOokup 0, [$FF] , LcdReg 
                call    PrintDataLcd
               
                LcdReg  =  %10000000 + 83       ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000100            ' cursor  Y
                call    PrintCtrlLcd
    LOokup 0, [$FF] , LcdReg 
                call    PrintDataLcd
'===================================  JOS                
		    LcdReg  =  %10000000            ' cursor  X  
                call    PrintCtrlLcd
                LcdReg  =  %01000101            ' cursor  Y
                call    PrintCtrlLcd
                for y = 0 to 83                   
    LOokup y, [$FF,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_             
	         $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_          
	         $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_          
	         $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_          
	         $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_          
		   $80,$80,$80,$80,$80,$80,$80,$80,$FF] ,LcdReg
                call    PrintDataLcd
                next y 

Return
'=======================================================================

End             'of program