*** 10:44 28/11/04 *************************************************************************** *** projet 2005 *** FS71_eleve.s version 68hc11 *** *** programme test de FS71 **************************************************************************** ************************** * etiquettes ************************** debram equ $2000 * a modifier selon votre µc pile equ $6fff * idem et attention au vecteur d'it a ne pas ecraser ***************************************************************** * declaration des peripheriques d'entree/sortie paralleles ***************************************************************** porta equ $1000 portb equ $1004 portc equ $1003 porte equ $100a ddrc equ $1007 din_mem equ $40 ************************* din_can equ $20 * masques * memcan equ $10 * * hdata equ $08 * port A * dout equ $02 ************************* cdepompe equ $80 ************************* selgam2 equ $20 * masques * selgam1 equ $10 * * paramrap equ $04 * * e_aff equ $02 * port C * rs_aff equ $01 ************************* t_clav equ $08 * masque port E * ************************* * debut du prog en RAM ************************* org debram jmp prog ************************* * texte a afficher * (table de caracteres) ************************* texts fcc "Test FS71" fcb $00 fcb $00 *********************************** *********************************** *** *** programme principal *** *********************************** *********************************** prog lds #pile ; initialisation de l'adresse de pile ldy #$1000 ; Y = adresse de base des B(R)SET ou B(R)CLR jsr init ; initialisation du systeme (ports et sorties) jsr init_af ; initialisation de l'afficheur jsr clr_aff ; effacement de l'afficheur ldx #texts ; pointeur texte a afficher jsr aff_txt ; affichage du texte retour bra retour ******************************************* ******************************************* *** *** liste des sous-programmes *** ******************************************* ******************************************* ************************************************************* *** *** SProgs d'initialisation: port / sortie / variables *** ************************************************************* ********************************************************* * initialisation du systeme * *entree: - sortie: - modif: a,ddrc,portB * ********************************************************* init jsr initpor jsr initsor rts ***************************************** * initialisation des ports *************************************** initpor ldaa #%11111111 * config du portc staa ddrc * b0 a b7 en sortie rts ********************************************* * initialisation des sorties des ports ********************************************* initsor clra staa portb * code $00 sur le bus donnees de l'afficheur LCD rts ************************************************************* *** *** SProgs d'affichage de textes et de valeurs *** ************************************************************* ************************************************* * initialisation de l'afficheur * e: - s: a modif: a ************************************************* init_af ldaa #%00111000 jsr instruc ldaa #%00001100 jsr instruc ldaa #%00000110 jsr instruc rts ******************************************** * effacement complet de l'afficheur * e: - s: a modif: a ******************************************** clr_aff ldaa #%00000001 jsr instruc rts **************************************************** * envoi & validation d'une instruction * e: a s: - modif: a **************************************************** instruc staa portb bclr portc,y e_aff bclr portc,y rs_aff bset portc,y e_aff bclr portc,y e_aff jsr tp10ms rts **************************************************** * envoi & validation d'un caractere * e: a s: - modif: a **************************************************** caract staa portb bclr portc,y e_aff bclr portc,y rs_aff bset portc,y rs_aff bset portc,y e_aff bclr portc,y e_aff jsr tp10ms rts ******************************************** * envoi d'un texte sur deux lignes * e: x s: a modif: a,x ******************************************** aff_txt ldaa #%10000000 jsr instruc lg1 ldaa 0,x beq txt_st jsr caract inx bra lg1 txt_st ldaa #%11000000 jsr instruc inx lg2 ldaa 0,x beq txt_fin jsr caract inx bra lg2 txt_fin rts ************************************************************* *** *** SProgs de temporisation *** ************************************************************* ******************************** * temporisation de 10ms ******************************** tp10ms pshx ldx #3069 tp10ms1 dex bne tp10ms1 pulx rts ******************************** * temporisation de 100ms ******************************** tp100ms pshx ldx #30718 tp100m1 dex bne tp100m1 pulx rts ******************************************** * procedure de temporisation de 1 s ******************************************** tp1s pshx ldx #10 tp1s1 jsr tp100ms dex bne tp1s1 pulx rts END *** Fin du prog en RAM ***