日产精品视频无码免费_亚洲蜜臀AV日韩熟妇在线_国产亚洲精品女人久久久久久 _妞中文字幕在线视频导航

電子開發(fā)網

電子開發(fā)網電子設計 | 電子開發(fā)網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發(fā)網 >> 電子開發(fā) >> 單片機 >> 正文

單片機遙控電子鐘程序

作者:佚名    文章來源:本站原創(chuàng)    點擊數:    更新時間:2011-3-31

;******************************************************
;*標題:      單片機遙控電子鐘程序
;*文件:                           
;*版本:    1.0
;*作者:     東哥   
;*郵箱:    picavr@163.com     QQ: 279068079

;******************************************************* 
                K1   BIT  P3.2          ;切換當前時間,開機時間,關機時間(P3.2口定義為K1)
                K2   BIT  P3.4          ;調時鍵K2(P3.4 口定義為K2)
                K3   BIT  P3.5          ;調分鍵K3(P3.5 口定義為K3)
                K4   BIT  P3.6          ;啟動鍵K4(P3.6 口定義為K4)
                SI   BIT  P3.3          ;遙控輸入口定義為SI
                C_HOUR     EQU  24H     ;當前時的地址定義
                C_MINUTE   EQU  25H     ;當前分的地址定義
                C_SECOND   EQU  26H     ;當前秒的地址定義
                ON_HOUR    EQU  27H     ;開機時的地址定義
                ON_MINUTE  EQU  28H     ;開機分的地址定義
                OFF_HOUR   EQU  29H     ;關機時的地址定義
                OFF_MINUTE EQU  30H     ;關機分的地址定義
                WORK_MODE  EQU  34H     ;當前時間,開機時間,關機時間選擇
                USE_CODE   EQU  35H     ;用戶數據代碼地址定義
                DATA_CODE  EQU  36H     ;數據代碼地址定義
                COUNT      EQU  50H     ;計數地址定義
;******************************************************************************
                ORG     0000H           ;主程序入口地址
                AJMP    MAIN            ;轉主程序
                ORG     0003H           ;外中斷0中斷入口
                AJMP    INTEX0          ;跳至INTEX0執(zhí)行中斷服務程序
                ORG     000BH           ;定時器T0中斷入口地址
                AJMP    WTO             ;跳至定時器T0執(zhí)行中斷服務程序
                ORG     0013H           ;外中斷1中斷入口
                LJMP    INTEX1          ;跳至INTEX1執(zhí)行中斷服務程序
                ORG     001BH           ;定時器T1中斷入口地址
                RETI                    ;中斷返回(不開中斷)
                ORG     0023H           ;串行口中斷入口地址
                RETI                    ;中斷返回(不開中斷)
                ORG     002BH           ;定時器T2中斷入口地址
                RETI                    ;中斷返回(不開中斷)
;******************************************************************************
;*                                主程序                                   *
;******************************************************************************
                ORG    0030H
MAIN:           MOV    SP,#50H          ;堆棧指針入口地址
                CLR    00H              ;清開始調整標志
                CLR    01H              ;清當前時間標志
                CLR    02H              ;清開機時間標志
                CLR    03H              ;清關機時間標志
                CLR    04H              ;遙控用戶識別標志
                MOV    21H,#0           ;10MS定時中斷計數器初值
                MOV    22H,#0           ;500MS定時中斷計數器初值
                MOV    C_HOUR,#0
                MOV    C_MINUTE,#0
                MOV    C_SECOND,#0      ;置當前時間為00:00:00
                MOV    ON_HOUR,#06H
                MOV    ON_MINUTE,#00H   ;置開機時間為06:00
                MOV    OFF_HOUR,#12H
                MOV    OFF_MINUTE,#00H  ;置關機時間為12:00
                MOV    WORK_MODE,#0     ;
                MOV    USE_CODE,#00H    ;用戶數據代碼為00
                MOV    DATA_CODE,#00H   ;數據代碼為00
                MOV    R6,#8            ;數據為8位
                MOV    TH0,#0D8H        ;T0 10ms定時初值
                MOV    TL0,#0F0H        ;T0 10ms定時初值
                MOV    TH1,#00H         ;T1 定時初值為00
                MOV    TL1,#00H         ;T1 定時初值為00
                MOV    TMOD,#11H        ;T0 方式1設定
                MOV    IE,#00H          ;關所有中斷
                CLR    A                ;
                DEC    A                ;A為#0FFH
                MOV    P0,A             ;P1-P3口置1
                MOV    P1,A             ;
                MOV    P2,A             ;
                MOV    P3,A             ;
                SETB   EA               ;開CPU中斷
                SETB   EX1              ;開外中斷
                SETB   EX0              ;開INT0中斷請求
                CLR    ET0              ;禁止T0中斷   
                CLR    TR0              ;禁止T0計數
                CLR    IT0              ;置INT0為電平觸發(fā)
                SETB   IT1              ;置INT1為邊沿觸發(fā)
                SETB   PX1              ;置INT1為最高級中斷
                SETB   P3.7             ;置開關輸出控制端口P3.7為"1"
M:              MOV    A,C_HOUR
                CJNE   A,ON_HOUR,OFF_TIME
                MOV    A,C_MINUTE       ;判斷當前時間是否等於開機時間
                CJNE   A,ON_MINUTE,OFF_TIME
                CLR    P3.7             ;置開關輸出控制端口P3.7為"0"
                AJMP   NEXT                  
OFF_TIME:       MOV    A,C_HOUR
                CJNE   A,OFF_HOUR,NEXT
                MOV    A,C_MINUTE
                CJNE   A,OFF_MINUTE,NEXT;判斷當前時間是否等於關機時間
                SETB   P3.7             ;置開關輸出控制端口P3.7為"1"  
NEXT:           JNB    01H,ONDISP
                ACALL  DISP1            ;調當前時間顯示子程序 
ONDISP:         JNB    02H,OFFDISP
                ACALL  DISP2            ;調開機時間顯示子程序
OFFDISP:        JNB    03H,M
                ACALL  DISP3            ;調關機時間顯示子程序
                AJMP   M                ;轉 M 循環(huán)
                NOP                     ;PC值出錯處理
                NOP
                NOP
                AJMP   MAIN             ;重新初始化
                                                           
TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H ;顯示代碼數據
                DB 92H,82H,0F8H,80H,90H
;*******************************************************************************************************
;*                                            當前時間顯示子程序                                        *
;*******************************************************************************************************
DISP1:          MOV R0,C_HOUR
                MOV DPTR,#TAB           ;筆劃段碼表指針
                MOV A,R0
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.0
                ACALL DL                ;送顯時高位
                SETB P2.0
                MOV A,R0
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.1
                ACALL DL
                SETB P2.1               ;送顯時低位
                MOV R1,C_MINUTE
                MOV A,R1
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.2
                ACALL DL
                SETB P2.2               ;送顯分高位
                MOV A,R1
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.3
                ACALL DL
                SETB P2.3               ;送顯分低位
                MOV R2,C_SECOND        
                MOV A,R2
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.4
                ACALL DL
                SETB P2.4               ;送顯秒高位
                MOV A,R2
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.5
                ACALL DL
                SETB P2.5               ;送顯秒低位
                RET
;*************************************************************************************************************
;*                                         定時器T0中斷服務子程序                                           *               
;*************************************************************************************************************
WTO:            PUSH   ACC              ;保護現場   
                PUSH   PSW
                MOV    A,#0B7H          ;中斷響應時間同步修正
                ADD    A,TL0            ;低8位初值修正
                MOV    TL0,A            ;重裝初值(低8位修正值)
                MOV    A,#0F0H          ;高8位初值修正
                ADDC   A,TH0            ;
                MOV    TH0,A            ;重裝初值(高8位修正值)
                INC    21H
                MOV    A,21H
                CJNE   A,#50,TORETI     ;10mS * 50mS=0.5S
                MOV    21H,#0
                INC    22H
                MOV    A,22H
                CJNE   A,#2,TORETI      ;0.5S * 2 =1S
                MOV    22H,#0
                CPL    P0.0             ;秒指示
                CPL    P0.1
                MOV    A,#01H
                ADD    A,C_SECOND
                DA     A
                MOV    C_SECOND,A       ;當前秒加1
                CJNE   A,#60H,TORETI    ;為60嗎(是秒清0,否返回)
                MOV    C_SECOND,#0
                MOV    A,#01H
                ADD    A,C_MINUTE
                DA     A
                MOV    C_MINUTE,A       ;當前分加1
                CJNE   A,#60H,TORETI    ;為60嗎(是分清0,否返回)
                MOV    C_MINUTE,#0
                MOV    A,#01H
                ADD    A,C_HOUR
                DA     A
                MOV    C_HOUR,A         ;當前時加1
                CJNE   A,#24H,TORETI    ;為24嗎(是時清0,否返回)
                MOV    C_HOUR,#0
TORETI:         POP    PSW              ;恢復現場
                POP    ACC
                RETI
;**************************************************************************************************
;                                 開機時間顯示子程序                                              *
;**************************************************************************************************
DISP2:          MOV R0,ON_HOUR
                MOV DPTR,#TAB           ;筆劃段碼表指針
                MOV A,R0
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.0
                ACALL DL                ;送顯時高位
                SETB P2.0
                MOV A,R0
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.1
                ACALL DL                ;送顯時低位
                SETB P2.1
                MOV R1,ON_MINUTE
                MOV A,R1
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.2
                ACALL DL                ;送顯分高位      
                SETB P2.2
                MOV A,R1
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.3
                ACALL DL                ;送顯分低位
                SETB P2.3
                RET
;*************************************************************************************************
;                                      關機時間顯示子程序                                        *
;*************************************************************************************************
DISP3:          MOV R0,OFF_HOUR
                MOV DPTR,#TAB           ;筆劃段碼表指針   
                MOV A,R0
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.0
                ACALL DL                ;送顯時高位
                SETB P2.0
                MOV A,R0
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.1
                ACALL DL                ;送顯時低位  
                SETB P2.1
                MOV R1,OFF_MINUTE
                MOV A,R1
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.2
                ACALL DL                ;送顯分高位
                SETB P2.2
                MOV A,R1
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.3
                ACALL DL                ;送顯分低位
                SETB P2.3
                RET
;************************************************************************************************************
;                                   延時0.16ms子程序                                                        *
;************************************************************************************************************ 
DL:             MOV  31H,#80
DL2:            DJNZ 31H,DL2
                RET
;****************************************************************************************************
;                                     延時10MS子程序,用於消除按鍵抖動而產生誤動作                   *
;****************************************************************************************************
DEL:            MOV  32H,#200
DEL1:           MOV  33H,#250
DEL2:           DJNZ 33H,DEL2
                DJNZ 32H,DEL1
                RET
;*************************************************************************************************************
;                                   按鍵中斷處理子程序                                                        *
;*************************************************************************************************************
INTEX0:         PUSH  ACC                 ;保護現場
                PUSH  PSW
                CLR   EX0                 ;關外部中斷INT0
                JB    K1,$                ;判斷K1按下否,未按則等待,K1按下
                                          ;LED1亮, LED2熄滅
DISP1_0:        ACALL DISP1               ;
                JNB   K1,DISP1_0          ;等待K1釋放
                ACALL DEL                 ;K1按下開機指示LED1亮,LED2熄滅  
PH4:            CLR   P3.1                ;LED1亮
                SETB  P3.0                ;LED2熄滅  
PH0:            ACALL DISP1               ;調當前時間顯示子程
                JB    K2,PH01             ;判K2按下否,未按則轉到判K3
DISP1_1:        ACALL DISP1               ; 
                JNB   K2,DISP1_1          ;等待K2釋放
                ACALL DEL
                MOV   R0,C_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   C_HOUR,A            ;當前時間時加1
                CJNE  A,#24H,PH0          ;超過24嗎(超過清0)
                MOV   C_HOUR,#0
