精品麻豆一区二区三区乱码-人妻在线免费观看一区二区-欧美日韩在线观看精品99-美女极度色诱视频国产免费

麒麟電子

標(biāo)題: (LED學(xué)習(xí)板)實(shí)驗(yàn)4--LED紅綠藍(lán)同時亮滅,同步實(shí)現(xiàn)3 [打印本頁]

作者: lxqlzj    時間: 2012-2-3 14:36
標(biāo)題: (LED學(xué)習(xí)板)實(shí)驗(yàn)4--LED紅綠藍(lán)同時亮滅,同步實(shí)現(xiàn)3
;============================================================================
;====================翼芯科技 LED紅綠藍(lán)同時亮滅,同步=========================
;============================================================================   
;  此源碼版權(quán)屬 翼芯科技 全權(quán)享有,如欲引用,敬請署名并告知
;          嚴(yán)禁隨意用于商業(yè)目的,違者必究,后果自負(fù)
;          公司網(wǎng)站 http://www.mcu-led.com
;          公司論壇 http://www.cpu-led.com
;          淘寶店:  http://cpu-led.taobao.com/  和  http://mcu-led.taobao.com/
;          產(chǎn)品咨詢 QQ :1322130074 電話:13715619122
;程序說明:本程序用于實(shí)現(xiàn)LED紅綠藍(lán)1秒同時亮滅,同步實(shí)現(xiàn),延時1ms后再次檢測1次,
;          抗干擾最好.IC插到U2位置.
;文件名稱:LED.ASM  
;日期:    2010/12/23   
;版本:    1.0   
;IC配置位: 內(nèi)部RC   看門狗開     MCLRE為輸入
__CONFIG   _MCLRE_OFF&_CP_ON&_WDT_ON&_IntRC_OSC;     
;=============================================================================                          
;=============================================================================   
;=============================================================================        
#INCLUDE        <P12F509.INC>;          引導(dǎo)文件
;========================IC輸出口定義=========================================                                          
#define  RED1          GPIO,0;      //紅色輸出口
#define  GREEN1        GPIO,1;      //綠色輸出口  
#define  BLUE1         GPIO,2;      //藍(lán)色輸出口   
#define  PSAA_ZERO     GPIO,4;      //過零檢測口      
;=========================狀態(tài)標(biāo)志定義========================================                                      
#define  FLAG_ACZ      FLAG,0;                 
#define  FLAG_OK       FLAG,1;
#define  ACZ_HL        FLAG,2;      //過零輸入高低電平標(biāo)識
  
;=========================變量定義============================================
FLAG         EQU       07H;         //狀態(tài)標(biāo)志寄存器
T_DELAY      EQU       08H;         //延時用            
TEMP1        EQU       09H;
DLY1         EQU       0AH;
ACZ_REG      EQU       0BH



ORG   00H;
        GOTO    MAIN;  
;==============================================================================
;功能描述:過零檢測
;隸屬模塊:無
;參數(shù)說明:檢測50/60Hz過零,檢測兩次,兩次檢測已過零才確定以過零.         
;返回說明:無
;注:.....                                                  
;==============================================================================
;=======================過零檢測===============================================
;==============================================================================
AC_TIME:  
        BCF    STATUS,Z;
        MOVFW  ACZ_REG;
        BTFSC  STATUS,Z;
        GOTO   AC010;
        DECFSZ ACZ_REG,1;
        GOTO   AC050;              
        GOTO   AC035;
AC010:                                   
        BTFSS  ACZ_HL;           //為1高電平狀態(tài)  
        GOTO   AC020;            
        BTFSC  PSAA_ZERO;                    
        GOTO   AC050;               
        GOTO   AC030;
AC020:
        BTFSS  PSAA_ZERO;            
        GOTO   AC050;               
AC030:
        MOVLW   .50;               
        MOVWF   ACZ_REG;
        GOTO    AC050;
;======================延時后再次檢測=================================================
AC035:                              
        BTFSS  ACZ_HL;          //為1高電平狀態(tài)
        GOTO   AC040;            
        BTFSC  PSAA_ZERO;                    
        GOTO   AC050;              
        BCF    ACZ_HL;        
        GOTO   AC045;
AC040:
        BTFSS  PSAA_ZERO;            
        GOTO   AC050;
        BSF    ACZ_HL;
AC045:                                 
        BSF    FLAG_ACZ;              
AC050:
        CLRWDT;

        RETLW 0;;                 反回
                                                  
;==============================================================================
;功能描述:延時程序
;隸屬模塊:無
;參數(shù)說明:實(shí)現(xiàn)T_DELAY*10MS的延時        
;返回說明:無
;注:.....                                                
;==============================================================================
DELAY1:
        MOVF     T_DELAY,0;
        MOVWF    TEMP1;
D00:      
        CALL     AC_TIME;
        BTFSS    FLAG_ACZ;            //為1,已啟動定時器   
        GOTO     D00;                 //檢測過零
        BCF      FLAG_ACZ;
        DECFSZ   TEMP1,1;
        GOTO     D00;
        RETURN
;==============================================================================
;功能描述:主函數(shù),程序開始
;隸屬模塊:無
;參數(shù)說明:無     
;返回說明:無
;注:.....                                                
;==============================================================================
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;
        CLRF    FLAG;                  
        MOVLW   .100;             //100*20ms=1S
        MOVWF   T_DELAY;   
LOOP:      
;==============================================================================
;功能描述:實(shí)現(xiàn)紅綠藍(lán)同時跳變
;隸屬模塊:無
;參數(shù)說明  無      
;返回說明:無
;注:.....                                                
;==============================================================================      
FUN1:
        BSF     RED1;           紅亮
        BSF     GREEN1;         綠亮
        BSF     BLUE1;          藍(lán)亮
        CALL    DELAY1;

        BCF     RED1;           紅滅
        BCF     GREEN1;         綠滅
        BCF     BLUE1;          藍(lán)滅   
        CALL    DELAY1;
        GOTO    LOOP;

        END


作者: netic    時間: 2012-5-15 21:36
絕對出錯啦 哈哈{:soso_e113:}




歡迎光臨 麒麟電子 (http://www.isorzjg.com/) Powered by Discuz! X3.5