******************************************* **** *** *** **** CAN RAM 256 *** **** *** *** ******************************************* *nombre de valeur a determin‚ NumVal *position de la RAM sup addresse $2000 *aquisisition de donnees a/D CAN4 3eme depuis quartz *acces a la RAM externe *affichage en direct sur $00 *00 sur $00=fin acquisition et attente *transmission data au PC a la reception signal exterieur (barre space) *2400 b N81 PORTA equ $00 DDRA equ $01 SPCR equ $28 SCCR1 equ $2c SCCR2 equ $2D BAUD equ $2B HPRIO equ $3C OPTION equ $39 ADCTL equ $30 SCSR equ $2E SCDR equ $2F ADR4 equ $34 NumVal equ $2100 org $fe00 start cli *********************************** *initialisation *** *********************************** lds #$0350 * stack ldx #$1000 * config registers offset ldy #$2000 * RAM offset out ************************************** *Initialisation des ports CAN + SCI*** ************************************** ldaa #$FF * port A en sortie staa DDRA,x * bset SPCR,x,#$20 * init port D clr SCCR1,x * 2400 bauds, N81 ldd #$330C * staa BAUD,x * stab SCCR2,x * | ldaa #$E5 * set extended mode staa HPRIO,x * | ldaa #$90 * enable A/D converters staa OPTION,x * store OPTION register ***************************************** *Début de conversion et stockage en RAM*** ***************************************** ad ldx #$6FFF *tempo entre 2 acquisition loop dex *attente entre 2 conversion : bne loop ldx #$1000 ldaa #$23 *D‚but de conversion : A/D port 3:%00100011 staa ADCTL,x bsr ad_read staa $00,y * stockage en RAM : staa PORTA,x * echo on port A iny * goto next RAM address cpy #NumVal * 256 mesures bne ad * boucle conversion ldaa #$00 * fin d'acquisition et affichage 00 sur port A staa PORTA,x *********************************** *Reception SCI *** *********************************** rcv brclr SCSR,x,#$20,rcv * attente d'un caractere du port serie ldaa SCDR,x * affichage de ca caractere sur port A staa PORTA,x cmpa #$20 * reception de la touche "SPACE" ? beq Suite bra rcv Suite ldy #$2000 * Touche "SPACE" declenche envoi RAM vers SCI ************************************ *Envoi des data de la RAM par SCI*** ************************************ read_ra ldaa $00,y *Lecture de la RAM : staa PORTA,x snd brclr SCSR,x,#$80,snd *envoi sur SCI staa SCDR,x iny * adresse suivante de la RAM cpy #NumVal * fin de lecture de la RAM bne read_ra *non? : boucle de lecture fin ldaa #$00 * Fin d'acquisition : affiche 00 sur port A staa $ff,x bra fin *ou ? : fin du pgm ad_read ldaa $30,x bpl ad_read * wait for conversion to be finished ldaa ADR4,x * return result in A rts end