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

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

?? clock.asm

?? 電子鐘完整版
?? ASM
字號:
	 MODE_RG	EQU  40H		;模式選擇
	 MODE2		EQU	 60H		;MODE值
	 MODE3		EQU  61H
	 MODE4		EQU  62H
	 MODE5		EQU  63H
	 MODE6		EQU  64H
	 MODE1		EQU  65H

   	 HOUR   	EQU  41H		;小時緩沖區
	 MIN    	EQU  42H		;分鐘緩沖區
	 SEC	    EQU	 43H		;秒緩沖區
	 TEMP		EQU  4AH

	 ;*********鬧鐘緩沖區********************
	 H_ALARM	EQU	 6AH		;鬧鐘緩沖區
	 M_ALARM	EQU  6BH
	 S_ALARM	EQU  6CH

	 F_ALARM	EQU  6DH
	 ;***********秒表緩沖區******************
	 M_SEC		EQU  76H
	 S_SEC		EQU  77H
	 ;*********LED送顯示臨時變量*************
	 LED0		EQU  51H
	 LED1		EQU  52H
	 LED2       EQU  53H
	 LED3		EQU  54H
	 MODE_KEY   EQU  P3.4
	 UP_KEY		EQU  P3.3
	 DOWN_KEY	EQU  P3.5
	 BUF		EQU  49H

			ORG 0000H
			LJMP MAIN
			ORG 000BH
			LJMP INT_0
			ORG 001BH
			LJMP INT_1
			ORG 0080H
MAIN:		MOV SP,#2FH			 ;堆棧初始化
			MOV MODE_RG,#0		 ;MODE_RG寄存器值初始化
			MOV LED0,#0FEH		 ;初始化LED
			MOV LED1,#0FDH
			MOV LED2,#0FBH
			MOV LED3,#0F7H
			MOV MODE1,#1
			MOV MODE2,#2
			MOV MODE3,#3
			MOV MODE4,#4
			MOV MODE5,#5
			MOV MODE6,#6
			MOV F_ALARM,#0		 ;錯誤2:一開始用 CLR F_ALARM,這導致在后面的時候JZ F_ALARM 運行錯誤,
			MOV BUF,#0					;在于 JZ 指令是對累加器A全為0或者全為1進行判斷,CLR只能對一位操作
			MOV TMOD,#11H		 ;定時器初始化:定時器0,方式1,定時器1,方式1
			MOV IP,#00001000B	 ;定時器1優先級高
			MOV TH0,#3CH		 ;定時50MS
			MOV TL0,#0B1H
			MOV TH1,#0D8H		 ;定時10MS
			MOV TL1,#0F0H
			SETB EA
			SETB ET0
			SETB ET1
			SETB TR0             ;啟動定時器

	        MOV HOUR,#0	     ;for test
			MOV MIN,#0
			MOV SEC,#0		 ;定時器計數器,50MS中斷一次,200次則剛好1S
			MOV M_SEC,#0
			MOV S_SEC,#0
			MOV H_ALARM,#0
			MOV M_ALARM,#0	
MAIN1:		LCALL DISPLAY12
			LCALL DISPLAY34
			;CLR P1.4		   TEST
			JNB MODE_KEY,KEY_SCAN
			MOV A,MODE_RG
			CJNE A,MODE6,Y1		  ;MODE6  秒表
			JNB DOWN_KEY,DEALDOWN	   ;判斷秒表開關
			JNB UP_KEY,DEALUP
Y1:			MOV A,F_ALARM		  ;判斷鬧鐘
			JNZ ALARM
			LJMP MAIN1

;-----------------------------------秒表開關程序---------------------------

DEALDOWN:	LCALL DELY10MS
			JB DOWN_KEY,MAIN1
H1:			JNB DOWN_KEY,H1
			CPL TR1
			LJMP MAIN1

DEALUP:		LCALL DELY10MS
			JB UP_KEY,MAIN1
H2:			JNB UP_KEY,H2
			MOV M_SEC,#0
			MOV S_SEC,#0
			CLR TR1
			LJMP MAIN1

