;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