ÄÚµù(Coding)

1. ¿¡µðÅÍÀÇ ±âµ¿°ú Á¾·á


¼Ò½ºÆÄÀÏÀ» ÀÛ¼ºÇß´Ù¸é ÆÄÀÏÀ» µð½ºÅ©¿¡ ÀúÀåÇÑ´Ù.
óÀ½ º¸Á¸½Ã¿¡´Â File¡æSave as·Î ÆÄÀϸíÀ» ÁöÁ¤ÇÏ¿© ÀúÀåÇÑ´Ù.
2ȸ° ÀÌÈÄ´Â File¡æSave·Î ÀúÀåÇÑ´Ù.
ÀúÀåÀ» ¿Ï·áÇßÀ¸¸é File¡æClose·Î ¿¡µðÅ͸¦ Á¾·áÇÑ´Ù.


2. ¼Ò½º ÇÁ·Î±×·¥ÀÇ ÀÛ¼º¹ý

;*********************************************
;   Test program for PIC16C84
;   This test is to on/off three LED at port A
;*********************************************
;óÀ½¿¡ »ç¿ëÇÏ´Â ÇÁ·Î¼¼¼­¿¡ Á¾·ù¸¦ ÁöÁ¤
           LIST    P=PIC16C84
;¿©±âºÎÅÍ ÀÎŬ·çµå ÆÄÀÏÀÇ ÀоîµéÀ̱â ÁöÁ¤
           INCLUDE     "P16C84.INC"  ;Ç¥ÁØInclude File ÀоîµéÀ̱â
;**********************************
;º¯¼öÀÇ ·¹Áö½ºÅÍ¿¡ ÇÒ´ç ¼³Á¤
;*********************************
CNT1      EQU      0DH               ;Counter for Timer
CNT2      EQU      0EH               ;Counter for Timer
CNT3      EQU      0FH               ;Counter for Timer
;*******************************
;Áß½ÉÀÌ µÇ´Â ¹Ýº¹ ÇÁ·Î±×·¥ºÎ
;*******************************
;°³½Ã¹øÁöÀÇ ÁöÁ¤(¹Ýµå½Ã 0¹øÁö°¡ ÇÊ¿ä)
             ORG       0                   ;ÇÁ·Î±×·¥ °³½Ã¹øÁöÀÇ ÁöÁ¤
;Æ÷Æ®³ª º¯¼öÀÇ ÃʱâÈ­ºÎ
MAIN                                        ;¿©±âºÎÅÍ ÃʱâÈ­ºÎ
             BSF        STATUS,RP0  ;Æ÷Æ®ÀÇ ÀÔÃâ·Â ¼³Á¤
             CLRF      TRISA            ;Set Port A to all output
             BCF        STATUS,RP0  ;Set Page 0
;ÁÖÇÁ·Î±×·¥ºÎ
MAINLP                                    ;¿©±âºÎÅÍ ÁÖÇÁ·Î±×·¥
             CLRF      PORTA          ;Output all 0 to Port A
             CALL      SECTIM         ;¼­ºê·çƾÀÇ È£Ãâ
             MOVLW  0FFH             ;Get FF
             MOVWF  PORTA          ;Output all 1 to Port A
             CALL      SECTIM         ;Wait 0.5sec
             GOTO     MAINLP         ;Jump to Loop
;***************************
;¿©±âºÎÅÍ ¼­ºê·çƾºÎ
;***************************
; 0.4msec Timer Subroutine
TIM10
            MOVLW   0F9H             ;1
            MOVWF   CNT1            ;1+1=2
TIMLP1  NOP
            DECFSZ   CNT1,F         ;1+1+2=4
            GOTO      TIMLP1          ;2+4*249-1=997
            RETURN                       ;997+1=998*0.4usec=0.4msec

; 100msec Timer Subroutine
TIM100
            MOVLW    0F9H            ;0.4msec * 249(about)
            MOVWF    CNT2
TIMLP2
            CALL        TIM10           ;2+(1000+3)*249-1=249748
            DECFSZ    CNT2,F
            GOTO       TIMLP2
            RETURN                       ;+1=249749
; 0.5sec Timer Subroutine
SECTIM
            MOVLW     5
            MOVWF     CNT3           ;100msec * 5(about)
            TIMLP3
            CALL         TIM100
            DECFSZ     CNT3,F
            GOTO        TIMLP3
            RETURN
;¸®½ºÆ®ÀÇ Á¾·á
            END                            ;¼Ò½ºÆÄÀÏÀÇ Á¾·á


¼Ò½ºÆÄÀÏÀÌ ¿Ï¼ºµÇ¾úÀ¸¸é ÀÌÁ¦ºÎÅÍ´Â ¾î¼ÀºíÀÌ´Ù.


´ÙÀ½ È­¸é       ¸ñÂ÷ È­¸é