;16c54學習程序,學習時候用16F54代替學習
;功能描述:點亮一個LED,
;
;
;======================硬件結構======================
;
; __________
; RA2--|1 U 18|--RA1
; RA3--|2 17|--RA0
; NC--|3 CHIP 16|--OSC1
; MCLR--|4 PIC 15|--OSC2
; GND--|5 16C54 14|--VDD
; RB0--|6 13|--RB7
; RB1--|7 12|--RB6
; RB2--|8 11|--RB5
; RB3--|__________|--RB4
;
LIST P=16F54,R=DEC
include "P16F5X.INC"
__CONFIG _WDT_ON & _CP_ON & _XT_OSC
;配置位選項:看門狗開(WDT_ON)加密位開(CP_ON)外部標準晶振(XT_OSC)
INDF EQU 00H ;間接尋址寄存器
RTCC EQU 01H ;實時時鐘/計數器
PC EQU 02H ;程序計數器
STATUS EQU 03H ;狀態寄存器
FSR EQU 04H ;寄存器選擇寄存器
PORTA EQU 05H ;I/O寄存器
PORTB EQU 06H ;I/O寄存器
TEMP0 EQU 07H
ORG 00H
GOTO RESET
;=====================================;
RESET:
MOVLW B'00000111';配置位預分頻器
OPTION
;OPTION;寄存器可用于:
;1:定義預分頻器的預分頻參數
;2:分配預分頻器給RTCC用還或WDT.注意預分頻器只能
;分配給RTCC或WDT其中之一使用,不能同時分配.
;3:定義RTCC的信號源.
;4:定義RTCC的信號源的觸發沿(上升沿觸發或下降沿觸發).
;OPTION寄存器各位的意義.
;RTS RTE PSA PS2 PS1 PS0
MOVLW B'0000000';配置PORTA口方向寄存器,0為輸出
TRIS PORTA
MOVLW B'0000000';配置PORTB口方向寄存器,1為輸入
TRIS PORTB
CLRF PORTA ; 清零PA口
CLRF PORTB ; 清零PB口
;=============初始化清空所有RAM==========;
MOVLW .7
MOVWF FSR ;將要清空的RAM的第一個地址送FSR指針
CLRF_RAM:
CLRWDT
CLRF INDF ;清空指針指向的地址
INCF FSR,F ;指針加一
MOVLW B'00011111' ;FSR高3位不能用
ANDWF FSR,W
XORLW .31 ;比較是否清完所有RAM
BTFSS STATUS,2
GOTO CLRF_RAM
GOTO M_LOOP ;
;=========================================;
M_LOOP:
CLRWDT ;清看門狗
BSF PORTB,0 ;將PB,0口置高點亮LED燈
GOTO M_LOOP
END