;****************************************************************************************** ; PIC12F1822 Sample Program ; Project : ; Program Name : ; Programer : ; Create date : Version 1.0 H25.11.02 ; History : ; Laungage : MPLAB MPASM ;****************************************************************************************** ; Description ; OSC : Internal OSC 32MHz ; Assign I/O pins ; Ra3[I] : Check the upper limit of the triangular wave ; Ra4[O] : Do the adjustment of the triangular wave ;****************************************************************************************** LIST P=PIC12F1822,ST=OFF,R=DEC INCLUDE "P12F1822.inc" __CONFIG _CONFIG1 , _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF ; __CONFIG _CONFIG2 , _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_HI & _LVP_OFF __CONFIG _CONFIG2 , _WRT_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_HI & _LVP_OFF ; ; Define GENERAL PURPOSE RAM AREA (80 bytes maximum) ; TMP_G EQU 20H ; ; Define Common RAM AREA (16 bytes) ; TMP_C EQU 70H ADDAT_H EQU 71H ADDAT_L EQU 72H CMP_CNT EQU 73H CNT_STP EQU 74H ; ; Define Macro ; SELBANK MACRO #BANK_NO MOVLW #BANK_NO MOVWF BSR ENDM ; ; Define Parameter ; TRA_HIG EQU 3 TRA_OUT EQU 4 ORG 0h GOTO START ORG 4h GOTO START START ; ***************************** ; 1.Initialize ; ***************************** ; (1)Define OSC SELBANK 1 ; SET BANK1 ; MOVLW B'01111010' ; Internal OSC 16MHz MOVLW B'11110000' ; Internal OSC 32MHz MOVWF OSCCON ; (2)Define ANSELA Register SELBANK 3 ; SET BANK3 CLRF ANSELA ; All degital port ; (3)Define I/O port SELBANK 1 ; SET BANK1 MOVLW B'11101111' MOVWF TRISA SELBANK 0 ; SET BANK0 CLRF PORTA SELBANK 0 ; SET BANK0 ; ***************************** ; 2.Program main ; ***************************** BSF PORTA,TRA_OUT MAIN BTFSS PORTA,TRA_HIG GOTO MAIN ; BCF PORTA,TRA_OUT BSF PORTA,TRA_OUT GOTO MAIN END