PH01:           JB    K3,PH1              ;判K3按下否,未按則轉判K4
DISP1_2:        ACALL DISP1               ;
                JNB   K3,DISP1_2          ;等待K3釋放          
                ACALL DEL
                MOV   R0,C_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   C_MINUTE,A          ;當前時間分加1
                CJNE  A,#60H,PH0          ;超過60嗎(超過清0)
                MOV   C_MINUTE,#0
PH1:            JB    K4,PH10             ;判K4按下否,未按則轉到判K1   
DISP1_3:        ACALL DISP1               ;
                JNB   K4,$                ;等待K4釋放
                ACALL DEL
                AJMP  TEND                ;K4按下,轉啟動
PH10:           JB    K1,PH0              ;判K1按下否,未按則再
DISP1_4:        ACALL DISP1               ;
                JNB   K1,DISP1_4          ;等待K1釋放
                ACALL DEL                 ;K1按下開機指示LED1熄滅,LED2亮
                SETB  P3.1                ;LED1熄滅
                CLR   P3.0                ;LED2亮

PH2:            ACALL DISP2               ;調開機時間顯示子程序
                JB    K2,PH201            ;判K2按下否,未按則轉到判K3
DISP2_1:        ACALL DISP2               ;
                JNB   K2,DISP2_1          ;等待K2釋放
                MOV   R0,ON_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   ON_HOUR,A           ;開機時間時加1
                CJNE  A,#24H,PH2          ;超過24嗎(超過清0)
                MOV   ON_HOUR,#0
PH201:          JB    K3,PH210            ;判K3按下否,未按則轉判K4
DISP2_2:        ACALL DISP2               ;
                JNB   K3,DISP2_2          ;等待K3釋放             
                ACALL DEL
                MOV   R0,ON_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   ON_MINUTE,A         ;開機時間分加1
                CJNE  A,#60H,PH2          ;超過60嗎(超過清0)
                MOV   ON_MINUTE,#0
PH210:          JB    K1,PH2              ;判K1按下否,未按則再
DISP2_3:        ACALL DISP2               ;
                JNB   K1,DISP2_3          ;等待K1釋放
                ACALL DEL                 ;K1按下關機指示LED1. LED2亮
                CLR   P3.0                ;LED1亮    
                CLR   P3.1                ;LED2亮

PH3:            ACALL DISP3               ;調關機時間顯示子程序
                JB    K2,PH301            ;判K2按下否,未按則轉到判K3
DISP3_1:        ACALL DISP3               ;
                JNB   K2,DISP3_1          ;等待K2釋放
                ACALL DEL
                MOV   R0,OFF_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   OFF_HOUR,A          ;關機時間時加1
                CJNE  A,#24H,PH3          ;超過24嗎(超過清0) 
                MOV   OFF_HOUR,#0
PH301:          JB    K3,PH310            ;判K3按下否,未按則轉判K4
DISP3_2:        ACALL DISP3               ;
                JNB   K3,DISP3_2          ;等待K3釋放
                ACALL DEL
                MOV   R0,OFF_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   OFF_MINUTE,A        ;關機時間分加1
                CJNE  A,#60H,PH3          ;超過60嗎(超過清0)
                MOV   OFF_MINUTE,#0
PH310:          JB    K1,PH3              ;判K1按下否,未按則再
DISP3_3:        ACALL DISP3               ;
                JNB   K1,DISP3_3          ;等待K1釋放
                ACALL DEL
                AJMP  PH4                 ;轉當前時間調整

TEND:           SETB  EX0                 ;開INT0中斷
                SETB  TR0                 ;允許T0計數 
                SETB  01H                 ;置00H為1,啟動計數 
                SETB  ET0                 ;允許T0中斷
                SETB  P3.7                ;置P3.7口為1
                POP   PSW                 ;恢復現場
                POP   ACC
                RETI                      ;中斷返回
;**********************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;     遙控接收程序      ;;;;;;;;;;;;;;;;;;;;;;;
;**********************************************************************
;采用中斷接收
INTEX1:        
                CLR      EA             ;
                CLR      TR1            ;
                JNB      SI,$           ;
                NOP
                NOP
                JNB      SI,$
                SETB     TR1            ;
                MOV      R2,TH1         ;取T0計數次數
                MOV      R3,TL1
                MOV      R4,#00H        ;0096H~03B6H為數據窗口0
                MOV      R5,#96H        ;窗口0的下限
                LCALL    SUB0           ;計數值小于00FAH嗎?
                JC       ERROUT         ;<0096H,作廢
                MOV      R4,#03H        ;窗口0的上限
                MOV      R5,#0B6H
                MOV      R2,TH1         ;取T0計數次數
                MOV      R3,TL1
                LCALL    SUB0           ;計數值大于03B6H嗎?
                JNC      X1_01          ;>03B6,去看是否在1的窗口
                CLR      C              ;在窗口0中,清C,移位時移入0
                LJMP     SET_CODE_0     ;去移位處理
X1_01:          MOV      R4,#04H        ;窗口1的下限
                MOV      R5,#4CH        ;044CH~073AH為窗口1
                MOV      R2,TH1         ;取T0計數次數
                MOV      R3,TL1
                LCALL    SUB0           ;計數值小于044CH嗎?
                JC       ERROUT          ;<044CH,作廢
                MOV      R4,#07H        ;窗口1的上限
                MOV      R5,#3AH        ;#073A
                MOV      R2,TH1         ;取T1計數次數
                MOV      R3,TL1
                LCALL    SUB0           ;計數值大于#073AH嗎?
                JNC      ERROUT         ;>073AH,作廢
                SETB     C              ;在窗口1中,將C置1
SET_CODE_0:
                JB       04H,NEXT       ;
                MOV      A,USE_CODE     ;
                RLC      A              ;
                MOV      USE_CODE,A     ;
                DJNZ     COUNT,ERROUT   ;
                MOV      COUNT,#8       ;
                MOV      A,USE_CODE     ;
                CJNE     A,#0E2H,ERROUT ;
                SETB     04H            ;
;**********************************************
ERROUT:      
                MOV      TH1,#00H       ;
                MOV      TL1,#00H       ;
                SETB     TR1            ;
                SETB     EA             ;
                RETI                    ;
;*********************************************
NEXT:     
                MOV      A,DATA_CODE    ;
                RLC      A              ;
                MOV      DATA_CODE,A    ;
                DJNZ     R6,ERROUT      ;
                MOV      R6,#8          ;
                CLR      04H            ;
;*********************************************
                MOV      A,DATA_CODE    ;
                CJNE     A,#00H,CH1     ;
                AJMP     FUN1           ;
           
CH1:            CJNE     A,#10H,CH2     ;
                AJMP     FUN2           ;

CH2:            CJNE     A,#08H,CH3     ;
                AJMP     FUN3           ;
          
CH3:            CJNE     A,#80H,CH4     ;
                AJMP     FUN4           ;

CH4:            CJNE     A,#90H,CH5     ;
                AJMP     ERROUT         ;
CH5:            CJNE     A,#88H,CH6     ;
                AJMP     ERROUT         ;
CH6:            CJNE     A,#4H,CH7      ;
                AJMP     ERROUT         ;
CH7:            CJNE     A,#50H,CH8     ;
CH8:            AJMP     ERROUT         ;
;********************************************************

SUB0:           CLR      C              ;減法子程序
                MOV      A,R3           ;被減數低位送A
                SUBB     A,R5           ;低位減
                JNC      X1_S1          ;沒進位,去處理高位減法
                DEC      R2             ;有進位,被減數高位減1
X1_S1:          CLR      C              ;清C
                MOV      A,R2           ;被減數高位
                SUBB     A,R4           ;減被減數高位
                RET                     ;返回
;*********************************************************************
;*             遙控切換當前時間,開機時間,關機時間調整程序          *
;*********************************************************************                                    
FUN1:           CLR     TR0             ;禁止T0計數
                CLR     ET0             ;禁止T0中斷
                INC     WORK_MODE       ;時間選擇寄存器加"1"
                MOV     A,WORK_MODE
                CJNE    A,#01H,ONHOUR   ;選擇寄存器為"1",轉開機調整標志
                SETB    00H             ;置開始調整標志為"1"
                SETB    01H             ;置當前時間標志為"1"
                CLR     02H             ;清開機時間標志
                CLR     03H             ;清關機時間標志
                CLR     P3.0            ;LED1亮
                SETB    P3.1            ;LED2滅
                AJMP    EXIT            ;轉中斷退出     
ONHOUR:         CJNE    A,#02H,OFFHOUR  ;選擇寄存器為"2",轉關機調整標志
                CLR     01H             ;清當前時間標志
                SETB    02H             ;置開機時間標志為"1"
                CLR     03H             ;清關機時間標志
                CLR     P3.1            ;LED2亮
                SETB    P3.0            ;LED1滅
                AJMP    EXIT            ;轉中斷退出
OFFHOUR:        CJNE    A,#03H,EXIT     ;選擇寄存器為"3",不為3轉中斷退出
                MOV     WORK_MODE,#0    ;時間選擇寄存器清0
                CLR     01H             ;清當前時間標志
                CLR     02H             ;清開機時間標志
                SETB    03H             ;置關機時間標志為"1"
                CLR     P3.0            ;LED1亮
                CLR     P3.1            ;LED2亮
;*******************************************************************               
EXIT:           LJMP    ERROUT          ;轉中斷退出
;*******************************************************************
; *                         遙控調時程序                           *
;*******************************************************************
FUN2:           JNB     00H,EXIT        ;(00H)等于0,轉中斷退出
                                        ;(00H)等于1,轉判(01)
                JNB     01H,ONHOURADJ   ;(01H)等于0,轉開機 "時" 調整;
                                        ;(01H)等于1,當前   "時" 調整
                MOV     R0,C_HOUR
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     C_HOUR,A        ;當前時間"時"加1
                CJNE    A,#24H,EXIT     ;超過24嗎(超過清0),不為0中斷退出
                MOV     C_HOUR,#0
                AJMP    EXIT            ;轉中斷退出

ONHOURADJ:      JNB     02H,OFFHOURADJ  ;(02H)等于0,轉關機 "時" 調整;
                                        ;(02H)等于1,開機   "時" 調整
                MOV     R0,ON_HOUR
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     ON_HOUR,A       ;開機時間"時"加1
                CJNE    A,#24H,EXIT     ;超過24嗎(超過清0),不為0中斷退出
                MOV     ON_HOUR,#0
                AJMP    EXIT            ;轉中斷退出

OFFHOURADJ:     JNB     03H,EXIT        ;(03H)等于0,轉中斷退出
                                        ;(03H)等于1,關機 "時" 調整
                MOV     R0,OFF_HOUR
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     OFF_HOUR,A      ;關機時間"時"加1
                CJNE    A,#24H,EXIT     ;超過24嗎(超過清0),不為0中斷退出
                MOV     OFF_HOUR,#0
                AJMP    EXIT            ;轉中斷退出      

;*******************************************************************
; *                         遙控調分程序                           *
;*******************************************************************
FUN3:           JNB     00H,EXIT        ;(00H)等于0,轉中斷退出
                                        ;(00H)等于1,轉判(01)
                JNB     01H,ONMINUTEADJ ;(01H)等于0,轉開機 "分" 調整;
                                        ;(01H)等于1,當前   "分" 調整
                MOV     R0,C_MINUTE
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     C_MINUTE,A      ;當前時間"分"加1
                CJNE    A,#60H,EXIT     ;超過60嗎(超過清0),不為0中斷退出
                MOV     C_MINUTE,#0
                AJMP    EXIT            ;轉中斷退出
ONMINUTEADJ:    JNB     02H,OFFMINUTEADJ;(02H)等于0,轉關機 "分" 調整;
                                        ;(02H)等于1,開機   "分" 調整
                MOV     R0,ON_MINUTE
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     ON_MINUTE,A     ;開機時間"分"加1
                CJNE    A,#60H,EXIT     ;超過60嗎(超過清0),不為0中斷退出
                MOV     ON_MINUTE,#0
                AJMP    EXIT            ;轉中斷退出
OFFMINUTEADJ:   JNB     03H,EXIT        ;(03H)等于0,轉中斷退出
                                        ;(03H)等于1,關機 "分" 調整   
                MOV     R0,OFF_MINUTE
                MOV     A,#01H
                ADD     A,R0
                DA      A
                MOV     OFF_MINUTE,A    ;關機時間"分"加1
                CJNE    A,#60H,EXIT     ;超過60嗎(超過清0),不為0中斷退出
                MOV     OFF_MINUTE,#0
                AJMP    EXIT            ;轉中斷退出

;*******************************************************************
; *                         遙控啟動程序                           *
;*******************************************************************
FUN4:           SETB    EX0             ;開INT0中斷
                SETB    TR0             ;允許T0計數 
                SETB    ET0             ;允許T0中斷
                SETB    P3.7            ;置P3.7口為"1"
                CLR     00H             ;清開始調整標志
                SETB    01H             ;置當前時間標志為"1"
                CLR     02H             ;清開機時間標志
                CLR     03H             ;清關機時間標志
                MOV     C_SECOND,#00H   ;秒清0
                MOV     WORK_MODE,#00H  ;時間選擇寄存器清0
                LJMP    EXIT            ;轉中斷退出
;*******************************************************************
DELAY:          MOV     R0,#0FFH
DELAY1:         DJNZ    R0,DELAY1
                RET                     ;返回
                END                     ;程序結束

