Bueno compa la verda que es lo que neceita tengo un programa de un amigo mio de una tesis de grado ( tocaria preguntarle a el si se le puede clonar su sistema ) o crear uno nuevo tiene que decirma que tiene que hacer y usted que tiene o sabe !!!
ferchoorias@hotmail.com;Programa de ejemplo para GP32
;
;Control de la velocidad y sentido de giro de un motor de DC con
;un PWM.
;Salida a un LCD
;
;Por Freddy Corredor A.
$include "gpgtregs.inc"
FLASHSTART EQU $8000
BAND EQU $40
CILH EQU $41
CILL EQU $43
ALTAMAR EQU $44
LETRA EQU $45
INICIOLCD EQU $46
CU1 EQU $63 ;DATO ALTO DEL CICLO UTIL
CU2 EQU $64
SENG EQU $65 ;SENTIDO DE GIRO
FLECHA EQU $66 ;FLECHA QUE INDICA EL SENTIDO DE GIRO
DIRE EQU $67 ;DIRECCION DEL SENTIDO DE GIRO I=Izquieda D=...
ORG FLASHSTART
START:
LDHX #$0240
TXS
CLRA
BSET 0,CONFIG1
MOV #$F0,DDRA ;SALIDA 1, ENTRADA 0
MOV #$FF,DDRB ;SALIDA PARA EL LCD
MOV #$07,DDRC ;SALIDA PARA CONTROL DEL LCD
MOV #$FF,DDRD
CLR PTA
CLR PTB
CLR PTC
CLR PTD
CLR INICIOLCD
CLR ALTAMAR
MOV #$30,CU1
MOV #$31,CU2
MOV #$20,SENG
MOV #$20,FLECHA
LDA PTA
CLR CILH
MOV #2T,CILL
MOV #0T,CILH
MOV #0T,0042
INIT_KBI:
BSET 1,INTKBSCR
MOV #$0F,INTKBIER
BSET 2,INTKBSCR
BCLR 0,INTKBSCR
BCLR 1,INTKBSCR
CLI
INIT_PWM:
BSET 5,T1SC
BSET 4,T1SC
LDHX #16666T
STHX T1MODH
LDHX CILH
STHX T1CH0H ;LO CARGA AL CANAL O
MOV #$2A,T1SC0
BCLR 5,T1SC
CLI
INICIO:
LDA INICIOLCD
CBEQA #$00,SETUP_LCD
CBEQA #$0F,IMPRESORA1
BRA INICIO
IMPRESORA1:
JMP IMPRESORA
;--------------- VISUALIZACION --------------
SETUP_LCD:
JSR RETARDOB
JSR RETARDOB
JSR RETARDOB
MOV #$00,PTC
MOV #%00111000,PTB ; 8bits - 2 Lineas - 5*10 dots
JSR ENABLE_COD
MOV #%00001100,PTB ; LCD=1 Parpadea CURSOR=1 PARPADEO=1
; 00001 D U B
JSR ENABLE_COD
MOV #$01,PTB ; BORRA LCD
JSR ENABLE_COD
MOV #$80,PTB ; CURSOR A 00
JSR ENABLE_COD
MOV #$02,PTB ; CURSOR A HOME
JSR ENABLE_COD
MOV #$0F,INICIOLCD
JMP INICIO
PONER_LETRA:
MOV LETRA,PTB
JSR ENABLE_DAT
RTS
ENABLE_COD:
MOV #%01,PTC
NOP
MOV #$00,PTC
JSR RETARDOB
RTS
ENABLE_DAT:
MOV #%11,PTC
NOP
MOV #%10,PTC
JSR RETARDOB
RTS
RETARDOB:
LDHX #18T
CICLO2:
AIX #-1T
CPHX #0T
BNE CICLO2
CLRH
CLRX
RTS
IMPRESORA:
MOV #$80,PTB
JSR ENABLE_COD
MOV #$52,LETRA ;CARACTER "R"
JSR PONER_LETRA
MOV #$2E,LETRA ;CARACTER "."
JSR PONER_LETRA
MOV #$50,LETRA ;CARACTER "P"
JSR PONER_LETRA
MOV #$2E,LETRA ;CARACTER "."
JSR PONER_LETRA
MOV #$4D,LETRA ;CARACTER "M"
JSR PONER_LETRA
MOV #$3D,LETRA ;CARACTER "="
JSR PONER_LETRA
MOV #$80,PTB
JSR ENABLE_COD
MOV #$52,LETRA ;CARACTER "R"
JSR PONER_LETRA
MOV #$2E,LETRA ;CARACTER "."
JSR PONER_LETRA
MOV #$50,LETRA ;CARACTER "P"
JSR PONER_LETRA
MOV #$2E,LETRA ;CARACTER "."
JSR PONER_LETRA
MOV #$4D,LETRA ;CARACTER "M"
JSR PONER_LETRA
MOV #$3D,LETRA ;CARACTER "="
JSR PONER_LETRA
MOV #$8C,PTB ;SALTAMOS A LA POSICION DONDE PONDREMOS CU (CICLO UTIL)
JSR ENABLE_COD
MOV #$43,LETRA ;CARACTER "C"
JSR PONER_LETRA
MOV #$55,LETRA ;CARACTER "U"
JSR PONER_LETRA
MOV #$3D,LETRA ;CARACTER "="
JSR PONER_LETRA
MOV CU1,LETRA ;DATO ALTO CU
JSR PONER_LETRA
MOV CU2,LETRA ;DATO BAJO CU
JSR PONER_LETRA
MOV #$25,LETRA ;CARACTER "%"
JSR PONER_LETRA
MOV #$C0,PTB ;POSICION DEL SG (EN LA SEGUNDA LINEA LCD)
JSR ENABLE_COD
MOV #$53,LETRA ;CARACTER "S"
JSR PONER_LETRA
MOV #$47,LETRA ;CARACTER "G"
JSR PONER_LETRA
MOV #$3D,LETRA ;CARACTER "="
JSR PONER_LETRA
MOV FLECHA,LETRA
JSR PONER_LETRA
MOV DIRE,LETRA
JSR PONER_LETRA
MOV #$CA,PTB
JSR ENABLE_COD
MOV #$35,LETRA ;CARACTER "5"
JSR PONER_LETRA
MOV #$56,LETRA ;CARACTER "V"
JSR PONER_LETRA
MOV #$40,LETRA ;CARACTER "@"
JSR PONER_LETRA
MOV #$31,LETRA ;CARACTER "1"
JSR PONER_LETRA
MOV #$2E,LETRA ;CARACTER "."
JSR PONER_LETRA
MOV #$32,LETRA ;CARACTER "2"
JSR PONER_LETRA
MOV #$41,LETRA ;CARACTER "A"
JSR PONER_LETRA
MOV #$80,PTB
JSR ENABLE_COD
MOV #$EE,INICIOLCD
JMP INICIO
;-------------------------FIN VISUALIZACION ---------------------
R_INT_KBI:
PSHH
LDA PTA
AND #$0F
MOV #$00,INICIOLCD
CBEQA #$0E,INC_CICLO
CBEQA #$0D,DEC_CICLO1
PULH
RTI
INC_CICLO:
LDHX CILH
CPHX #2T
BEQ CAMBIO11.
CPHX #167T
BEQ CAMBIO21
CPHX #1667T
BEQ CAMBIO31
CPHX #3334T
BEQ CAMBIO41
CPHX #5000T
BEQ CAMBIO51
CPHX #6667T
BEQ CAMBIO61
CPHX #8333T
BEQ CAMBIO71
CPHX #10000T
BEQ CAMBIO81
CPHX #11667T
BEQ CAMBIO91
CPHX #13333T
BEQ CAMBIO101
CPHX #15000T
BEQ CAMBIO111
CPHX #16600T
BRA CAMBIO111
CAMBIO11.:
JMP CAMBIO1
CAMBIO21:
JMP CAMBIO2
CAMBIO31:
JMP CAMBIO3
CAMBIO41:
JMP CAMBIO4
CAMBIO51:
JMP CAMBIO5
CAMBIO61:
JMP CAMBIO6
CAMBIO71:
JMP CAMBIO7
CAMBIO81:
JMP CAMBIO8
CAMBIO91:
JMP CAMBIO9
CAMBIO101:
JMP CAMBIO10
CAMBIO111:
JMP CAMBIO11
DEC_CICLO1:
JMP DEC_CICLO
CAMBIO1:
LDHX #167T
STHX CILH
MOV #$31,CU2 ;CARACTER "1"
MOV #$30,CU1 ;CARACTER "0"
MOV #$7F,FLECHA ;CARACTER "<-"
MOV #$49,DIRE ;CARACTER "I"
JMP CAMBIO
CAMBIO2:
LDHX #1667T
STHX CILH
MOV #$31,CU1 ;CARACTER "1"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7F,FLECHA ;CARACTER "<-"
MOV #$49,DIRE ;CARACTER "I"
JMP CAMBIO
CAMBIO3:
LDHX #3334T
STHX CILH
MOV #$32,CU1 ;CARACTER "2"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7F,FLECHA ;CARACTER "<-"
MOV #$49,DIRE ;CARACTER "I"
JMP CAMBIO
CAMBIO4:
LDHX #5000T
STHX CILH
MOV #$33,CU1 ;CARACTER "3"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7F,FLECHA ;CARACTER "<-"
MOV #$49,DIRE ;CARACTER "I"
JMP CAMBIO
CAMBIO5:
LDHX #6667T
STHX CILH
MOV #$34,CU1 ;CARACTER "4"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7F,FLECHA ;CARACTER "<-"
MOV #$49,DIRE ;CARACTER "I"
JMP CAMBIO
CAMBIO6:
LDHX #8333T
STHX CILH
MOV #$35,CU1 ;CARACTER "5"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7E,DIRE ;CARACTER "<-"
MOV #$7F,FLECHA ;CARACTER "->"
JMP CAMBIO
CAMBIO7:
LDHX #10000T
STHX CILH
MOV #$36,CU1 ;CARACTER "6"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7E,FLECHA ;CARACTER "->"
MOV #$44,DIRE ;CARACTER "D"
JMP CAMBIO
CAMBIO8:
LDHX #11667T
STHX CILH
MOV #$37,CU1 ;CARACTER "7"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7E,FLECHA ;CARACTER "->"
MOV #$44,DIRE ;CARACTER "D"
JMP CAMBIO
CAMBIO9:
LDHX #13333T
STHX CILH
MOV #$38,CU1 ;CARACTER "8"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7E,FLECHA ;CARACTER "->"
MOV #$44,DIRE ;CARACTER "D"
JMP CAMBIO
CAMBIO10:
LDHX #15000T
STHX CILH
MOV #$39,CU1 ;CARACTER "9"
MOV #$30,CU2 ;CARACTER "0"
MOV #$7E,FLECHA ;CARACTER "->"
MOV #$44,DIRE ;CARACTER "D"
JMP CAMBIO
CAMBIO11:
LDHX #16600T
STHX CILH
MOV #$39,CU1 ;CARACTER "9"
MOV #$39,CU2 ;CARACTER "9"
MOV #$7E,FLECHA ;CARACTER "->"
MOV #$44,DIRE ;CARACTER "D"
JMP CAMBIO
DEC_CICLO:
MOV #$00,PTC
LDHX CILH
CPHX #2T
BEQ CAMBIO11..
CPHX #167T
BEQ CAMBIO11..
CPHX #1667T
BEQ CAMBIO11..
CPHX #3334T
BEQ CAMBIO22
CPHX #5000T
BEQ CAMBIO32
CPHX #6667T
BEQ CAMBIO42
CPHX #8333T
BEQ CAMBIO52
CPHX #10000T
BEQ CAMBIO62
CPHX #11667T
BEQ CAMBIO72
CPHX #13333T
BEQ CAMBIO82
CPHX #15000T
BEQ CAMBIO92
CPHX #16600T
BRA CAMBIO102
CAMBIO11..:
JMP CAMBIO1
CAMBIO22:
JMP CAMBIO2
CAMBIO32:
JMP CAMBIO3
CAMBIO42:
JMP CAMBIO4
CAMBIO52:
JMP CAMBIO5
CAMBIO62:
JMP CAMBIO6
CAMBIO72:
JMP CAMBIO7
CAMBIO82:
JMP CAMBIO8
CAMBIO92:
JMP CAMBIO9
CAMBIO102:
JMP CAMBIO10
CAMBIO:
LDHX CILH
CPHX T1CH0H
BHI MAYOR
BLO MENOR
PULH
RTI
MAYOR:
BSET 6,T1SC
BCLR 6,T1SC0
PULH
RTI
MENOR:
BCLR 6,T1SC
BSET 6,T1SC0
PULH
RTI
RAI_TOF:
PSHH
LDHX CILH
STHX T1CH0H
BCLR 6,T1SC
LDA T1SC
BCLR 7,T1SC
PULH
RTI
RAI_OC:
PSHH
LDHX CILH
STHX T1CH0H
BCLR 6,T1SC0
LDA T1SC0
BCLR 7,T1SC0
PULH
RTI
org $FFE0
DW R_INT_KBI
ORG $FFF2
DW RAI_TOF
ORG $FFF6
DW RAI_OC
ORG $FFFE
DW START
---------------------------------------------------------------------------------------------------------
ESTO ES LO DIFICIL DE COMPRENDER UN CODIGO ASM HECHO POR OTRA PERSONA
Lo mejor seria hacerlo de nuevo cuenteme que nececita y todo lo dejamos en el foro para que la gente nos ayude , nos Vemos