;-----------------------------------鬧鐘掃描程序---------------------------
ALARM:		MOV A,H_ALARM
			CPL P1.2
			CJNE A,HOUR,EXIT3
			
			MOV A,M_ALARM
			CJNE A,MIN,EXIT3
			LJMP STARTALARM

EXIT3:		SETB P3.6
			LJMP MAIN1


STARTALARM: CPL P3.6
			JNB DOWN_KEY,OFFALARM
			LJMP S1
OFFALARM:	LCALL DELY10MS
			JB DOWN_KEY,MAIN1
S2:			JNB DOWN_KEY,S2
			MOV F_ALARM,#0
			SETB P3.6
			LJMP MAIN1
S1:			LCALL DELAY
			LJMP MAIN1

;-----------------------------------鍵盤掃描程序---------------------------

KEY_SCAN:	LCALL DELY10MS
			JB MODE_KEY,MAIN1
			INC MODE_RG
			;SETB P1.4	   測試
K1:			JNB MODE_KEY,K1			 ;按鍵直到用戶松開按鍵
K2:			MOV A,MODE_RG
			CJNE A,#0,DEALMODE  ;不是在正常顯示模式下則跳轉到模式處理程序
			LJMP MAIN1			 ;返回主程序

		;*******************模式處理程序部分

DEALMODE:	MOV TEMP,#0			 ;凡轉入MODE處理,則首先清除TEMP
			MOV A,MODE_RG		 ;有MODE_RG值不為5、0
			CJNE A,MODE2,M0		 ;判斷MODE_RG值,不為1跳轉
			LJMP H_GLINT		 ;模式1,小時位閃爍

M0:			CJNE A,MODE3,M1		 ;不是模式2,跳轉
			LJMP M_GLINT		 ;模式2,分鐘位閃爍

M1:			CJNE A,MODE4,M2		 ;不是模式3,跳轉
			LJMP H_GLINT

M2:	 		CJNE A,MODE5,M3
			LJMP M_GLINT

M3:			CJNE A,MODE6,M4
			MOV M_SEC,#0
			MOV S_SEC,#0
			LJMP MAIN1

M4:			CJNE A,MODE1,M5
			;CLR TR1
			LJMP MAIN1

M5:			MOV MODE_RG,#0
			LJMP MAIN1
		;*****************************MODE為1,3,小時位閃爍
			//MOV TEMP,HOUR		 ;將TEMP賦值,防止在加的時候是在隨機值的基礎上增加
			
H_GLINT:	;CPL P1.0
			MOV R0,#28
			MOV R1,#28
K4:			LCALL DISPLAY12		 ;分開顯示
			LCALL DISPLAY34

E1:			JNB MODE_KEY,K21	 ;檢測是否有按鍵按下,有按下則跳轉到分鐘位閃爍
			
			JB UP_KEY,E9		 ;判斷加位有無按鍵按下
			LJMP UP
E9:			DJNZ R0,K4

K6:			LCALL DISPLAY34

			JNB MODE_KEY,K21	 ;檢測是否有按鍵按下,有按下則跳轉延時后進行模式判斷
			LJMP G1

K21:		LCALL DELY10MS		 ;延時后確定有MODE按鍵按下,將
			JB MODE_KEY,H_GLINT
W:			JNB MODE_KEY,W
			INC MODE_RG
			CPL P1.4
			LJMP DEALMODE		 ;確定有按下,MODE+1后返回MODE處理程序
			JNB UP_KEY,UP		 ;判斷加位有無按鍵按下

G1:			DJNZ R1,K6
			LJMP H_GLINT		 ;調用完畢返回,實現閃爍

K3:			LJMP MAIN1			 ;可省略

		;******************************MODE為2,4,分鐘位閃爍

M_GLINT:	MOV R0,#28
			MOV R1,#28

K23:		CPL P1.7			   
			LCALL DISPLAY12
			LCALL DISPLAY34

			JNB MODE_KEY,KK		 ;跳轉,確定是否有按鍵按下
			JNB UP_KEY,UP		 ;判斷加位有無按鍵按下

			MOV A,MODE_RG
			CJNE A,MODE3,E2		 ;在MODE5的情況下要判斷鬧鐘確認鍵有沒按下
			LJMP E5

