Advertisement
Guest User

Untitled

a guest
Jan 6th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 3.87 KB | None | 0 0
  1. ;* Projet : Labo XXX *
  2. ;************************************************************************
  3. ;* Nom de fichier: Labo XXX *
  4. ;* Date: XX-XX-XXXX *
  5. ;* *
  6. ;* Auteur: YY *
  7. ;* Haute Ecole Louvain en Hainaut *
  8. ;************************************************************************
  9. ;* Fichiers nécessaires: aucun *
  10. ;************************************************************************
  11. ;* Notes: *
  12. ;************************************************************************
  13.     list p=16F887, f=INHX8M ; directive pour definir le processeur
  14.     list c=90, n=60 ; directives pour le listing
  15.     #include <p16F887.inc> ; incorporation variables spécifiques
  16.     errorlevel -302 ; pas d'avertissements de bank
  17.     errorlevel -305 ; pas d'avertissements de fdest
  18.  
  19.  
  20.     __CONFIG _CONFIG1, _LVP_OFF & _WDT_OFF & _INTOSCIO
  21.     __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
  22.  
  23.  
  24. ;*************************************************************************
  25. ;* Définitions et Variables *
  26. ;*************************************************************************
  27.     cblock 0x020
  28.     tempo2,RESULTHI,VAR,tempo1, tempo3
  29.     endc
  30.  
  31.  
  32. ;*************************************************************************
  33. ;* Programme principal *
  34. ;*************************************************************************
  35.     ORG 0x000 ; vecteur reset
  36. START
  37.     CLRF STATUS          ; INIT
  38.     BSF STATUS,5          ; BANK 1
  39.     CLRF TRISA             ; PORTA en output
  40.     CLRF TRISC             ; PORTC en 0
  41.     COMF TRISC           ; PORTC en input
  42.     BSF STATUS,6         ; BANK 3
  43.     CLRF ANSEL           ; SIGNAL DIGITAL
  44.     CLRF STATUS         ; BANK 0
  45.     CLRF PORTA           ; INIT LES LEDS
  46.     MOVLW b'11111111' ; on met 255 dans le registre w
  47.     MOVWF VAR ; ensuite dans VAR
  48. MAINLOOP
  49.     CALL TEMPO2;
  50.     DECF, VAR ; on décrémente la variable VAR
  51.     BTFSC VAR,7 ;'00000000'
  52.     CALL INIT
  53.     CALL TEMPO2;
  54.     BTFSC VAR,6 ;'10000000'
  55.     CALL TOGGLE7
  56.     CALL TEMPO2;
  57.     BTFSC VAR,5 ;'11000000'
  58.     CALL TOGGLE6
  59.     CALL TEMPO2;
  60.     BTFSC VAR,4 ;'1110000'
  61.     CALL TOGGLE5
  62.     CALL TEMPO2;
  63.     BTFSC VAR,3 ;'11110000'
  64.     CALL TOGGLE4
  65.     CALL TEMPO2;
  66.     BTFSC VAR,2 ;'11111000'
  67.     CALL TOGGLE3
  68.     CALL TEMPO2;
  69.     BTFSC VAR,1 ;'11111100'
  70.     CALL TOGGLE2
  71.     CALL TEMPO2;
  72.     BTFSC VAR,0 ;  si VAR = la valeur binaire '1111 1110'
  73.     CALL TOGGLE1
  74.     goto MAINLOOP  
  75. LOOP2
  76.     INCF, VAR ; on incrémente la variable VAR
  77.     CALL TEMPO2;
  78.     BTFSS VAR,7 ;'1111 1111'
  79.     CALL INIT
  80.     CALL TEMPO2;
  81.     BTFSS VAR,6 ;'0111 1111'
  82.     CALL TOGGLE1
  83.     CALL TEMPO2;
  84.     BTFSS VAR,5 ;'0011 1111'
  85.     CALL TOGGLE2
  86.     CALL TEMPO2;
  87.     BTFSS VAR,4 ;'0001 1111'
  88.     CALL TOGGLE3
  89.     CALL TEMPO2;
  90.     BTFSS VAR,3 ;'0000 1111'
  91.     CALL TOGGLE4
  92.     CALL TEMPO2;
  93.     BTFSS VAR,2 ;'0000 0111'
  94.     CALL TOGGLE5
  95.     CALL TEMPO2;
  96.     BTFSS VAR,1 ;'0000 0011'
  97.     CALL TOGGLE6
  98.     CALL TEMPO2;
  99.     BTFSS VAR,0 ;  si VAR = la valeur binaire '0000 0001'
  100.     CALL TOGGLE7
  101.     goto LOOP2
  102. TOGGLE1
  103.     CLRF PORTA
  104.     MOVLW b'11111110'
  105.     MOVWF PORTA
  106.     RETURN
  107. TOGGLE2
  108.     CLRF PORTA
  109.     MOVLW b'11111100'
  110.     MOVWF PORTA
  111.     RETURN
  112. TOGGLE3
  113.     CLRF PORTA
  114.     MOVLW b'11111000'
  115.     MOVWF PORTA
  116.     RETURN
  117. TOGGLE4
  118.     CLRF PORTA
  119.     MOVLW b'11110000'
  120.     MOVWF PORTA
  121.     RETURN
  122. TOGGLE5
  123.     CLRF PORTA
  124.     MOVLW b'11100000'
  125.     MOVWF PORTA
  126.     RETURN
  127. TOGGLE6
  128.     CLRF PORTA
  129.     MOVLW b'11000000'
  130.     MOVWF PORTA
  131.     RETURN
  132. TOGGLE7
  133.     CLRF PORTA
  134.     MOVLW b'10000000'
  135.     MOVWF PORTA
  136.     RETURN
  137. INIT
  138.     CLRF PORTA
  139.     BTFSC VAR,7
  140.     GOTO LOOP2
  141.     BTFSS VAR,7
  142.     GOTO MAINLOOP
  143.     RETURN
  144. TEMPO2
  145.     MOVLW .10
  146.     MOVWF tempo3
  147.     CALL TEMPO
  148.     DECFSZ tempo3,f
  149.     GOTO $-2
  150.    
  151. TEMPO
  152.     movlw .250
  153.     movwf tempo2
  154.     movlw .250
  155.     movwf tempo1
  156.     decfsz tempo1,f
  157.     goto $-1
  158.     decfsz tempo2,f
  159.     goto $-5
  160.     RETURN
  161. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement