| 
;============================================================================
×
注册登录后可以在线提问,行业从业者将帮助您解答!您需要 登录 才可以下载或查看,没有账号?请用中文注册用户! 
  ;====================翼芯科技 LED红绿蓝同时亮灭,同步=========================
 ;============================================================================
 ;  此源码版权属 翼芯科技 全权享有,如欲引用,敬请署名并告知
 ;          严禁随意用于商业目的,违者必究,后果自负
 ;          公司网站 http://www.mcu-led.com
 ;          公司论坛 http://www.cpu-led.com
 ;          淘宝店:  http://cpu-led.taobao.com/  和  http://mcu-led.taobao.com/
 ;          产品咨询 QQ :1322130074  电话:13715619122
 ;程序说明:本程序用于实现LED红绿蓝1秒同时亮灭,同步实现,连续检测2次,抗干扰比较好.
 ;          IC插到U2位置.
 ;文件名称:LED.ASM
 ;日期:    2010/12/23
 ;版本:    1.0
 ;IC配置位: 内部RC   看门狗开     MCLRE为输入
 __CONFIG   _MCLRE_OFF&_CP_ON&_WDT_ON&_IntRC_OSC;
 ;=============================================================================
 ;=============================================================================
 ;=============================================================================
 #INCLUDE        <P12F509.INC>;          引导文件
 ;========================IC输出口定义=========================================
 #define  RED1          GPIO,0;      //红色输出口
 #define  GREEN1        GPIO,1;      //绿色输出口
 #define  BLUE1         GPIO,2;      //蓝色输出口
 #define  PSAA_ZERO     GPIO,4;      //过零检测口
 ;=========================变量定义============================================
 FLAG         EQU       07H;         //状态标志寄存器
 T_DELAY      EQU       08H;         //延时用
 TEMP1        EQU       09H;
 
 
 
 ORG   00H;
 GOTO    MAIN;
 
 ;==============================================================================
 ;功能描述:延时程序,检测过零,实现同步
 ;隶属模块:无
 ;参数说明:实现T_DELAY*20MS的延时
 ;返回说明:无
 ;注:.....
 ;==============================================================================
 DELAY1:
 MOVF     T_DELAY,0;
 MOVWF    TEMP1;
 D00:
 CLRWDT
 BTFSC    PSAA_ZERO;       //为1等侍
 GOTO     D00;
 CLRWDT
 BTFSC    PSAA_ZERO;       //为1等侍
 GOTO     D00;
 
 
 D05:
 CLRWDT
 BTFSS    PSAA_ZERO;     //为1等侍
 GOTO     D05;
 CLRWDT;
 BTFSS    PSAA_ZERO;     //为1等侍
 GOTO     D05;
 DECFSZ   TEMP1,1;
 GOTO     D00;
 RETURN
 ;==============================================================================
 ;功能描述:主函数,程序开始
 ;隶属模块:无
 ;参数说明:无
 ;返回说明:无
 ;注:.....
 ;==============================================================================
 MAIN:
 MOVLW   0X38;             //定义IO口,GPIO 0,1,2为输出,3,4,5为输入.
 TRIS    GPIO;
 CLRF    GPIO;             //GPIO清0
 MOVLW   0X05;                  //分给TMR0, 2~0定义分频为1:64位
 OPTION;
 MOVLW   .50;              //100*20ms=1S
 MOVWF   T_DELAY;
 LOOP:
 ;==============================================================================
 ;功能描述:实现红绿蓝同时跳变
 ;隶属模块:无
 ;参数说明  无
 ;返回说明:无
 ;注:.....
 ;==============================================================================
 FUN1:
 BSF     RED1;           红亮
 BSF     GREEN1;         绿亮
 BSF     BLUE1;          蓝亮
 CALL    DELAY1;
 
 BCF     RED1;           红灭
 BCF     GREEN1;         绿灭
 BCF     BLUE1;          蓝灭
 CALL    DELAY1;
 GOTO    LOOP;
 
 
 END
 
 
 |