;**********************************************************************
;
; Filename: HW-3S.asm
; Date:2006/05/17
; File Version:
; 主控芯片用12c508,直接输出3路低电平有效的可调矩形脉冲,用于LED的调光 *
; *
;**********************************************************************
list p="12c508"
#include <p12c508.inc>
__CONFIG _MCLRE_OFF&_CP_ON&_WDT_OFF&_IntRC_OSC
errorlevel 0,-207
;**********************************************************************
;变量和名称定义
#define led_r GPIO,0
#define led_g GPIO,1
#define led_b GPIO,2
#define gl GPIO,3
#define sd_1 GPIO,4
#define sd_2 GPIO,5
#define rep_b d'50'
cotc equ 07h
cotc_c equ 08h
cots equ 09h
ch_r equ 0ah
ch_g equ 0bh
ch_b equ 0ch
glcs equ 0dh
rep_d equ 0eh
rep_c equ 0fh
;**********************************************************************
;
org 0x00
movwf OSCCAL ;片内震荡校正系数送OSCCAL
;---------------------------
;RAM清0子程序
movlw 0x08
movwf FSR
movlw d'24'
movwf cotc
movlw 0x00
movwf INDF
incf FSR,f
decfsz cotc,f
goto $-3
;-----------------------------
;
main:
movlw b'00111000' ;
TRIS GPIO
movlw b'11111111' ;
movwf GPIO
bcf STATUS,PA0 ;
movlw 0x00 ;起始输出最暗
movwf ch_r
movwf ch_g
movwf ch_b
movlw rep_b
movwf rep_c
movlw rep_0 ;调用红色常亮,绿色渐亮子程序
movwf rep_d
call reprom
goto $-1
;
reprom:
movf rep_d,w
movwf PCL
rep_0:
movlw 0xff ;红色常亮,绿色渐亮
movwf ch_r ;
incfsz ch_g,f ;判断绿色是否最亮
retlw 0x00 ;否
decf ch_g,f ;是则绿色重置0xff
movlw rep_1 ;保持静止色子程序地址送转移指针
movwf rep_d
retlw 0x00
rep_1: ;红色绿色静止色保持节拍
decfsz rep_c,f
retlw 0x00
movlw rep_b
movwf rep_c
movlw rep_2
movwf rep_d
retlw 0x00
rep_2: ;绿色常亮,红色渐渐灭
decfsz ch_r,f ;判断绿色是否最暗
retlw 0x00 ;否
movlw rep_3 ;保持静止色子程序地址送转移指针
movwf rep_d
retlw 0x00
rep_3: ;绿色静止色保持节拍
decfsz rep_c,f
retlw 0x00
movlw rep_b
movwf rep_c
movlw rep_4
movwf rep_d
retlw 0x00
rep_4: ;绿色常亮,蓝色渐亮
incfsz ch_b,f ;判断绿色是否最亮
retlw 0x00 ;否
本文关键字:暂无联系方式PIC单片机,单片机-工控设备 - PIC单片机