Keel的单片机开发BLOG 订阅
相关博文
内容读取中…
推荐博文
内容读取中…
谁看过这篇博文
内容读取中…
字体大小: 正文
埋地灯三色跳变源程序 (2007-10-01 11:30:22)
;PIC单片机
;龙图开发网
;http://www.longtoo.com
;原创:转载请注明出处
;========================================== 

;variable  DECLARE
;可以用片内晶振,三条I/O线低电平选择条变速度。
;------------------
;INDF EQU  0
;TMR0 EQU  1
;PCL EQU 2
;STATUS EQU 3
;FSR EQU 4
;GPIO EQU 6
COUNT EQU 8
COUNT1 EQU 9
count2 equ  0ah
count3 equ  0bh
count4 equ  0ch
count5 equ  0dh
count6 equ  0eh
count7 equ  0fh
;------------------
    ORG 00H
    MOVWF OSCCAL
    GOTO MAIN
;-------------------
;子程序

loop:
    movfw count2
    movwf count1
loop1:
    CLRF TMR0
loop2:
    MOVLW 08h
    SUBWF TMR0,0          ;TMRO-W=?,if zero back to main program
    SKPZ
    goto loop2
DEC:
    decfsz  count1
    goto loop1
    retlw  0
;----------------------------
ONE:
    BTFSC  GPIO,2
    GOTO   NEXT
    RETLW  00H
NEXT:
    BTFSC  GPIO,1
    GOTO   NEXT1
    RETLW  01H
NEXT1:
    BTFSC  GPIO,0
    GOTO   ONE
    RETLW  02H
;---------------------------
TABLE:
      ADDWF   2,1           ; plc 内容加 w 的值,w 的值由call one 返回。
      RETLW   02H
      RETLW   05H
      RETLW   0AH
;-----------------
MAIN:
    MOVLW 111111B
    TRIS GPIO
    MOVLW  07H
    OPTION
  CALL  ONE
  CALL  TABLE
    movlw  2Fh
    MOVWF  COUNT2
    movlw  014h
    movwf  count3
    movwf  count4
    movlw  02h
    movwf  count5
;//////////////////////////////////
    MOVLW 38H              ;setting the I/o port         111000
    TRIS GPIO
;/////////////////////////////////
    MOVLW 07H              ;turn off all the lamp
    IORWF GPIO
  ---------------
forward:
    clrwdt
    MOVLW 07H             ;setting the frequency 1:256 to timer
    OPTION                       ;clear the watch door dog
    CLRWDT
R:
    MOVLW 111100b
    MOVWF GPIO
G:
    call loop
    MOVLW 111010b
    MOVWF GPIO
B:
    call loop
    MOVLW 111001b
    MOVWF GPIO
    call  loop
    decfsz  count3
    GOTO forward
backward:
    clrwdt
    MOVLW 07H             ;setting the frequency 1:256 to timer
    OPTION                       ;clear the watch door dog
    CLRWDT
Rr:
    MOVLW 111001b
    MOVWF GPIO
Gg:
    call loop
    MOVLW 111010b
    MOVWF GPIO
Bb:
    call loop
    MOVLW 111100b
    MOVWF GPIO
    call  loop
    decfsz  count4
    GOTO backward
;////////////////////////////////
GLITTER_R:
    MOVLW 111100b
    MOVWF GPIO
    MOVLW  018H
    MOVWF  COUNT6
R_R:
    CALL  LOOP
    DECFSZ  COUNT6     ;ZERO  JUMP
    GOTO   R_R
GLITTER_G:
    MOVLW 111010b
    MOVWF GPIO
    MOVLW  018H
    MOVWF  COUNT6
G_G:
    CALL  LOOP
    DECFSZ  COUNT6     ;ZERO  JUMP
    GOTO   G_G
GLITTER_B:
    MOVLW 111001b
    MOVWF GPIO
    MOVLW  018H
    MOVWF  COUNT6
B_B:
    CALL  LOOP
    DECFSZ  COUNT6     ;ZERO  JUMP
    GOTO   B_B
    DECFSZ  COUNT5
    GOTO   GLITTER_R
    goto   main
    END

评论(0)| 阅读 (0) | 收藏 (0) | 分享 | 打印 | 举报
评论 发表评论
发表评论
匿名评论(无需注册)
验证码:看不清楚数字吗?点击这里再试试。
新浪BLOG意见反馈留言板 不良信息反馈 电话:95105670 提示音后按2键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有