E2:			JNB DOWN_KEY,F2
			LJMP E5
F2:			LJMP ONALARM2

E5:			DJNZ R0,K23

K24:		LCALL DISPLAY12

			JNB MODE_KEY,KK		 ;檢測是否有按鍵按下,有按下則跳轉
			JNB UP_KEY,UP		 ;判斷加位有無按鍵按下

			MOV A,MODE_RG		 ;掃描鬧鐘確認鍵
			CJNE A,MODE3,E7		 ;在MODE5的情況下要判斷鬧鐘確認鍵有沒按下
			LJMP G2
E7:			JB DOWN_KEY,E8
			CPL P1.3
			LJMP ONALARM2

E8:			LJMP G2

KK:			LCALL DELY10MS		 ;去抖
			JB MODE_KEY,M_GLINT
W1:			JNB MODE_KEY,W1
			INC MODE_RG
			CPL P1.4
			LJMP DEALMODE		 ;確定有按下,MODE+1后返回MODE處理程序		

G2:			DJNZ R1,K24
			LJMP M_GLINT

		;*************************位加,處理程序
		;***************小時調整

UP:			MOV R1,#20

UP11:		INC TEMP
			
UP12:		MOV A,MODE_RG		 ;判斷此時的MODE,根據MODE將臨時變量給對應的賦值
			CJNE A,MODE2,AA0	 ;不是在MODE2的情況下跳轉
			MOV A,TEMP
			CJNE A,#24,A_UP1
			MOV TEMP,#0
A_UP1:		MOV HOUR,TEMP		 ;為MODE2,將臨時變量賦給小時位
			LJMP UP15

AA0:		CJNE A,MODE4,UP13    //UP13為分鐘調整入口

			MOV A,TEMP
			CJNE A,#24,A_UP
			MOV TEMP,#0
A_UP:		MOV H_ALARM,TEMP	  ;模式3,將臨時變量賦給鬧鐘的小時位
			LJMP UP15			  ;UP15為顯示入口

			;****************分鐘調整入口

UP13:		MOV A,MODE_RG
			CJNE A,MODE3,UP14	 ;不是模式2,跳轉
			MOV A,TEMP
			CJNE A,#60,DISOVER2
			MOV TEMP,#0
DISOVER2:	MOV MIN,TEMP
			LJMP UP15

UP14:		MOV A,TEMP			 ;上面判斷不是模式2,則必然是模式4
			CJNE A,#60,DISOVER3
			MOV TEMP,#0
DISOVER3:	MOV M_ALARM,TEMP
			LJMP UP15

UP15:		LCALL DISPLAY12
			LCALL DISPLAY34

			DJNZ R1,UP01
			MOV R1,#1			  ;
			JNB UP_KEY,UP11


UP01:		JNB UP_KEY,UP12

UP16:		MOV A,MODE_RG		  ;松開鍵以后按照模式判斷該返回哪種狀態,不能返回DEALMODE函數
			CJNE A,MODE2,UP17
			LJMP H_GLINT
UP17:		CJNE A,MODE3,UP18
			MOV SEC,#0			  ;每次設置完時間后將秒鐘位置零保證時間準確
			LJMP M_GLINT
UP18:		CJNE A,MODE4,UP19

			LJMP H_GLINT
UP19:		CJNE A,MODE5,UP20

			LJMP M_GLINT
UP20:		LJMP MAIN1

ONALARM2:	LCALL DELY10MS		 ;延時10MS,去抖
			JB DOWN_KEY,B2		 ;抖動所致,返回分鐘位閃爍
			LJMP K42
B2:			LJMP M_GLINT
K42:		JNB DOWN_KEY,K42
			MOV F_ALARM,#0FFH
			MOV MODE_RG,#0
			LJMP MAIN1
;---------------------------------------中斷程序入口---------------------					
		;*******************時間中斷0*********************
						;錯誤1:中斷程序EXIT處用了MAIN1,導致一直處于中斷狀態								  
INT_0:		PUSH ACC
			PUSH PSW
			MOV TH0,#3CH
			MOV TL0,#0B1H
			INC BUF
			MOV A,BUF
			CJNE A,#20,EXIT

