Bueno tarde pero seguro, les dejo el diagrama los leds tienen que ir de arriba hacia abajo en el orden como esta en el diagrama. Se tiene que generar un proyecto para compilar en ccs la dirección de este se tiene que cambiar en la siguiente linea del código de visual basic
archivo = intru.CreateTextFile("C:\Users\Gabriel\Documents\Proyectos 2012\leds\software\firmware\imagen.c", True)
El código generado por la aplicación de visual basic es:
//*****************************************************************************
//*****************************************************************************
//***************** Firmware barrido leds ***********************
//***************** Dispositivo PIC16F887 ***********************
//***************** MKPRO ***********************
//***************** Version 1.1 ***********************
//*****************************************************************************
//*****************************************************************************
#include <16f887.h>
#include <stdio.h>
#FUSES NOWDT,intrc_io,NOPUT,NOPROTECT//***********fuses requeridos*************
#use delay(clock=8000000)//******************clock con 8MHz*******************
#byte trisa=0x85
#byte trisb=0x86
#byte trisc=0x87
#byte trisd=0x88
#byte porta=0x05
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
#byte porte=0x09
#byte trise=0x89
void main(){
int puerto_a[80],puerto_b[80],puerto_c[80],puerto_d[80];
int x,a;
int lineas=20, perspectiva=20;
trisa=0;
trisb=0;
trisc=0;
trisd=0;
trise=0b00000101;
porta=0;
porte=0;
portb=0;
puerto_c[0]=0b00000000;
puerto_d[0]=0b00000000;
puerto_b[0]=0b00000000;
puerto_a[0]=0b00000000;
puerto_c[1]=0b00000000;
puerto_d[1]=0b00000000;
puerto_b[1]=0b00000000;
puerto_a[1]=0b00000000;
puerto_c[2]=0b00000000;
puerto_d[2]=0b00000000;
puerto_b[2]=0b00000110;
puerto_a[2]=0b00000000;
puerto_c[3]=0b10000000;
puerto_d[3]=0b00001111;
puerto_b[3]=0b01110000;
puerto_a[3]=0b00000000;
puerto_c[4]=0b11000000;
puerto_d[4]=0b00011111;
puerto_b[4]=0b10000000;
puerto_a[4]=0b00000001;
puerto_c[5]=0b11100000;
puerto_d[5]=0b00111111;
puerto_b[5]=0b00000000;
puerto_a[5]=0b00000011;
puerto_c[6]=0b11100000;
puerto_d[6]=0b00111111;
puerto_b[6]=0b00000000;
puerto_a[6]=0b00000110;
puerto_c[7]=0b11000000;
puerto_d[7]=0b00011111;
puerto_b[7]=0b00000000;
puerto_a[7]=0b00001100;
puerto_c[8]=0b00000000;
puerto_d[8]=0b00000000;
puerto_b[8]=0b00000000;
puerto_a[8]=0b00001100;
puerto_c[9]=0b00000000;
puerto_d[9]=0b00000000;
puerto_b[9]=0b00000000;
puerto_a[9]=0b00001100;
puerto_c[10]=0b00000000;
puerto_d[10]=0b00000000;
puerto_b[10]=0b00000000;
puerto_a[10]=0b00001100;
puerto_c[11]=0b10000000;
puerto_d[11]=0b00000111;
puerto_b[11]=0b00000000;
puerto_a[11]=0b00001100;
puerto_c[12]=0b11000000;
puerto_d[12]=0b00011111;
puerto_b[12]=0b00000000;
puerto_a[12]=0b00000100;
puerto_c[13]=0b11100000;
puerto_d[13]=0b00111111;
puerto_b[13]=0b00000000;
puerto_a[13]=0b00000110;
puerto_c[14]=0b11100000;
puerto_d[14]=0b00111111;
puerto_b[14]=0b00000000;
puerto_a[14]=0b00000011;
puerto_c[15]=0b11000000;
puerto_d[15]=0b00011111;
puerto_b[15]=0b10000000;
puerto_a[15]=0b00000001;
puerto_c[16]=0b00000000;
puerto_d[16]=0b00000000;
puerto_b[16]=0b01111000;
puerto_a[16]=0b00000000;
puerto_c[17]=0b00000000;
puerto_d[17]=0b00000000;
puerto_b[17]=0b00000000;
puerto_a[17]=0b00000000;
puerto_c[18]=0b00000000;
puerto_d[18]=0b00000000;
puerto_b[18]=0b00000000;
puerto_a[18]=0b00000000;
puerto_c[19]=0b00000000;
puerto_d[19]=0b00000000;
puerto_b[19]=0b00000000;
puerto_a[19]=0b00000000;
while(1){
for(x=1;x<lineas-1;x++){
porta=puerto_a[x];
portb=puerto_b[x];
portd=puerto_d[x];
portc=puerto_c[x];
delay_us(625);
}
porta=0;
portb=0;
portc=0;
portd=0;
delay_ms(2);}}
Espero le sirva a alguien.