📄 myproject001.asm
字号:
;**********************************************************************
; This file is a 点亮PORTD口上所有的灯 basic code *
; *
;**************************************************************************************
; *
; Filename:myproject001.asm *
; Date:2005.11.03 *
; File Version:A *
; *
; Author:DICK KANG *
; Company:FIRE-FOX CO.LTD. *
; *
; *
;**************************************************************************************
; *
; Files required: *
; *
; *
; *
;**************************************************************************************
; *
; Notes: *
; *
; *
; *
; *
;**************************************************************************************
list p=16f877A ; list directive to define processor
#include <p16f877A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.
;***** VARIABLE DEFINITIONS
STATUS EQU 03H ;定义状态寄存器地址
PORTC EQU 07H ;定义端口C的数据寄存器地址
PORTD EQU 08H ;定义端口D的数据寄存器地址
TRISC EQU 87H ;定义端口C的方向寄存器
TRISD EQU 88H ;定义端口D的方向寄存器
RP1 EQU 06H ;定义状态寄存器中的页选位RP1
RP0 EQU 05H ;定义状态寄存器中的页选位RP0
Z EQU 02H ;定义状态寄存器中的0标志位Z
DATA1 EQU 20H ;定义外循环变量
DATA2 EQU 21H ;定义内循环变量
TEMP EQU 22H ;定义临时变量存储端口D的输入
TEST EQU 23H ;定义键盘是否有键按下标志00H为
;没有按键按下,0FFH为有键按下
VALUE EQU 24H ;定义键盘的状态变量
COUNT1 EQU 0DH ;定义存储外循环次数的变量
COUNT2 EQU 0FFH ;定义存储内循环次数的变量
;-------------------------------------------------
ORG 00H ;初始定位
GOTO MAIN ;
NOP
;-----------------主程序开始----------------------
MAIN
BSF STATUS,RP0 ; 选择BANK1
BCF STATUS,RP1 ;
MOVLW 00H ;将00H送到W
MOVWF TRISD ;设置PORTD的方向为输出
BCF STATUS ,RP0 ;
BCF STATUS ,RP1 ;转到体0
LOOP
MOVLW 00H ;将FFH送到W
MOVWF PORTD ;点亮PORTD上所有的灯
CALL DELAY
MOVLW 0FFH ;将FFH送到W
MOVWF PORTD
CALL DELAY
GOTO LOOP
;***********DELAY*******************************************
DELAY
MOVLW 22H
MOVWF COUNT1
DELAY1
MOVLW 22H
MOVWF COUNT2
DELAY2
DECFSZ COUNT2
GOTO DELAY2
DECFSZ COUNT1
GOTO DELAY1
RETURN
;-------------------主程序结束--------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -