亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 定時器.asm

?? 定時器的程序
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
                ;******************;
                ;    定時器程序    ;
                ;    采用89c2051   ;
                ;    2001.10       ;
                ;******************;
	    ;
            ;******************
	    ;      偽定義     ;
	    ;******************
	    SL     EQU   30H       	   ;SL存放秒的個位數
	    SH	   EQU   31H       	   ;SH存放秒的十位數
	    ML    EQU   32H       		   ;ML存放分的個位數
	    MH	   EQU   33H       	   ;MH存放分的十位數
	    HL     EQU   34H       	   ;HL存放時的個位數
	    HH	   EQU   35H    	       ;HH存放時的十位數
	    ;
	    L0     EQU   36H       	   ;L0~L3:顯示數據存儲器
            L1	   EQU   37H
	    L2     EQU   38H
	    L3	   EQU   39H
	    DSPLYP    EQU   3AH         ;顯示數據指針(DISPLAY-POINT)
	    PLYTS     EQU   3BH         ;顯示次數計數器(DISPLAY-TIMES)
	    ;
	    LPLMOD   BIT   39H          ;低兩位顯示方式(LOW-PLAY-MOD)
	    HPLMOD   BIT   3AH         ;高兩位顯示方式(HIGH-PLAY-MOD)
	    BRIGHT    BIT   3BH         ;DISPLAY子程序參數:亮滅指示位
        ;
        TCOUNT   EQU   3CH         ;時間計數器(TIME-COUNT)
        ;
        ADDRES	 EQU   3DH           ;加1子程序參數
        MAX     EQU   3EH           ;加1子程序參數
	    IFDEC    BIT   20H            ;BCD加法子程序參數
            ;
        R_MOD  EQU   3FH          ;響鈴方式參數
	    ;
	    LED4     BIT   30H            ;發光管狀態位
	    BELL     BIT   P1.7           ;蜂鳴器
	    SWITCH  BIT   P3.7           ;繼電器
	    FKEY     BIT   P3.0           ;功能鍵 (S1)
	    MKEY    BIT   P3.1           ;修改鍵 (S2)
	    ;
	    WORKIN BIT   38H           	;工作狀態指示位
	    ;

            ;******************
            ;     中斷入口    ;
	        ;******************
		    ORG  	 0000H
            START:  LJMP	 MAIN         		; 0000H  引向主程序
		    LJMP	 ERR          		; 0003H
		    NOP
		    NOP
		    LJMP 	ERR          		; 引向出錯處理程序
		    LJMP 	PGT0         		; 000BH  引向中斷處理程序PGT0
		    NOP
		    NOP
		    LJMP 	ERR          		; 引向出錯處理程序
		    LJMP 	ERR          		; 0013H  INT1
		    NOP
		    NOP
		    LJMP 	ERR
		    LJMP 	ERR          		; 001BH  T1
		    NOP
		    NOP
		    LJMP 	ERR
		    LJMP 	ERR          		; 0023H
		    NOP
		    NOP
                    LJMP 	ERR
	            LJMP 	ERR          		; 002BH
		    NOP
		    NOP
	        ;
                ;************
                ;   主程序  ;
	    	;************
	       MAIN:   MOV   IE,  #00H            ;關中斷
                    MOV   SP,  #57H            ;設置堆棧指針
                    MOV   PSW,  #00H          ;選用寄存器組0
                    MOV   TMOD, #11H          ;設定中斷工作方式為T0和T1
            ;
                    MOV   A, 56H
                    CJNE  A, #0AAH, CSTART     ;判上電復位標志,無標志轉冷啟動
                    MOV   A, 57H
                    CJNE  A, #55H,  CSTART      ; 無標志轉冷啟動
                    AJMP  HSTART               ;有上電復位標志轉熱啟動
                    NOP
		    NOP
                    LJMP 	ERR                  ;軟件陷阱,引向出錯處理程序
            CSTART: MOV   P1, #0FFH             ;冷啟動,全面初始化
                    MOV   P3, #0FFH
                    MOV   TCON,  #00H          ;計時停止
                    MOV   TL0, #0B0H            ;賦中斷T0初值
                    MOV   TH0, #3CH
                    MOV   TCOUNT, #0AH          ;賦定時器初值
                    MOV   R5, #00H              ;R5為一空單元(備用)
                    MOV   R4, #00H              ; R4 為工作模式選擇寄存器
		    MOV   SL, #00H              ;定時單元清零
                    MOV   SH, #00H              ;秒
                    MOV   ML, #00H             ;
                    MOV   MH, #00H             ;分
                    MOV   HL, #00H             ;
                    MOV   HH, #00H             ;時
		    MOV   PLYTS,  #64H        	;賦顯示次數初值為100次
		    MOV   DSPLYP,  #L0		;顯示指針指向顯存單元
                    MOV   L0,  #0AH           ;送顯示數據"-----"
                    MOV   L1,  #0AH
                    MOV   L2,  #0AH
                    MOV   L3,  #04H
                    SETB   LED4                 ;LED4為數碼管之間的發光二極管
                    SETB   LPLMOD              ;設定顯示方式為閃爍
                    SETB   HPLMOD              ;
                    SETB   BRIGHT               ;允許顯示
		    CLR	   WORKIN	             ;清工作標志 , 待命
                    AJMP  SETUP                ;轉開始工作
                    NOP
		    NOP
                    LJMP 	ERR          ;軟件陷阱
         HSTART:    MOV   SCON, #00H    ; 有上電標志,熱啟動,清串行口控制寄存器
                    MOV   IP,  #00H      ; 清中斷優先控制寄存器
                    SETB   FKEY           ;重設按鍵
                    SETB   MKEY
                    SETB   EA              ;開中斷
                    AJMP  BEGIN           ;轉向繼續工作
                    NOP
		    NOP
                    LJMP	  ERR            ;軟件陷阱
            SETUP:  SETB  EA               ;開中斷
            ;
	      MAIN1:   ACALL  DISPLY          ;調用顯示
        	    	JB	   FKEY,  JUDGE    ;按鍵掃描
		    	ACALL  KEYDLY        ;延時消抖動
		    	JB	   FKEY,  JUDGE    ;無鍵按下轉向判斷是否到點
		    	CLR   ET0              ;功能鍵被按下,則
		    	CLR   TR0		        ;暫停計時
            	        ACALL MENU           ; 調用菜單設置程序
               BEGIN:  SETB  WORKIN          ;置工作標志位,開始工作
            		SETB  ET0              ;開中斷
			SETB  TR0              ;開始計時
			MOV   A, R4            ;移入工作模式選擇
			RL    A 		        ;指針放大
            	        MOV   DPTR,  #M_TAB
		    	JMP   @A+DPTR        ;根據工作模式跳轉到相應程序段
                M_TAB:  AJMP  WORK1
		    	AJMP  WORK2
		    	AJMP  WORK3
            		AJMP  WORK4
            		NOP
            		NOP
            		LJMP  ERR               ;軟件陷阱
