电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

用12C508实现LED三路七彩调光

来源:-- 作者:-- 浏览:288

标签:

摘要: ;**********************************************************************;; Filename: HW-3S.asm; Date:2006/05/17; File Versi

;**********************************************************************
;
;    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     ;否
        decf  ch_b,f   ;是则绿色重置0xff
        movlw rep_5    ;保持静止色子程序地址送转移指针
        movwf rep_d
        retlw 0x00
rep_5:                 ;绿色蓝色静止色保持节拍
        decfsz rep_c,f
        retlw 0x00
        movlw rep_b
        movwf rep_c
        movlw rep_6
        movwf rep_d
        retlw 0x00
       
rep_6:                 ;蓝色常亮,绿色渐渐灭
        decfsz ch_g,f  ;判断绿色是否最暗
        retlw 0x00     ;否
        movlw rep_7    ;保持静止色子程序地址送转移指针
        movwf rep_d
        retlw 0x00
rep_7:                 ;绿色静止色保持节拍
        decfsz rep_c,f
        retlw 0x00
        movlw rep_b
        movwf rep_c
        movlw rep_8
        movwf rep_d
        retlw 0x00
       
rep_8:                 ;蓝色常亮,红色渐亮
        incfsz ch_r,f  ;判断红色是否最亮
        retlw 0x00     ;否
        decf  ch_r,f   ;是则绿色重置0xff
        movlw rep_9    ;保持静止色子程序地址送转移指针
        movwf rep_d
        retlw 0x00
rep_9:                 ;红色蓝色静止色保持节拍
        decfsz rep_c,f
        retlw 0x00
        movlw rep_b
        movwf rep_c
        movlw rep_10
        movwf rep_d
        retlw 0x00
       
rep_10:                 ;红色蓝色常亮,绿色渐亮
        incfsz ch_g,f  ;判断绿色是否最暗
        retlw 0x00     ;否
        decf ch_g,f
        movlw rep_11    ;保持静止色子程序地址送转移指针
        movwf rep_d
        retlw 0x00
rep_11:                 ;红色,绿色,蓝色静止色保持节拍
        decfsz rep_c,f
        retlw 0x00
        movlw rep_b
        movwf rep_c
        movlw rep_12
        movwf rep_d
        retlw 0x00
       
rep_12:                ;红色常亮,绿色蓝色渐渐灭
        decf   ch_g,f  ;判断绿色是否最暗
        decfsz ch_b,f
        retlw 0x00     ;否
        movlw rep_13   ;保持静止色子程序地址送转移指针
        movwf rep_d
        retlw 0x00
rep_13:                 ;红色静止色保持节拍
        decfsz rep_c,f
        retlw 0x00
        movlw rep_b
        movwf rep_c
        movlw rep_0
        movwf rep_d
        retlw 0x00


;***********************************
        end

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67