Sie sind auf Seite 1von 5

352*5$0$&,Ð1 ,  


7DPELpQVHSXHGHQHQFRQWUDUHQHO$SpQGLFH'´'LUHFWLYDVGHO03$60µ

'$726 

3DUD DFFHGHU \ PDQLSXODU GDWRV HQ XQ PLFURFRQWURODGRU VH GHEHQ WHQHU FLHUWDV
FODULGDGHV FRQ UHVSHFWR DO WLSR GH GDWR TXp WLSR GH PHPRULD XVD \ FyPR HV HO
DFFHVRRHOGLUHFFLRQDPLHQWRDFRQWLQXDFLyQYHUHPRVDOJXQDVFODVLILFDFLRQHVGHORV
GDWRVWDOHVFRPR

• 7LSR GH 'LUHFFLRQDPLHQWR
'LUHFFLRQDPLHQWR ,QPHGLDWR 'LUHFWR %LW D %LW ,QGLUHFWR
,QGH[DGR
• 7LSRGH'DWRV
7LSRGH'DWRV&RQVWDQWHV\9DULDEOHV
• 'DWRVHQ7LSRVGH0HPRULD
'DWRVHQ7LSRVGH0HPRULD 0HPRULDGH'DWRV0HPRULDGHGDWRVHQ
(35200HPRULDGH3URJUDPD
<FRPRFRPSOHPHQWRDHVWDVHFFLyQGH'DWRVVHWLHQHQ)RUPDWRVGHYDORUHV
)RUPDWRVGHYDORUHV\
)RUPDWRVGHYDORUHV 
2SHUDGRUHV
2SHUDGRUHV

7,32'(',5(&&,21$0,(172 

eVWD HV OD IRUPD HQ TXH VH DFFHVDQ ORV GDWRV 6HJ~Q HO WLSR GH
GHGLUHFFLRQDPLHQWR
GLUHFFLRQDPLHQWR
XWLOL]DGRSDUDVXPDQHMRVHFODVLILFDQHQ

• 'LUHFFLRQDPLHQWRLQPHGLDWR
• 'LUHFFLRQDPLHQWRGLUHFWR
• 'LUHFFLRQDPLHQWRELWDELW
• 'LUHFFLRQDPLHQWRLQGLUHFWR
• 'LUHFFLRQDPLHQWRLQGH[DGR

',5(&&,21$0,(172,10(',$72 

(O YDORU GHO GDWR VH FDUJD HQ IRUPD LQPHGLDWD \ VH DJUHJD DO FyGLJR GH OD
LQVWUXFFLyQ7RGDVODVLQVWUXFFLRQHVTXHWHQJDQHOIRUPDWR[[[OZN
Ejemplo:
andlw k ; (W) and k -> (W)
andlw 0X4D , (W) and 0×4D -> (W)
sublw k ; k – (W) -> (W)
sublw _ciclos_60Hz ; _ciclos_60Hz – (W) -> (W)


MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA Alfaomega




    
  352*5$0$&,Ð1 , 


',5(&&,21$0,(172',5(&72 

6H FDUJD OD GLUHFFLyQ GH PHPRULD TXH FRQWLHQH HO YDORU GHO GDWR TXH VH YD D
PDQHMDUODGLUHFFLyQVHDJUHJDDORSFRGH
RSFRGHHQODLQVWUXFFLyQ7RGDVODVLQVWUXFFLRQHV
RSFRGH
TXHWHQJDQHOIRUPDWR[[[[[IG )LJXUD 
















)LJXUD
)LJXUD
'LUHFFLRQDPLHQWRGLUHFWRFRQH[LyQ
'LUHFFLRQDPLHQWRGLUHFWRFRQH[LyQ

(Q OD )LJXUD  YHPRV FyPR VH FDUJD OD GLUHFFLyQ   GLIHUHQWH GH  
FXDQGRHVWiHQGLUHFFLRQDPLHQWRGLUHFWR
















)LJXUD'LUHFFLRQDPLHQWRGLUHFWRGLDJUDPD
)LJXUD'LUHFFLRQDPLHQWRGLUHFWRGLDJUDPD
'LUHFFLRQDPLHQWRGLUHFWRGLDJUDPD


Alfaomega MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA




    
352*5$0$&,Ð1 ,  


(QOD)LJXUDREVHUYDPRVTXHODGLUHFFLyQHVWiFRQIRUPDGDSRUORVELWV
!
! TXH GLUHFFLRQDQ GH )K  \ ORV ELWV 53 \ 53 GHO UHJLVWUR 67$786!
67$786!
TXH GLUHFFLRQDQ XQR GH ORV  EDQFRV GH PHPRULD 5$0 %DQN %DQN %DQN
%DQN 
Ejemplo:
movwf f ; (W) -> f
movwf n_ciclos ; (W) -> n_ciclos

addwf f,d ; (W) + f -> (d)


addwf contador,F ; (W) + contador -> contador

',5(&&,21$0,(172%,7$%,7 

0DQLSXODHOELWGHXQGDWRHQPHPRULD6HFDUJDODGLUHFFLyQGHPHPRULDGHOGDWR
TXHFRQWLHQHHOELWVHOHFFLRQDGR/DVLQVWUXFFLRQHVRULHQWDGDVDELWTXHVRQ EVI
 EVI
EFIEWIVVEWIVFWRGRVWHUPLQDQFRQI
EFIEWIVVEWIVF I E  I ODGLUHFFLyQGHPHPRULDGHOGDWR\ E HO

ELW
Ejemplo:
bsf f,b ; 1 -> b, f<b>
bsf PORTA,4 ; 1 -> bit 4, PORTA<4>

btfss f,b ; f<b>, si bit b=1 salta


btfss STATUS,Z ; STATUS<Z>, Si Z=1 salta

NOTA: Tenga en cuenta que para el direccionamiento del registro f


se debe escoger antes el banco en donde se ubica, con los bits RP1
y RP0 del registro STATUS, como vimos en el direccionamiento
directo.

',5(&&,21$0,(172,1',5(&72 

6H FDUJD HO FRQWHQLGR ,1')  GH OD GLUHFFLyQ GH PHPRULD GRQGH DSXQWD )65
)65  (VWH
PRGR GH GLUHFFLRQDPLHQWR HV PX\ SUiFWLFR GHELGR D TXH VH WLHQH XQ DSXQWDGRU D
PHPRULD5$0 )LJXUD 




MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA Alfaomega




    
  352*5$0$&,Ð1 , 











)LJXUD
)LJXUD
&RQH[LyQGLUHFFLRQDPLHQWRLQGLUHFWR
&RQH[LyQGLUHFFLRQDPLHQWRLQGLUHFWR

(Q OD )LJXUD  YHPRV FyPR VH FDUJD OD GLUHFFLyQ  LJXDO D  ,1') 
FXDQGRHVWiHQGLUHFFLRQDPLHQWRLQGLUHFWR














)LJXUD
)LJXUD'LDJUDPDGLUHFFLRQDPLHQWRLQGLUHFWR
'LDJUDPDGLUHFFLRQDPLHQWRLQGLUHFWR

(QOD)LJXUDREVHUYDPRVFyPRODGLUHFFLyQHVWiFRQIRUPDGDSRUORV
ELWV!
!
! TXHGLUHFFLRQDQGH )K
)KG \ORVELWV,53GHOUHJLVWUR67$786!
67$786!
67$786!
\ HO ELW  GHO UHJLVWUR )65! TXH GLUHFFLRQDQ XQR GH ORV  EDQFRV GH OD 5$0
%DQNEDQN%DQN%DQN 

