您的位置 首页 软件

芯海单片机跑灯程序

;左右移位指令应用;============================================;filename:跑灯asm;chip:csu1181b;author:;date:20

;左右移位指令使用

;============================================
; filename: 跑灯.asm
; chip : csu1181b
; author :
; date : 2012-07-27
;完好下载地址:http://www.51hei.com/f/xhpmd.rar
include csu1181b.inc
;============================================
; program start
;============================================
org 000h
goto A1
ORG 005H
;******************************************
; 右移模块
;******************************************
A1: MOVLW 6 ;循环次数
MOVWF 90H ;次数寄存器
MOVLW 01111111B ;驱动初始数
MOVWF 91H ;驱动数寄存器
A2: MOVLW 0FFH ;设置为输出数
MOVWF PT3EN ;设置为输出形式
MOVLW 0 ;制止上拉
MOVWF PT3PU ;
MOVFW 91H ;制止上拉
MOVWF PT3 ;
RRF 91H,0 ;循环右移C处理成果存在作业寄存器W中
RRF 91H,1 ;循环右移成果存在通用寄存器91H中
CALL M001 ;延时
DECFSZ 90H,1 ; 减一为0越过下一条指令
GOTO A2 ;搬运
;********************************************************
; 左移模块
;********************************************************
MOVLW 4 ;循环次数
MOVWF 90H ; 次数寄存器
MOVLW 11110111B ;驱动初始数
MOVWF 91H ;驱动数寄存器

A3:
MOVLW 0FFH ;设置为输出数
MOVWF PT3EN ;设置为输出形式
MOVLW 0 ;制止上拉
MOVWF PT3PU ;
MOVFW 91H ;制止上拉
MOVWF PT3 ;
RLF 91H,0 ;循环左移C处理成果存在作业寄存器W中
RLF 91H,1 ;循环左移成果存在通用寄存器91H中
CALL M001 ;延时
DECFSZ 90H,1 ;减一为0越过下一条指令
GOTO A3 ;

GOTO A1 ;
;*****************************************************
; 延时子程序
;*****************************************************

M001: MOVLW 1 ;
MOVWF 80H ;
M002: MOVLW 150 ;
MOVWF 81H ;
M003: MOVLW 250 ;
MOVWF 82H ;
M004: DECFSZ 82H,1 ; (减一后成果存在82h中)减一为0越过下一指令
; DECFSZ 82H,0 ;(减一后成果存在作业寄存器中)减一为0越过下一指令
GOTO M004 ;
DECFSZ 81H,1 ;
GOTO M003 ;
DECFSZ 80H,1 ;
GOTO M002 ;
RETURN ;子程序回来
end ;完毕

;============================================

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/317928.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部