📄 ledss.asm
字号:
;程序功能:通过PB0,PB1,PB2驱动三路红绿蓝,形成七彩变化
;--------------------------------------
;名称定义和变量定义
;--------------------------------------
F0 EQU 0
RTCC EQU 1
PC EQU 2
STATUS EQU 3
FSR EQU 4
RA EQU 5
RB EQU 6
PIC16C54 EQU 1FFH ;芯片复位地址
;-----------------------------------------
ORG PIC16C54
GOTO MAIN ;在复位地址处转入主程序
ORG 0 ;在0000H开始存放程序
;-----------------------------------------
;------------------------------------------
;主程序区
;------------------------------------------
MAIN
MOVLW 0 ;00000000(0H)输出
TRIS RB ;将W中的0FH写入B口控制器,;B口为输出状态。
CLRW
TRIS RA ;A口为输出口
LOOP
MOVLW 01H ; 00000001(01H) PB0=1
MOVWF RB ;
CALL DELAY ;
MOVLW 02H ; 00000010(02H) PB1=1
MOVWF RB ;
CALL DELAY ;
MOVLW 04H ; 00000100(04H) PB2=1
MOVWF RB ;
CALL DELAY ;
MOVLW 06H ; 00000110(06H) PB1,PB2=1
MOVWF RB ;
CALL DELAY ;
MOVLW 05H ; 00000101(05H)
MOVWF RB ;
CALL DELAY ;
MOVLW 03H ; 00000011(03H)
MOVWF RB ;
CALL DELAY ;
MOVLW 07H ; 00000111(07H)
MOVWF RB ;
CALL DELAY ;
GOTO LOOP ;
;-------------------------------------------
DELAY
MOVLW D'4'
MOVWF 10
L1
MOVLW D'25'
MOVWF 11
L2
MOVLW D'25'
MOVWF 12
L3
DECFSZ 12,1
GOTO L3
DECFSZ 11,1
GOTO L2
DECFSZ 10,1
GOTO L1
RETLW 0
;延时时间约为3*255*255*2=390150次,因为在30P,31K电阻的时候,频率大概是740K
;就是一个周期是1.35US,所以这时候延时约等于400000*1。35=0。54秒
;-------------------------------------------
END ;程序结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -