This code :
Code:
i VAR BYTE
j VAR BYTE
pulse con 560

main:

if porta.0 = 0 then  gosub volup
TRISC.0 = 1
goto main


VolUp :
Gosub Preamble
FOR I = 0 TO 17
            Lookup i,[$8C,$2A,$2A,$8C,$2A,$2A,$2A,$8C,$2A,$8C,_
                      $2A,$2A,$2A,$2A,$8C,$8C,$8C,$8C ] ,j
TRISC.0 = 0 
PauseUs j*10
TRISC.0 = 1 
PauseUs pulse  
next i
PauseUs 4500 
RETURN

Preamble :
TRISC.0 = 1
Pauseus 4000
for i = 0 to 30
          Lookup i,[$BE,$8C,$8C,$2A,$2A,$2A,$2A,$2A,$2A,_
                    $8C,$2A,$2A,$2A,$2A,$2A,$2A,$2A,$2A,_
                    $8C,$2A,$2A,$2A,$8C,$2A,$2A,$2A,$2A,$2A,$2A,_
                    $8C,$8C ] , j
TRISC.0 = 0 
PauseUs j*10
TRISC.0 = 1 
PauseUs pulse  
next i 
Return
give me, in Proteus (!), the code I need ...The next step it's hardware testing !