精品麻豆一区二区三区乱码-人妻在线免费观看一区二区-欧美日韩在线观看精品99-美女极度色诱视频国产免费
麒麟電子
標題:
(PIC-匯編)實驗6--LED紅綠藍同時亮滅,同步實現(xiàn)5
[打印本頁]
作者:
lxqlzj
時間:
2012-2-3 14:39
標題:
(PIC-匯編)實驗6--LED紅綠藍同時亮滅,同步實現(xiàn)5
;============================================================================
;====================翼芯科技 LED紅綠藍同時亮滅,同步=========================
;============================================================================
; 此源碼版權(quán)屬 翼芯科技 全權(quán)享有,如欲引用,敬請署名并告知
; 嚴禁隨意用于商業(yè)目的,違者必究,后果自負
; 公司網(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
;程序說明:本程序用于實現(xiàn)LED紅綠藍1秒同時亮滅,同步實現(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>; 引導文件
;========================IC輸出口定義=========================================
#define RED1 GPIO,0; //紅色輸出口
#define GREEN1 GPIO,1; //綠色輸出口
#define BLUE1 GPIO,2; //藍色輸出口
#define PSAA_ZERO GPIO,4; //過零檢測口
;=========================狀態(tài)標志定義========================================
#define FLAG_ACZ FLAG,0;
#define FLAG_OK FLAG,1;
#define ACZ_HL FLAG,2; //過零輸入高低電平標識
;=========================變量定義============================================
FLAG EQU 07H; //狀態(tài)標志寄存器
T_DELAY EQU 08H; //延時用
TEMP1 EQU 09H;
DLY1 EQU 0AH;
ORG 00H;
GOTO MAIN;
;==============================================================================
;功能描述:過零檢測
;隸屬模塊:無
;參數(shù)說明:檢測50/60Hz過零,檢測兩次,兩次檢測已過零才確定以過零.
;返回說明:無
;注:.....
;==============================================================================
AC_TIME:
BTFSS ACZ_HL; 為1高電平狀態(tài)
GOTO AC00;
BTFSC PSAA_ZERO; 狀態(tài)為1時判定過零腳電平
GOTO AC20; 無過零,退出
GOTO AC05; 有過零
AC00:
BTFSS PSAA_ZERO; 狀態(tài)為0時判定過零腳電平
GOTO AC20; 無過零,退出
AC05:
BTFSC FLAG_OK; 有過零,判定是否是第一次過零
GOTO AC10; 跳到第二次過零
BSF FLAG_OK; 第一次過零
GOTO AC20;
;//===========================================================================
AC10:
BSF FLAG_ACZ; 成功過零標識
BCF FLAG_OK; 清標識次數(shù)標識
BTFSS PSAA_ZERO; 重置過零狀態(tài)標識
GOTO AC15;
BSF ACZ_HL; 高電平標識
GOTO AC20;
AC15:
BCF ACZ_HL; 低電平標識
AC20:
RETURN; 中斷反回
;==============================================================================
;功能描述:延時程序
;隸屬模塊:無
;參數(shù)說明:實現(xiàn)T_DELAY*10MS的延時
;返回說明:無
;注:.....
;==============================================================================
DELAY1:
MOVF T_DELAY,0;
MOVWF TEMP1;
D00:
MOVLW .250;
MOVWF DLY1;
D10:
CLRWDT;
DECFSZ DLY1,1;
GOTO D10;
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 B'00000101'; //分給TMR0, 2~0定義分頻為1:64位
OPTION;
CLRF FLAG;
MOVLW .100; ////100*20ms=1S
MOVWF T_DELAY;
LOOP:
;==============================================================================
;功能描述:實現(xiàn)紅綠藍同時跳變
;隸屬模塊:無
;參數(shù)說明 無
;返回說明:無
;注:.....
;==============================================================================
FUN1:
BSF RED1; 紅亮
BSF GREEN1; 綠亮
BSF BLUE1; 藍亮
CALL DELAY1;
BCF RED1; 紅滅
BCF GREEN1; 綠滅
BCF BLUE1; 藍滅
CALL DELAY1;
GOTO LOOP;
END
歡迎光臨 麒麟電子 (http://www.isorzjg.com/)
Powered by Discuz! X3.5