芯海单片机是否支持c语言,芯海单片机跑灯程序

;左右移位指令应用

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

; 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 ;结束

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值