1. ¿¡µðÅÍÀÇ ±âµ¿°ú Á¾·á
"ÄÚµù" Áï, ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇÑ´Ù.
ÄÚµùÀ» ½ÃÀÛÇϱâ À§ÇØ ¿ì¼± ¿¡µðÅ͸¦ ±âµ¿ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
óÀ½¿¡ ÄÚµùÀ» °³½ÃÇÒ ¶§¿¡´Â MPLAB¿¡¼, File¡æNew Source·Î ÁöÁ¤ÇÑ´Ù. ±×·¸°Ô ÇÏ¸é ¹éÁöÀÇ »óÅ¿¡¼ ¿¡µðÅÍ°¡ ±âµ¿ÇÑ´Ù.
¶ÇÇÑ ÀÌ¹Ì µµÁß±îÁö ÀÛ¼ºÀ» ¸¶Ä£ source fileÀ» ÆíÁýÇÒ ¶§¿¡´Â File¡æOpen Source·Î ÁöÁ¤ÇÏ¸é ±âÁ¸ÀÇ ¼Ò½ºÆÄÀÏÀ» ÀоîµéÀÎ
»óÅ¿¡¼ ¿¡µðÅÍ°¡ ±âµ¿ÇÑ´Ù.
¾Æ·§ ±×¸²Àº test.asmÀ̶ó´Â ¼Ò½ºÆÄÀÏÀ» ¿ÀÇÂÇÑ °ÍÀÌ´Ù.
¼Ò½ºÆÄÀÏÀ» ÀÛ¼ºÇß´Ù¸é ÆÄÀÏÀ» µð½ºÅ©¿¡ ÀúÀåÇÑ´Ù.
óÀ½ º¸Á¸½Ã¿¡´Â 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 ;¼Ò½ºÆÄÀÏÀÇ Á¾·á
¼Ò½ºÆÄÀÏÀÌ ¿Ï¼ºµÇ¾úÀ¸¸é ÀÌÁ¦ºÎÅÍ´Â ¾î¼ÀºíÀÌ´Ù.