WORK1:  ;
  WORK2:  CLR   SWITCH            ;工作方式1和2:開繼電器
          AJMP  MAIN2
          NOP
	  NOP
          LJMP 	ERR                ;軟件陷阱
  WORK3:  ;
WORK4:  SETB  SWITCH             ;工作方式3和4:不開繼電器
  MAIN2:  CLR   BELL                 ;蜂鳴器短鳴一聲,以示開始工作
           ACALL  DL05S
           SETB  BELL
   JUDGE:  JNB WORKIN, MAIN1           ;判斷是否在定時之中
            MOV   A, SL                  ;判斷秒是否為零
            JNZ   MAIN1
            MOV   A, SH                ;判斷秒是否為零
            JNZ   MAIN1
            MOV   A, ML                ;判斷分是否為零
            JNZ   MAIN1
            MOV   A, MH                ;判斷分是否為零
            JNZ   MAIN1
            MOV   A, HL                ;判斷時是否為零
            JNZ   MAIN1
            MOV   A, HH                ;判斷時是否為零
            JNZ   MAIN1                ;若時分秒全為零則
            CLR   ET0                  ; 停止計時
            CLR   TR0                  ;
            ACALL ACTION              ; 調用到點工作子程序
            AJMP  MAIN                ; 返回
            NOP
	    NOP
            LJMP ERR                   ;軟件陷阱
	    ;
        ;******************
	    ;    倒計時程序   ;
	    ;******************
            PGT0:   CLR   EA            		 ;關中斷
                    PUSH  ACC		      		 ;保護現場
		    PUSH  PSW
		    PUSH  DPL
		    PUSH  DPH
		    MOV   PSW, #08H	      	 ;選用寄存器組1
		    CLR   TR0                	 ;暫停計時
		    MOV   A,#0B7H           	 ;中斷同步修正
		    ADD   A,TL0
		    MOV   TL0,A
		    MOV   A,#3CH
		    ADD   A,TH0
		    MOV   TH0,A
                    SETB  TR0                	 ;恢復計時
                    DEC   TCOUNT             	 ;定時器T0每50 000毫秒溢出一次,則
		    MOV   A,  TCOUNT         	 ; 溢出10次為0.5秒
	            JNZ   OUTT0	          	 ;判斷是否到半秒
		    MOV   TCOUNT, #0AH       	 ;
		    CPL   LED4		           	 ; 若到半秒LED取反
		    JNB   LED4, OUTT0         ;LED每閃爍一次是一秒
		    MOV   R0, #SH             ;移入秒位的地址
		    SETB  IFDEC                ;BCD子程序參數,使其做減法
		    ACALL ADDBCD            ;調用BCD子程序, 秒減1
		    CJNE  R3, #99H, OUTT0      ;判斷秒要否借位
                    MOV   SH, #05H            ;要借位則
                    MOV   SL, #09H            ; 送數據59(否則顯示99)
		    MOV   R0, #MH             ;移入分位的地址
		    ACALL ADDBCD	           ;分減1
		    CJNE  R3, #99H, OUTT0     ;判斷分要否借位
                    MOV   MH, #05H
                    MOV   ML, #09H
		    MOV   R0, #HH
		    ACALL ADDBCD
            OUTT0:  POP   DPH		       		;恢復現場
		    POP   DPL
		    POP   PSW
		    POP   ACC
		    SETB  EA
		    RETI                  		;中斷返回
                    NOP
		    NOP
                    LJMP ERR                    ;軟件陷阱
	;
	;
            ;**************************
	    ;   BCD子程序(加1或減1 )  ;
            ;**************************
   ADDBCD: MOV   A, @R0           ;移入被操作數的高位
	    DEC   R0                ;指針減一
	    SWAP  A
	    ORL   A, @R0            ;移入被操作數的低位
            MOV   B, #01H           ;B寄存器送立即數#01H
            MOV   C, IFDEC          ;若 減法標志位為1,則
            MOV   B.3,  C           ;
            MOV   B.4,  C           ; B寄存器的值被改為#99H
            MOV   B.7,  C           ;
	    ADD   A, B              ; 對一個壓縮的BCD碼加#99H等于對其減一
	    DA    A                 ;BCD碼調整
	    MOV   R3, A             ;暫存結果
	    ANL   A, #0FH           ;取低位碼
	    MOV   @R0, A           ;存數
	    MOV   A, R3             ;取回結果
	    INC   R0                ;指針加一
	    SWAP  A                ;交換
	    ANL   A, #0FH          ;取結果數的高位
	    MOV   @R0, A          ;存數
	    RET
            NOP
	    NOP
            LJMP 	ERR             ;軟件陷阱
	    ;
        ;**************
	;   加1程序   ;
        ;**************
	ADDONE: MOV  R0, ADDRES   ;移入被加數單元的地址
	         CLR   IFDEC         ;設定BCD子程序做加法
		 ACALL ADDBCD      ;調用BCD子程序
         	 CLR   C             ;判斷被加數是否大于
            	 MOV   A,  R3       ;最大值"MAX"
	 	 CJNE  A,  MAX, JGOVER
         JGOVER: JC    ENDADO
	         CLR   A            ;若大于"MAX",則清零
                  MOV   @R0, A
                  DEC   R0
                  MOV   @R0, A
	     ENDADO: RET
                  NOP
		  NOP
                  LJMP 		ERR       ;軟件陷阱
	    ;
        ;******************
	    ;   調時快進程序  ;
        ;******************
        QUICK:   CLR   LPLMOD	   ;設定顯示方式不閃爍
		  CLR   HPLMOD
                  ACALL ADDONE      ;調用加1子程序
                  MOV   L0,  R4       ;將工作模式選擇數移入顯存
                  INC   L0             ;加1轉化成顯示值
                  ACALL KEYDLY       ;延時
                  ACALL DL100
                  JNB   MKEY, QUICK      ;判斷鍵是否松開
                  SETB  LPLMOD          ;若松開則恢復閃爍顯示方式
		  CJNE  R6, #02H, ENDQUK
	          SETB  HPLMOD
                  CLR   LPLMOD
         ENDQUK: RET
                  NOP
		  NOP
                  LJMP ERR             ;軟件陷阱
	    ;
