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

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

?? 13.asm

?? 51單片機匯編
?? 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一区二区三区免费野_久草精品视频
国产精品你懂的| 亚洲国产精品自拍| 4hu四虎永久在线影院成人| 国产v日产∨综合v精品视频| 一区二区三区免费网站| 久久这里只有精品6| 欧美日韩中文国产| 成a人片国产精品| 精品一区二区av| 亚洲国产一二三| ...av二区三区久久精品| 精品福利一二区| 欧美精品久久天天躁| av在线不卡观看免费观看| 国产精品综合一区二区三区| 青青青伊人色综合久久| 亚洲一区二区三区精品在线| 久久se精品一区精品二区| 亚洲一区在线看| 最好看的中文字幕久久| 亚洲国产精品成人久久综合一区| 日韩欧美高清一区| 欧美精品乱人伦久久久久久| 欧美性一二三区| 色偷偷久久人人79超碰人人澡| 国产a视频精品免费观看| 国精品**一区二区三区在线蜜桃| 日韩影院在线观看| 日日夜夜精品视频免费| 亚洲成a人片在线不卡一二三区| 亚洲欧美日韩国产一区二区三区| 中文在线免费一区三区高中清不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一区二区观看视频| 制服丝袜中文字幕一区| 欧美一区永久视频免费观看| 欧美日韩卡一卡二| 欧美日韩成人综合天天影院| 欧美日韩午夜精品| 欧美高清视频不卡网| 欧美片在线播放| 51午夜精品国产| 日韩一区二区在线看| 91精品蜜臀在线一区尤物| 91精品国产综合久久久久久| 884aa四虎影成人精品一区| 欧美久久一二三四区| 91精品婷婷国产综合久久竹菊| 51精品国自产在线| 日韩欧美aaaaaa| 久久久91精品国产一区二区精品| 中文字幕免费一区| 亚洲欧美日韩一区| 亚洲第一久久影院| 日韩成人一区二区| 六月婷婷色综合| 福利电影一区二区三区| 国产精品亚洲一区二区三区在线| 国产成人高清视频| aaa欧美色吧激情视频| 欧美在线观看视频在线| 日韩一区二区在线看| 亚洲国产高清不卡| 亚洲激情校园春色| 天堂一区二区在线| 精品一区二区三区免费观看| 成人高清视频免费观看| 91成人在线精品| 日韩亚洲欧美在线观看| 国产视频一区二区三区在线观看| 亚洲天堂免费看| 日韩成人免费看| 国产成人午夜精品5599| 色婷婷激情综合| 欧美大片一区二区| 国产精品久久久久久福利一牛影视| 亚洲美女精品一区| 一本一本大道香蕉久在线精品| 欧美私模裸体表演在线观看| 日韩无一区二区| 日韩美女啊v在线免费观看| 婷婷综合久久一区二区三区| 国产91在线|亚洲| 欧美片网站yy| 国产精品美日韩| 日韩成人精品在线观看| 91香蕉视频污| 精品黑人一区二区三区久久| 亚洲免费色视频| 国产一区二区三区高清播放| 欧美偷拍一区二区| 日本一区二区三区免费乱视频 | 国产成都精品91一区二区三| 色综合咪咪久久| 久久综合久久99| 亚洲国产美女搞黄色| 成人午夜精品一区二区三区| 正在播放一区二区| 亚洲免费成人av| 国产91露脸合集magnet | 欧美大黄免费观看| 亚洲欧美日韩国产一区二区三区| 精品在线观看免费| 欧美视频在线一区| 中文字幕欧美日韩一区| 人人超碰91尤物精品国产| 色综合欧美在线| 国产喂奶挤奶一区二区三区| 麻豆国产精品官网| 欧美性生活大片视频| 国产精品白丝在线| 国产老肥熟一区二区三区| 6080yy午夜一二三区久久| 亚洲欧美偷拍三级| 成人不卡免费av| 国产喷白浆一区二区三区| 人人精品人人爱| 欧美电影在哪看比较好| 一区二区三区四区不卡在线| 99精品视频一区二区| 国产精品久久久久久久久久免费看| 九九国产精品视频| 精品欧美一区二区在线观看| 日本成人中文字幕| 91精品欧美久久久久久动漫 | 国产亚洲一区二区三区四区| 奇米亚洲午夜久久精品| 欧美老人xxxx18| 午夜免费久久看| 91成人在线免费观看| 亚洲激情一二三区| 日本高清不卡aⅴ免费网站| 亚洲日本一区二区| 91黄色激情网站| 亚洲一区二三区| 欧美日韩在线电影| 亚洲成人av电影在线| 67194成人在线观看| 男人的j进女人的j一区| 日韩免费性生活视频播放| 美女久久久精品| 精品国产99国产精品| 国产美女av一区二区三区| 国产夜色精品一区二区av| 国产精品中文字幕欧美| 国产日本亚洲高清| 成人国产视频在线观看| 亚洲欧美日韩国产综合| 欧美午夜一区二区三区| 青青草97国产精品免费观看无弹窗版 | 亚洲欧美综合另类在线卡通| 99re8在线精品视频免费播放| 日韩理论电影院| 在线观看网站黄不卡| 亚洲成人7777| 欧美videos中文字幕| 国产一区二区三区观看| 中文字幕一区二区三区四区| 在线中文字幕一区| 日本女人一区二区三区| 久久久久久97三级| 成人aa视频在线观看| 亚洲与欧洲av电影| 精品久久久久一区二区国产| 欧美一区二区三区四区视频| 国模一区二区三区白浆| 国产偷国产偷亚洲高清人白洁| 91在线一区二区| 午夜精品免费在线| 国产日韩精品一区二区三区在线| 色欧美片视频在线观看 | 久久精品国产久精国产| 国产欧美综合在线| 欧美性xxxxx极品少妇| 国内外成人在线| 亚洲精品中文在线| 日韩欧美aaaaaa| 色综合天天综合网国产成人综合天| 午夜国产不卡在线观看视频| 精品国产91乱码一区二区三区| 成人av免费观看| 日本美女一区二区三区| 国产精品福利av| 91精品国产综合久久香蕉的特点| 国产精品自拍网站| 亚洲自拍偷拍麻豆| 久久久久九九视频| 欧美日韩亚洲另类| 国产**成人网毛片九色| 视频在线观看91| 亚洲欧美激情视频在线观看一区二区三区 | 一级日本不卡的影视| 亚洲精品在线网站| 91黄色免费版| 丁香六月久久综合狠狠色| 亚洲bt欧美bt精品| 欧美精彩视频一区二区三区| 91精品久久久久久久91蜜桃| 国v精品久久久网| 免费观看在线色综合|