TIME:		MOV BUF,#0
			INC SEC
			MOV A,SEC
			CJNE A,#60,EXIT
			MOV SEC,#00H
			INC MIN
			MOV A,MIN
			CJNE A,#60,EXIT
			MOV MIN,#00H
			INC HOUR
			MOV A,HOUR
			CJNE A,#24,EXIT
			MOV HOUR,#0
			RETI		   

EXIT: 		POP PSW	  		POP ACC	 		RETI
			
		;******************時間中斷1***********************
INT_1: 		MOV TH1,#0D8H		 ;定時10MS
			MOV TL1,#0F0H
			INC S_SEC
			MOV A,S_SEC
			CJNE A,#100,EXIT4
			MOV S_SEC,#0
			INC M_SEC
			MOV A,M_SEC
			CJNE A,#100,EXIT4
			MOV M_SEC,#0
EXIT4:		RETI

;---------------------------------------顯示-----------------------------
DISPLAY12:	MOV A,MODE_RG		  ;判斷模式,決定是顯示鬧鐘時間還是顯示當前時間
			CJNE A,MODE4,DIS0	  ;模式四,顯示鬧鐘
			LJMP DIS01			  ;MODE4

DIS0:		CJNE A,MODE5,DIS20
DIS01:		MOV R7,H_ALARM		  ;鬧鐘模式
			LJMP DIS2

DIS20:		CJNE A,MODE6,DIS21
			MOV R7,M_SEC		  ;秒表模式,顯示秒表高位
			LJMP DIS2

DIS21:		CJNE A,MODE1,DIS1
			LJMP DIS22

DIS22:		MOV R7,MIN
			LJMP DIS2

DIS1:		MOV R7,HOUR			  ;DISPLAY12顯示高位

DIS2:		LCALL BCTD			  ;判斷完畢,調用顯示

			;將秒、分 分別轉碼,放到R4,R3
			MOV A,R4
			MOV R3,A

			LCALL DIVIDE

			MOV DPTR,#NUMTAB
			MOV P2,#0FH
			MOV P2,LED0
			MOV A,45H			 ;從拆字的出口獲取值
			MOVC A,@A+DPTR
			MOV P0,A
			LCALL DELY10MS
			MOV P2,LED1
			MOV A,46H
			MOVC A,@A+DPTR
			MOV P0,A
			LCALL DELY10MS
			RET

DISPLAY34:	MOV A,MODE_RG		  ;判斷模式,決定是顯示鬧鐘時間還是顯示當前時間
			CJNE A,MODE4,DIS31
			LJMP DIS32

DIS31:		CJNE A,MODE5,DIS35

DIS32:		MOV R7,M_ALARM
			LJMP DIS34

DIS35:		CJNE A,MODE6,DIS41
			MOV R7,S_SEC		  ;秒表模式,顯示秒表低位
			LJMP DIS34

DIS41:		CJNE A,MODE1,DIS33
			MOV R7,SEC
			LJMP DIS34

DIS33:		MOV R7,MIN			 ;DISPLAY34顯示低位

DIS34:		LCALL BCTD
			MOV A,R4
			MOV R3,A
			LCALL DIVIDE
			MOV P2,LED2
			MOV A,47H
			MOVC A,@A+DPTR
			MOV P0,A
			LCALL DELY10MS
			MOV P2,LED3
			MOV A,48H
			MOVC A,@A+DPTR
			MOV P0,A
			LCALL DELY10MS
			SETB P2.3
			RET

;--------------------二翻十:入口:R6R7 出口:R2R3R4----------------------

BCTD:		MOV R5,#16
			CLR A
			MOV R2,A
			MOV R3,A
			MOV R4,A
LOOP:		CLR C
			MOV A,R7
			RLC A
			MOV R7,A
			MOV A,R6
			RLC A
			MOV R6,A
			MOV A,R4
			ADDC A,R4
			DA A
			MOV R4,A
			MOV A,R3
			ADDC A,R3
			DA A
			MOV R3,A
			MOV A,R2
			ADDC A,R2
			DA A
			MOV R2,A
			DJNZ R5,LOOP
			RET