;
        ;******************
	    ;   功能菜單程序  ;
	    ;******************
	    MENU: MOV   R6,  #00H	        ; 初始化;  R6 計功能鍵按鍵次數
	       MOV   ADDRES,  #05H   ; 將 R5 的地址送入,以便于改變 R4 的值
               MOV   MAX, #04H        ; 定義工作模式選擇寄存器R4 的最大值
               MOV   DSPLYP, #L0       ;定義顯示指針指向顯存
               SETB  LPLMOD	    		;設定低兩位數閃爍
	       CLR   HPLMOD
               MOV   L0,  R4          	;送顯示數據"F-0X"
               INC    L0
               MOV   L1,  #00H
               MOV   L2,  #0BH
               MOV   L3,  #00H
               SETB  LED4
            ;
       WAITFK: ACALL DISPLY              ;等待F鍵釋放
	       JNB   FKEY,  WAITFK
       MENU1:  ACALL DISPLY
                JB    MKEY,  JGFKEY       ;M鍵掃描
                ACALL KEYDLY             ;延時消抖動
                JB    MKEY,  JGFKEY       ; 未按下則轉F鍵掃描
                CJNE  R6, #00H, NEXT1      ;
                MOV   SL, #00H            ;若中途改變定時方式,則清除原計時數據
                MOV   SH, #00H
                MOV   ML, #00H
                MOV   MH, #00H
                MOV   HL, #00H
                MOV   HH, #00H
       NEXT1:  MOV   R2,  #00H            ;R2用于判斷按鍵時間是否超過0.5秒
       NEXT2:  ACALL ADDONE             ;調用加1程序

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久 天天综合| 在线观看日韩高清av| 91极品美女在线| 日韩亚洲欧美综合| 中文字幕成人av| 黑人精品欧美一区二区蜜桃| 欧美亚洲综合另类| 国产精品久久精品日日| 久久不见久久见免费视频1| 在线视频欧美区| 欧美激情一区二区三区蜜桃视频| 免费在线观看视频一区| 欧美午夜影院一区| 亚洲激情自拍偷拍| 99精品欧美一区二区蜜桃免费| 26uuu国产一区二区三区 | 在线国产电影不卡| 中文字幕av在线一区二区三区| 狂野欧美性猛交blacked| 欧美艳星brazzers| 亚洲一二三专区| 欧美视频一区二区三区四区| 亚洲综合av网| 欧美午夜精品一区二区蜜桃 | 久久亚洲综合av| 日韩影视精彩在线| 欧美视频在线一区二区三区| 一区二区三区不卡视频 | 国产成人自拍网| 国产欧美一区在线| 国产麻豆成人传媒免费观看| 久久综合色8888| 精品一区二区久久久| 久久综合色之久久综合| 国产精品一区在线观看乱码| 国产欧美日本一区视频| 99久久婷婷国产精品综合| 国产精品二三区| 在线免费观看日本欧美| 午夜精品一区在线观看| 91精品国产色综合久久ai换脸 | 精品国产一区a| 国产精品伊人色| 中文无字幕一区二区三区| av中文字幕在线不卡| 亚洲乱码精品一二三四区日韩在线| 色网站国产精品| 日韩高清电影一区| 国产日韩欧美不卡在线| 91在线观看下载| 日本一道高清亚洲日美韩| 精品久久国产老人久久综合| 成人听书哪个软件好| 亚洲色图制服诱惑 | 国产精品亚洲人在线观看| 欧美极品美女视频| 欧美视频完全免费看| 精品在线观看视频| 国产精品女主播av| 欧美浪妇xxxx高跟鞋交| 国产乱码一区二区三区| 亚洲人成在线观看一区二区| 欧美精品亚洲一区二区在线播放| 精品一区二区三区免费观看| 中文字幕成人网| 91精品欧美福利在线观看| 国产高清一区日本| 性欧美大战久久久久久久久| 国产欧美日韩另类一区| 欧美曰成人黄网| 国产99久久精品| 亚洲va国产天堂va久久en| 久久九九久久九九| 欧美日韩在线观看一区二区 | 色综合天天综合在线视频| 国产伦精一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 欧美一区二区三区四区久久| 粉嫩蜜臀av国产精品网站| 亚洲风情在线资源站| 久久久精品综合| 欧美三日本三级三级在线播放| 国产精品资源站在线| 亚洲成a人v欧美综合天堂下载 | 国产99久久久国产精品潘金网站| 亚洲欧美日韩国产成人精品影院| 欧美tickle裸体挠脚心vk| 在线视频国产一区| 国产乱码一区二区三区| 男人的j进女人的j一区| 亚洲免费观看高清在线观看| 国产日韩亚洲欧美综合| 欧美喷水一区二区| 色综合 综合色| 国产精品一区在线观看你懂的| 偷拍一区二区三区四区| 亚洲精品视频免费观看| 国产精品久久久久久久裸模| 久久理论电影网| 宅男噜噜噜66一区二区66| 91蜜桃传媒精品久久久一区二区 | 蜜桃精品视频在线观看| 亚洲国产中文字幕在线视频综合| 欧美韩国日本不卡| 欧美xxxxx牲另类人与| 欧美一区二区黄色| 欧美精品vⅰdeose4hd| 欧美日韩一区久久| 欧美日韩在线免费视频| 在线观看av不卡| 色婷婷综合久久| 色av一区二区| 欧美色男人天堂| 欧美三级资源在线| 欧美高清www午色夜在线视频| 在线观看国产91| 欧美午夜电影网| 欧美精品九九99久久| 91精品国产高清一区二区三区 | 蜜桃久久精品一区二区| 日韩av不卡在线观看| 免费久久精品视频| 精品一区二区三区视频| 国产自产v一区二区三区c| 精品一区二区免费看| 大尺度一区二区| 91在线观看下载| 欧美日本精品一区二区三区| 91精品久久久久久久99蜜桃| 精品福利一区二区三区| 中文字幕精品综合| 亚洲色图在线播放| 午夜精品久久久久久| 久久99精品视频| av电影在线观看不卡| 欧美综合亚洲图片综合区| 7777精品伊人久久久大香线蕉的| 日韩亚洲欧美成人一区| 久久精品亚洲精品国产欧美kt∨| 成人免费在线播放视频| 亚洲国产欧美日韩另类综合| 麻豆高清免费国产一区| 国产91精品在线观看| 色香蕉久久蜜桃| 日韩一级二级三级| 国产精品无遮挡| 亚洲国产日韩一级| 精品一区二区三区久久| 99精品黄色片免费大全| 91超碰这里只有精品国产| 国产色综合久久| 亚洲午夜免费电影| 国产一区二区三区免费播放 | 欧美草草影院在线视频| 亚洲色欲色欲www| 蜜桃精品视频在线观看| 91在线观看美女| 欧美精品一区二| 亚洲自拍偷拍av| 国产成人aaa| 69成人精品免费视频| 国产精品视频免费| 久久精品国产一区二区三| av不卡在线播放| 精品国产一区二区三区忘忧草| 伊人色综合久久天天| 久99久精品视频免费观看| 99精品视频一区| 国产日韩av一区二区| 视频在线观看一区二区三区| aa级大片欧美| 国产午夜亚洲精品不卡| 日韩综合在线视频| 在线视频一区二区三| 国产精品理伦片| 九九精品一区二区| 欧美日韩精品久久久| 亚洲免费在线观看视频| 国产精品一区二区免费不卡| 欧美一级黄色大片| 视频精品一区二区| 色综合久久66| 亚洲老妇xxxxxx| 99久久精品费精品国产一区二区| 久久综合色婷婷| 黑人巨大精品欧美一区| 欧美成人一级视频| 日韩精品高清不卡| 欧美亚州韩日在线看免费版国语版| 国产精品久久毛片av大全日韩| 国产精品一区专区| 久久综合狠狠综合| 国产一区二三区| 欧美mv和日韩mv的网站| 精品一区二区三区av| 2020国产精品自拍| 国产精品主播直播| 日本一区二区三区四区在线视频| 国产精品香蕉一区二区三区| 欧美成人一区二区|