Tags:單片機,遙控電子鐘,設計,程序  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章:
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    国产亚洲精品aaa大片| 台湾毛片| 九九九国产| 可以在线看黄的网站| 毛片高清| 精品国产一级毛片| 欧美大片aaaa一级毛片| 国产伦精品一区二区三区无广告 | 免费一级片在线观看| 天天做人人爱夜夜爽2020毛片| 日本在线不卡免费视频一区| 国产麻豆精品高清在线播放| 日韩中文字幕在线播放| 亚洲爆爽| 国产一区二区精品久久91| 欧美激情伊人| 精品国产一区二区三区免费 | 亚飞与亚基在线观看| 二级特黄绝大片免费视频大片| 九九热国产视频| 日本伦理片网站| 国产亚洲免费观看| 午夜激情视频在线播放| 99久久精品国产国产毛片| 国产一区二区福利久久| 成人高清视频免费观看| 精品视频在线观看免费| 国产91丝袜高跟系列| 国产网站免费视频| 国产一区二区精品久久91| 成人a大片在线观看| 国产伦精品一区三区视频| 日韩在线观看网站| 欧美激情中文字幕一区二区| 天天做日日爱夜夜爽| 精品国产三级a| 午夜精品国产自在现线拍| 日本在线不卡视频| 一级毛片视频播放| 黄视频网站在线观看| 欧美爱色| 九九免费高清在线观看视频 | 久久国产影院| 四虎影视久久| 九九精品影院| 黄视频网站在线看| 99色视频在线观看| 四虎影视库| 国产精品123| 日本在线www| 精品在线免费播放| 国产91精品露脸国语对白| 精品视频免费观看| 欧美激情一区二区三区在线 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 一 级 黄 中国色 片| 天天做日日爱| 久久精品道一区二区三区| 韩国三级一区| 日本在线www| 毛片高清| 国产伦精品一区二区三区无广告| | 国产国语对白一级毛片| 成人免费福利片在线观看| 可以免费看污视频的网站| 国产伦久视频免费观看 视频| 韩国毛片免费| 欧美日本国产| 夜夜操网| 亚洲女初尝黑人巨高清在线观看| 精品视频在线观看一区二区三区| 免费国产一级特黄aa大片在线| 精品视频在线观看一区二区三区| 日韩女人做爰大片| 国产精品免费久久| 一级毛片视频免费| 日韩中文字幕在线播放| 精品国产三级a| 青青久久精品| 亚洲第一色在线| 韩国三级视频网站| 欧美1区2区3区| 91麻豆精品国产片在线观看| 亚洲精品影院一区二区| 国产伦精品一区二区三区无广告| 在线观看成人网 | 国产亚洲免费观看| 成人免费高清视频| 成人免费一级毛片在线播放视频| 九九精品在线| 999精品在线| 国产一区二区精品尤物| 国产不卡精品一区二区三区| 中文字幕97| 国产美女在线观看| 夜夜操天天爽| 成人高清视频免费观看| 韩国毛片基地| 在线观看成人网| 在线观看成人网| 午夜欧美成人久久久久久| 久久成人综合网| 国产一区二区精品| 香蕉视频亚洲一级| 国产视频一区二区在线观看| 天天做日日爱| 国产韩国精品一区二区三区| 成人a级高清视频在线观看| 精品国产一区二区三区久久久狼| 欧美激情一区二区三区在线播放| 精品在线观看一区| 麻豆污视频| 一本高清在线| 国产一区二区精品尤物| 91麻豆精品国产自产在线观看一区| 日韩中文字幕在线观看视频| 一级女性全黄生活片免费| 四虎影视久久| 成人免费高清视频| 精品久久久久久中文字幕2017| 久久国产影视免费精品| 九九精品影院| 日韩免费在线| 欧美日本免费| a级黄色毛片免费播放视频| a级毛片免费全部播放| 日本免费乱理伦片在线观看2018| 国产a毛片| 久久国产精品自由自在| 日韩字幕在线| 久久99中文字幕| 国产精品免费精品自在线观看| 午夜久久网| 欧美大片毛片aaa免费看| 午夜欧美成人香蕉剧场| 成人影视在线观看| 国产a视频精品免费观看| 午夜欧美成人久久久久久| 欧美a级大片| 99热精品一区| 一级毛片视频播放| 91麻豆精品国产综合久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品在线观看国产| 日本伦理网站| 亚久久伊人精品青青草原2020| 国产91精品系列在线观看| 成人影院一区二区三区| 99热精品在线| 国产麻豆精品视频| 欧美一级视| 精品国产香蕉伊思人在线又爽又黄| 国产不卡福利| 国产一级强片在线观看| 黄色短视频网站| 九九久久99| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产美女在线一区二区三区| 精品国产香蕉在线播出| 成人高清视频免费观看| 国产网站在线| 欧美a级大片| 欧美激情中文字幕一区二区| 国产国语对白一级毛片| 麻豆系列 在线视频| 中文字幕一区二区三区 精品| 日本在线不卡视频| 国产精品自拍在线| 天天做日日爱夜夜爽| 国产不卡精品一区二区三区| 一 级 黄 中国色 片| 亚洲精品久久玖玖玖玖| 精品国产一区二区三区精东影业 | 免费的黄视频| 91麻豆精品国产片在线观看| 青青久热| 日韩在线观看视频免费| 99久久精品国产免费| 国产91精品露脸国语对白| 四虎久久影院| 亚洲 男人 天堂| 国产成人欧美一区二区三区的| 精品视频免费观看| 二级特黄绝大片免费视频大片| 高清一级毛片一本到免费观看| 国产视频在线免费观看| 免费毛片基地| 日韩女人做爰大片| 国产一区二区精品在线观看| 999精品在线| 久久国产精品自由自在| 精品视频在线观看一区二区| 国产亚洲精品aaa大片| 免费国产在线观看不卡| 国产国语在线播放视频| 日本免费看视频| 成人免费一级纶理片| 国产高清在线精品一区a| 天天色色色|