;-----------------------拆字:入口:R3R4 出口:45H46H47H48H------------------
DIVIDE:		MOV A,R3
			ANL A,#0FH
			MOV 46H,A
			MOV A,R3
			ANL A,#0F0H
			SWAP A
			MOV 45H,A      ;時拆字 45H放時高位,46H放十低位
			MOV A,R4
			ANL A,#0FH
			MOV 48H,A
			MOV A,R4
			ANL A,#0F0H
			SWAP A
			MOV 47H,A      ;分拆字 47H放分高位,48H放分低位
            RET

;------------------------------------延時----------------------------------

DELY10MS:   MOV R6,#10			 
D1:         MOV R7,#248
            DJNZ R7,$
            DJNZ R6,D1
            RET

DELAY:		MOV 74H,#2 ;延時子程序,12M晶振延時1.002秒
L3: 		MOV 72H ,#10
L1: 		MOV 73H ,#249
L2: 		DJNZ 73H ,L2
			LCALL DISPLAY12
			LCALL DISPLAY34

			JNB DOWN_KEY,OFFALARM1
			LJMP S3
OFFALARM1:	LCALL DELY10MS
			JB DOWN_KEY,S3
S4:			JNB DOWN_KEY,S4
			MOV F_ALARM,#0
			SETB P3.6
			LJMP MAIN1

S3:			DJNZ 72H ,L1
			DJNZ 74H ,L3
			RET