Ejemplo:

Si FSR=0×23
clrf INDF ; 0 -> INDF, donde apunta FSR
; FSR = 0×23, la posición de memoria
;0×23< - 00 (la memoria 0×23 es borrada)

Alfaomega MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA




    
352*5$0$&,Ð1 ,  

Si (W) = 0×0F, FSR=0×23, y la posición de memoria (0×23) = 0×3A -> INDF


andwf INDF,F ; (W) and INDF –> INDF, donde apunta FSR
; 0×0F and 0×3A -> (0×23) = 0×0A


',5(&&,21$0,(172,1'(;$'2 

(VWH PRGR GH GLUHFFLRQDPLHQWR HV XQ WUXFR GH VRIWZDUH GHELGR D TXH QR HV
LPSOHPHQWDGR HQ HVWRV PLFURV 6H XWLOL]D FRP~QPHQWH HQ ODV WDEODV GRQGH VH
DFFHGHFRQXQSXQWHUR 3& \XQRIIVHW : 
Ejemplo:
Main:
movf contador,W ; cargue offset a (W)
call Tabla_code_7_seg ; cargue apuntador (PC) a
; Tabla código de 7 segmentos
movwf PORTD ; ponga W en PUERTO D
………
………
Tabla_code_7_seg ; (PC) aquí, Tabla para display de 7
;segmentos.
addwf PCL,F ; sume apuntador PC y offset
;(W) -> PC
retlw 3Fh ; número "0".
retlw 06h ; número "1".
……..
retlw 7Fh ; número "8".
retlw 67h ; número "9".
end


(Q HO HMHPSOR DQWHULRU VL HO FRQWDGRU WLHQH HO YDORU  pVWH VH JXDUGD HQ : 
TXH HV HO RIIVHW SDUD OD WDEOD FRQ OD LQVWUXFFLyQ FDOO HO SXQWHUR
SXQWHUR 3&  VH XELFD DO
SULQFLSLRGHODWDEOD\FRQODLQVWUXFFLyQDGGZI3&/)
DGGZI3&/)VHVXPDHORIIVHW
DGGZI3&/) RIIVHW\HOSXQWHUR
RIIVHW SXQWHUR
SXQWHUR
3& \pVWDYDDODSRVLFLyQGHODWDEODODLQVWUXFFLyQUHWOZ)K
UHWOZ)KGHYXHOYHHQ
UHWOZ)K : 
)DOYROYHUDODLQVWUXFFLyQVLJXLHQWHOXHJRGHOFDOOVHHMHFXWDPRYZI3257'
) PRYZI3257'TXH
PRYZI3257'
SRQHHOYDORUGH : HQHO38(572'

NOTA: Tenga en cuenta que para el direccionamiento de la tabla, se


debe escoger antes el banco de memoria de programa donde se ubica,
con los bits del registro PCLATH<5:4>.

5HFRPHQGDPRV OD OHFWXUD GH OD 3DUWH  ´0HPRULDµ HQ GRQGH DSDUHFHQ
HMHPSORVGHHVWHWLSR

MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA Alfaomega




    

Das könnte Ihnen auch gefallen