Академический Документы
Профессиональный Документы
Культура Документы
asm
; PROGRAM CREATES A SQUARE WAVE OF 50 HZ WITH 50% DUTY
; CYCLE THROUGH CCP1 PIN USING THE COMPARE MODE INTERUPPTS.
; OSCILLATOR = 20 MHZ
; OVERHEADS EXCLUDED.
; PROGRAMMER: SYED TASWAR MAHBUB.
;-----------------------------------------------------------------------TITLE:"50HZ SQ WAVE GENERATION USING COMPARE MODE WITH CCP1 INTR ."
LIST
P=16F877A
#INCLUDE "P16F877A.INC"
__CONFIG
H'3F71'
;=======================================================================
;SFR SHOWN BELOW NEEDNOT TO BE SHOWN WITH MEMORY ADDRESS AS IT IS
;INCLUDED IN ABOVE MENTIONED .INC FILE BUT SHOWN HERE SO THAT NEW
;PORGRAMMER CAN SEE IN WHICH MEMORY BANKS THESE SFRS ARE LOCATED.
STATUS
PORTC
INTCON
PIR1
TMR1L
TMR1H
T1CON
CCPR1L
CCPR1H
CCP1CON
TRISC
PIE1
ADCON1
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0X03
0X07
0X0B
0X0C
0X0E
0X0F
0X10
0X15
0X16
0X17
0X87
0X8C
0X9F
;======================================================================= ;
ORG
0X00
GOTO
INIT
ORG
0X04
GOTO
CCP_ISR
;======================================================================= ;
INIT
BANKSEL
MOVLW
MOVWF
CLRF
BANKSEL
CLRF
BCF
ADCON1
B'00000110'
ADCON1
TRISC
PORTC
PORTC
PORTC,2
BCF
BCF
BANKSEL
BCF
BCF
BANKSEL
CLRF
MOVLW
MOVWF
CLRF
CLRF
CLRF
CLRF
MOVLW
MOVWF
MOVLW
INTCON,7
INTCON,6
PIE1
PIE1,0
PIE1,2
0X00
CCP1CON
B'00000000'
T1CON
TMR1H
TMR1L
CCPR1H
CCPR1L
0XC3
CCPR1H
0X50
;
;
;
;
CCP_ISR
MOVWF
BSF
BSF
BANKSEL
BSF
BANKSEL
MOVLW
MOVWF
CCPR1L
INTCON,7
INTCON,6
PIE1
PIE1,2
CCP1CON
B'00001001'
CCP1CON
BSF
GOTO
T1CON,0
$
BCF
CLRF
CLRF
BCF
MOVLW
XORWF
BSF
T1CON,0
TMR1L
TMR1H
PIR1,2
B'00000001'
CCP1CON,F
T1CON,TMR1ON
;STOP TIMER1.
RETFIE
END
;============================================================================ ;
;------------------------------------------------------------------------------------;
;
;
;
;
;
;
;
WHY DIVIDE BY 0.20 US?
;
------------------------; TIMER'S CLOCK FREQUENCY = 20MHZ XTAL/4 = 5 MHZ.
; T = 1/5 MHZ = 0.2 US.
;===============================================================