;**** PWM tesztprogram (2008.02.24.) ****
;        elõosztás = 16
;              PR2 = 00
;kitöltési tényezõ = 01
;órajel = egyes lépés, nyomógombbal EC üzemmódban
        
	processor 16f628a ;a mikrovezérlõ típusának megadása 
        
	__config H'3F0B' ;a konfigurációs szó megadása 
        
STATUS	equ	H'03'	;a memória lapozás regisztere
T2CON	equ	H'12'	;a Timer 2 vezérlõ regisztere 
CCPR1L	equ	H'15'	;kitöltési tényezõ felsõ 8 bit 
CCP1CON	equ	H'17'	;CCP modul vezérlése, kitöltési tényezõ alsó 2 bit 
OPTI	equ	H'81'	;a B port felhúzó ellenállások vezérlése 
TRISB	equ	H'86'	;a B port adatirány vezérlése 
PR2	equ	H'92'	;a periódusidõ regisztere 
        
;*** Fõprogram ***
        
	bsf	STATUS,5	;az 1. adatmemória lap kiválasztása 
	bcf	TRISB,3		;a CCP1 kivezetés kimenetként való beállítása
	clrf	OPTI		;a B port felhúzó ellenállások bekapcsolása 
	movlw	H'00'		;a periódusidõ értékének bevitele 
	movwf	PR2		;a periódusidõ értékének bevitele 
	bcf	STATUS,5	;a 0. adatmemória lap kiválasztása
	bsf	T2CON,1		;elõosztás 1:16
	movlw	H'00'		;a kitöltési tényezõ értékének bevitele 
	movwf	CCPR1L		;a kitöltési tényezõ értékének bevitele 
	movlw	H'1F'		;DC1B1 és DC1B0 érték bevitele, PWM indítása 
	movwf	CCP1CON		;DC1B1 és DC1B0 érték bevitele, PWM indítása 
	bsf	T2CON,2		;Timer 2 indítása
UJRA	goto	UJRA		;végtelen ciklus 
	end

;EREDMÉNY:
;a PWM kimenet LED a 68. órajelciklus hatására gyullad ki elsõre
;a PWM periódus: 64 órajelciklus
;az aktív szint idõtartama: 16 órajelciklus