NUMTAB:     DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH  ;碼表

			END






				

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国欧美日韩国产在线播放| 亚洲综合丝袜美腿| 国产精品一区二区无线| 久久蜜桃一区二区| 韩国三级电影一区二区| 精品国产精品一区二区夜夜嗨| 久久激情五月激情| 久久久亚洲综合| 成人avav影音| 亚洲一区二区综合| 欧美剧在线免费观看网站 | 欧美性色黄大片手机版| 亚洲观看高清完整版在线观看| 欧美日韩国产另类不卡| 蜜臀久久久99精品久久久久久| 久久久亚洲高清| 成人精品在线视频观看| 亚洲综合色区另类av| 欧美一级片在线观看| 国产一区91精品张津瑜| 国产精品久久久久久户外露出| 欧美综合欧美视频| 日韩av网站在线观看| 久久精品一区八戒影视| 一本大道av一区二区在线播放| 天天av天天翘天天综合网色鬼国产 | 免费欧美在线视频| 久久精品一区四区| 欧美在线小视频| 男女性色大片免费观看一区二区| 欧美激情在线观看视频免费| 91福利视频网站| 久久超碰97中文字幕| 亚洲欧洲精品一区二区三区不卡| 欧美精品久久久久久久多人混战| 国产高清一区日本| 视频一区视频二区中文字幕| 国产色综合久久| 欧美日韩高清一区二区三区| 成人深夜福利app| 三级不卡在线观看| 亚洲日本护士毛茸茸| 精品黑人一区二区三区久久| 日本高清不卡在线观看| 国产精品一区免费在线观看| 亚洲gay无套男同| 国产精品灌醉下药二区| 精品久久人人做人人爱| 欧美三区在线观看| 99免费精品在线| 国产一区在线精品| 日本大胆欧美人术艺术动态| 亚洲另类色综合网站| 国产无人区一区二区三区| 日韩一区二区在线播放| 色香色香欲天天天影视综合网| 5566中文字幕一区二区电影 | 97久久精品人人爽人人爽蜜臀| 久久精品国产99国产精品| 亚洲线精品一区二区三区八戒| 国产嫩草影院久久久久| 欧美大度的电影原声| 欧美日韩亚州综合| 欧美性视频一区二区三区| 91美女福利视频| 不卡大黄网站免费看| 国产精品亚洲成人| 韩国成人在线视频| 久久精品国产亚洲高清剧情介绍 | 亚洲色图欧洲色图婷婷| 中文av字幕一区| 精品粉嫩超白一线天av| 欧美videos中文字幕| 91精品国产综合久久精品app| 欧美日韩一级大片网址| 日本道色综合久久| 欧美在线你懂的| 色94色欧美sute亚洲线路一久| 99久久免费精品高清特色大片| 成人免费看视频| 国产成人免费xxxxxxxx| 久久久欧美精品sm网站| 欧美mv日韩mv国产| 2022国产精品视频| ww亚洲ww在线观看国产| 国产亚洲福利社区一区| 国产欧美一区二区精品忘忧草 | 欧美老肥妇做.爰bbww视频| 精品视频1区2区| 7777精品伊人久久久大香线蕉 | 成人免费毛片嘿嘿连载视频| 国产精品资源在线看| 国产成人精品免费网站| 成人av免费在线| 色就色 综合激情| 欧美日韩激情在线| 日韩精品一区二区三区四区 | 中文字幕欧美一区| 亚洲日本在线看| 亚洲成人在线观看视频| 免费久久精品视频| 国产揄拍国内精品对白| 99久久综合狠狠综合久久| 色狠狠色狠狠综合| 91麻豆精品久久久久蜜臀| 精品国产乱码久久久久久老虎 | 欧美性三三影院| 欧美一区2区视频在线观看| 久久综合99re88久久爱| 中文字幕视频一区| 五月激情综合色| 国产精品一区二区果冻传媒| 91蜜桃网址入口| 4438x成人网最大色成网站| 国产欧美精品区一区二区三区 | 久久成人免费网| www.欧美色图| 91麻豆精品国产91| 欧美经典一区二区三区| 亚洲一区二区三区视频在线 | 91超碰这里只有精品国产| 亚洲精品在线三区| 一区二区日韩电影| 国产精品自拍av| 欧美午夜理伦三级在线观看| 欧美一区二区在线观看| 亚洲欧美在线视频观看| 乱一区二区av| 99riav一区二区三区| 亚洲精品一区二区三区香蕉| 一区av在线播放| 粉嫩av亚洲一区二区图片| 欧美日韩不卡视频| 国产精品国产三级国产a | 国产综合久久久久久鬼色| 色噜噜狠狠色综合欧洲selulu| 精品乱人伦一区二区三区| 亚洲精品久久7777| 成人亚洲精品久久久久软件| 91精品免费在线| 一区二区三区在线看| 成人福利视频网站| 久久久精品免费免费| 午夜精品久久久久久| 色婷婷激情综合| 国产日产欧美一区| 精品中文字幕一区二区小辣椒| 在线看国产日韩| 中文字幕一区在线观看| 国产福利91精品| 精品乱码亚洲一区二区不卡| 日韩黄色小视频| 精品视频在线免费观看| 一区二区三区四区不卡在线 | 国产尤物一区二区在线| 欧美一区二区网站| 丝袜诱惑亚洲看片| 欧美亚洲一区三区| 一区二区三区中文字幕| a级精品国产片在线观看| 国产亚洲欧美色| 国产伦精品一区二区三区免费迷 | 五月激情综合色| 欧美偷拍一区二区| 亚洲综合一区二区三区| 色哟哟国产精品| 一区二区三区精品在线| 97精品国产露脸对白| 亚洲素人一区二区| 99精品视频在线观看| 国产精品成人午夜| 波波电影院一区二区三区| 亚洲国产精品国自产拍av| 国产一区二区福利视频| 国产欧美日产一区| 99精品国产热久久91蜜凸| 中文字幕色av一区二区三区| 91小视频在线免费看| 一区二区三区中文免费| 欧美三级三级三级爽爽爽| 亚洲国产美女搞黄色| 欧美精品一级二级三级| 日韩av电影一区| 2欧美一区二区三区在线观看视频| 国产揄拍国内精品对白| 国产精品乱码一区二区三区软件| 99久久综合99久久综合网站| 亚洲色图视频网| 欧美日韩免费一区二区三区视频| 日本亚洲视频在线| 国产调教视频一区| 色综合久久久久综合体桃花网| 亚洲午夜精品一区二区三区他趣| 欧美精品在线一区二区| 国产又黄又大久久| 国产精品乱码人人做人人爱| 欧美在线视频日韩| 国内精品国产成人国产三级粉色 | 在线观看www91| 蜜桃一区二区三区在线|