描述
适合3ePIC试验板,爱晶产品销售服务做的不好,好多C程序都是自己写的,不过汇编程序参考一下不错。
;------------------------------------------------------------------------------------------
;单双位变换显示实验参考程序注意:此程序请用单步执行(实验1-1.asm)
;------------------------------------------------------------------------------------------
STATUS EQU03H;特殊功能寄存器定义
TRISD EQU88H;特殊功能寄存器定义
PORTD EQU08H;特殊功能寄存器定义
TRISE EQU89H;特殊功能寄存器定义
PORTE EQU09H;特殊功能寄存器定义
ORG0000H;复位地址
NOP;MPLAB专用语句
STBSFSTATUS,5;选择体1
CLRFTRISD;PORTD设置为输出
CLRFTRISE;PORTE设置为输出
BCFSTATUS,5;选择体0
BCF PORTE,0;RE0清零,选通LED
LOOPMOVLWB‘10101010’
MOVWFPORTD;设置PORTD的值
MOVLWB‘01010101’
MOVWFPORTD;再次设置PORTD的值
GOTOLOOP;循环操作
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------
本文引用地址: http://www.21ic.com/app/mcu/201810/786583.htm
;------------------------------------------------------------------------------------------
;软件延时自动计数实验参考程序(实验1-2.asm)
;------------------------------------------------------------------------------------------
STATUS EQU03H ;特殊功能寄存器定义
TRISD EQU88H;特殊功能寄存器定义
PORTDEQU08H;特殊功能寄存器定义
TRISE EQU89H;特殊功能寄存器定义
PORTEEQU09H;特殊功能寄存器定义
ORG0000H;复位地址
NOP;MPLAB专用语句
STBSFSTATUS,5;选择体1
CLRF TRISD;PORTD设置为输出
CLRF TRISE;PORTE设置为输出
BCFSTATUS,5;选择体0
CLRF PORTD;PORTD清零
BCF PORTE,0;RE0清零,选通LED
LOOPCALL DELAY1S;调用1S延迟程序
INCF PORTD;PORTD+1
GOTO LOOP;循环操作
;------------------------------------------------------------------------------------------
;1秒延时子程序参考程序
;------------------------------------------------------------------------------------------
DELAY1S MOVLW 06H;外循环常数
MOVWF 20H;外循环寄存器
LOP0MOVLW 0EBH;中循环常数
MOVWF 21H;中循环寄存器
LOP1MOVLW 0ECH;内循环常数
MOVWF 22H;内循环寄存器
LOP2DECFSZ 22H;内循环寄存器递减
GOTO LOP2;继续内循环
DECFSZ 21H;中循环寄存器递减
GOTO LOP1;继续中循环
DECFSZ 20H;外循环寄存器递减
GOTO LOP0;继续外循环
RETURN;返回
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
;霓虹灯显示实验参考程序(实验1-3.ASM)
;------------------------------------------------------------------------------------------
STATUS EQU03H;特殊功能寄存器定义
TRISD EQU88H;特殊功能寄存器定义
PORTDEQU08H;特殊功能寄存器定义
TRISE EQU89H;特殊功能寄存器定义
PORTEEQU09H;特殊功能寄存器定义
PCLEQU02H;特殊功能寄存器定义
COUNTEREQU30H;自定义变量
ORG0000H;复位地址
NOP;MPLAB专用语句
STBSFSTATUS,5;选择数据存储器体1
CLRF TRISD;定义RD口为输出
CLRF TRISE;PORTE设置为输出
BCFSTATUS,5;选择数据存储器体0
CLRF PORTD;PORTD清零
BCF PORTE,0;RE0清零,选通LED
POPCLRF COUNTER;自定义变量COUNTER清0
LOOPMOVF COUNTER,0;取出变量COUNTER值
CALL TABLE;查表对应数据
MOVWF PORTD;从PORTD输出
CALL DELAY50MS;调用50MS延时
INCF COUNTER,1;循环变量递增
MOVF COUNTER,0;取出当前COUNTER变量值
SUBLW .20;是否已取出20个数据
BTFSC STATUS,2;查验Z标志位
GOTO POP;Z=1,表示一次循环结束,COUNTER重新复位<