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

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

?? main.asm

?? 用51單片機做的時鐘
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;單片機時鐘控制程序,使用DS12887時鐘芯片,具有掉電保護功能
;設計:張更生,時間:2005年11月6日
;版本:1。0

;********************************************************
;編譯預定義	        
	CS	EQU	P1.3
	HOUR	EQU	40H	;小時
	MUNITE	EQU	41H	;分鐘
	SECOND	EQU	42H	;秒
	YEAR	EQU	43H	;年
	MONTH	EQU	44H	;月
	DAY	EQU	45H	;日
	HOLIDAY	EQU	46H	;星期
	MS	EQU	3AH	;MS,MS255共用于定時
	MS255	EQU	3BH
	KEY_DIR_1	EQU	01H
	OVER3S	EQU	02H	;是否按住按鍵超過三秒
	KEY_DIR	EQU	03H	;是否有按鍵輸出
	KEY_VOL	EQU	3CH	;用于存按鍵值
	FLASH_BIT	EQU	3DH


	ORG	0000H
	SJMP	0030H
	ORG	000BH		;定時器T0中斷控制動態顯示
	LJMP	ITP_T0
	ORG 	0030H
MAIN:	
	MOV	SP,	#60H	;INIT_RAM
	CLR	EA
	CLR	KEY_DIR_1
	CLR	KEY_DIR
	CLR	OVER3S
				
	MOV	TMOD,	#01H	;初始化定時器T0
	MOV	TH0,	#0FCH	;定時1MS
	MOV	TL0,	#17H
	MOV	P0,	30H
	MOV	38H,	#0FEH
	MOV	39H,	#30H	;動態顯示緩存指針
	MOV	P2,	#0FEH
	MOV	FLASH_BIT,#00H
	SETB	EA		;啟動定時器1MS中斷顯示功能
	SETB	ET0
	SETB	TR0
;********************************************************
;DS12887初始化
DS12887:
	CLR	TR0
	CLR	CS
	PUSH	P0
	MOV	P0,	#0FFH

	MOV	DPH,	P2
	MOV	DPL,	#0AH
	MOV	A,	#20H
	MOVX	@DPTR,	A
	MOV	DPL,	#0BH
	MOV	A,	#02H
	MOVX	@DPTR,	A
	MOV	DPL,	#50H
	MOV	A,	#20H
	MOVX	@DPTR,	A

	POP	P0
	SETB	CS
	SETB	TR0
;********************************************************

LOOP:	
	CALL	TIME_DISP	;調用時間顯示子程序
	CALL	KEYBO		;調用按鍵查詢
	CALL	DATE_DISP	;調用日期顯示
	CALL	CHANGE_TIME	;調用時間設置子程序
	CALL	CHANGE_RING	;改變打鈴設置
	SJMP	LOOP



















;***************************************************************************************
;***************************************************************************************
;定時器一中斷子程序
ITP_T0: CLR	EA
	PUSH	ACC
	MOV	R0,	39H
	INC	R0
	MOV	39H,	R0
	CJNE	R0,	#38H,	N_RESET
	MOV	R0,	#30H	;如果超出緩存范圍,指針重置
	MOV	39H,	#30H
N_RESET:MOV	A,	@R0
	CPL	A
	MOV	P0,	A
	MOV	A,	38H
	RL	A
	MOV	38H,	A
	ORL	A,	FLASH_BIT
	MOV	P2,	A

	MOV	A,	MS	;計時(MS,MS255)
	ADD	A,	#01H
	MOV	MS,	A
	MOV	A,	MS255
	ADDC	A,	#00H
	MOV	MS255,	A
	MOV	A,	MS
	CJNE	A,	#0FEH,	TIP_T0_NEXT
	SETB	00H

TIP_T0_NEXT:
	MOV	TH0,	#0FCH	;定時1MS
	MOV	TL0,	#17H
	POP	ACC
	SETB	EA
	RETI
;*********************************************************
;時間顯示子程序
TIME_DISP:
	JNB	00H,	TIME_RET
	CLR	00H
	CLR	TR0
	CLR	CS
	PUSH	P0
	MOV	P0,	#0FFH

	MOV	DPH,	P2
	MOV	DPL,	#0AH
	MOVX	A,	@DPTR
	JB	ACC.7,	TIME_DISP;直到UIP位為0時才能讀數據
	MOV	DPL,	#04H
	MOVX	A,	@DPTR
	MOV	HOUR,	A
	MOV	DPL,	#02H
	MOVX	A,	@DPTR
	MOV	MUNITE,	A
	MOV	DPL,	#00H
	MOVX	A,	@DPTR
	MOV	SECOND,	A

	POP	P0		;恢復
	SETB	CS
	SETB	TR0

	MOV	DPTR,	#TIME_TAB	;拆字并送往顯存
	MOV	32H,	#40H	;顯示"-"
	MOV	35H,	#40H
	MOV	A,	HOUR	;以下產生時的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	30H,	A
	MOV	A,	HOUR	;以下產生時的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	31H,	A
	MOV	A,	MUNITE	;以下產生分的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	33H,	A
	MOV	A,	MUNITE	;以下產生分的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	34H,	A
	MOV	A,	SECOND	;以下產生秒的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	36H,	A
	MOV	A,	SECOND	;以下產生秒的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	37H,	A
;	sjmp	$
	
TIME_RET:RET
TIME_TAB:DB      3FH,    06H,    5BH,    4FH,    66H,    6DH
        DB      7DH,    07H,    7FH,    6FH,    00H,    78H
        DB      31H,    40H

;***************************************************************
;日期顯示子程序
DATE_DISP:
	JNB	KEY_DIR,DATE_RET2	;按鍵確認
	MOV	A,	KEY_VOL
	CJNE	A,	#01H,	DATE_RET
	CLR	KEY_DIR

	MOV	MS,	#00H	;對計時器清零
	MOV	MS255,	#00H	

DATE_DISP1:
	JNB	00H,	DATE_DIS_NO;每255MS調用一次日期顯示
	CLR	00H
	CLR	TR0
	CLR	CS
	PUSH	P0
	MOV	P0,	#0FFH

	CALL	GET_DATE	;獲取日期數據

	POP	P0		;恢復
	SETB	CS
	SETB	TR0

	MOV	DPTR,	#TIME_TAB	;拆字并送往顯存
	MOV	32H,	#40H	;顯示"-"
	MOV	35H,	#00H
	MOV	A,	MONTH	;以下產生月份的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	30H,	A
	MOV	A,	MONTH	;以下產生月份的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	31H,	A
	MOV	A,	DAY	;以下產生日期的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	33H,	A
	MOV	A,	DAY	;以下產生日期的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	34H,	A
	MOV	A,	HOLIDAY	;以下產生星期的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	36H,	A
	MOV	A,	HOLIDAY	;以下產生星期的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	37H,	A
	

DATE_DIS_NO:
	CALL	KEYBO
	JNB	KEY_DIR,DATE_WAIT
	CLR	KEY_DIR
	SJMP	DATE_RET
DATE_RET2:SJMP	DATE_RET;中轉
DATE_WAIT:
	MOV	A,	MS255	;日期顯示時間超過4秒后退出
	CJNE	A,	#0FH,	DATE_DISP1	

DATE_RET:RET
;****************************************************************
;
GET_DATE:
	MOV	DPH,	P2
	MOV	DPL,	#0AH
	MOVX	A,	@DPTR
	JB	ACC.7,	DATE_DIS_NO;直到UIP位為0時才能讀數據
	MOV	DPL,	#09H
	MOVX	A,	@DPTR
	MOV	YEAR,	A
	MOV	DPL,	#08H
	MOVX	A,	@DPTR
	MOV	MONTH,	A
	MOV	DPL,	#07H
	MOVX	A,	@DPTR
	MOV	DAY,	A
	MOV	DPL,	#06H
	MOVX	A,	@DPTR
	MOV	HOLIDAY,	A

;****************************************************************
;系統設置子程序
CHANGE_TIME:
	JB	KEY_DIR,	CHANGE1
CGE_RET1:LJMP	CHANGE_RET
CHANGE1:
	MOV	A,	KEY_VOL
	CJNE	A,	#81H,	CGE_RET1
	CLR	KEY_DIR	
	CLR	TR0		;以下十行程序用于關閉DS12887的時鐘更新
	CLR	CS
	PUSH	P0
	MOV	DPH,	P2
	MOV	DPL,	#0BH
	MOV	A,	#82H
	MOVX	@DPTR,	A
	CALL	GET_DATE
	POP	P0
	SETB	CS
	SETB	TR0
		
	MOV	DPTR,	#TIME_TAB	;拆字并送往顯存
	MOV	32H,	#00H	;顯示"="
	MOV	35H,	#00H
	MOV	A,	YEAR	;以下產生年的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	30H,	A
	MOV	A,	YEAR	;以下產生年的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	31H,	A
	MOV	A,	MONTH	;以下產生月份的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	33H,	A
	MOV	A,	MONTH	;以下產生月份的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	34H,	A
	MOV	A,	DAY	;以下產生日期的高位
	ANL	A,	#0F0H
	SWAP	A
	MOVC	A,	@A+DPTR
	MOV	36H,	A
	MOV	A,	DAY	;以下產生日期的低位
	ANL	A,	#0FH
	MOVC	A,	@A+DPTR
	MOV	37H,	A
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于年份的設置

CHANGE_YEAR:
	MOV	R7,	#00000011B	;位閃
	CALL	FLASH
 CHANGE_YEAR2:

	CALL	KEYBO
	JNB	OVER3S,	YEAR_NEXT
	MOV	A,	KEY_VOL
	CJNE	A,	#82H,	YEAR_NEXT

	CALL	INC_YEAR
	CALL	DLY100MS

	CALL	SAVE_12887	;更新DS12887的數據
	SJMP	CHANGE_YEAR2

YEAR_NEXT:		
	JNB	KEY_DIR,CHANGE_YEAR
	CLR	KEY_DIR
	MOV	A,	KEY_VOL
	CJNE	A,	#01H,	YEAR_KEY2	;按功能鍵的處理
	SJMP	CHANGE_MONTH
YEAR_KEY2:CJNE	A,	#02H,	YEAR_KEY3	;按調整鍵的處理
	CALL	INC_YEAR
	CALL	SAVE_12887
	SJMP	CHANGE_YEAR
YEAR_KEY3:CJNE	A,	#04H,	CHANGE_YEAR	;按返回鍵的處理
	CALL	UPDATA_ON
	RET
	
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于月份的調置
CHANGE_MONTH:
	MOV	R7,	#00011000B
	CALL	FLASH

CHANGE_MONTH2:

	CALL	KEYBO
	JNB	OVER3S,	MONTH_NEXT
	MOV	A,	KEY_VOL
	CJNE	A,	#82H,	MONTH_NEXT

	CALL	INC_MONTH
	CALL	DLY100MS

	CALL	SAVE_12887	;更新DS12887的數據
	SJMP	CHANGE_MONTH2

MONTH_NEXT:		
	JNB	KEY_DIR,CHANGE_MONTH
	CLR	KEY_DIR
	MOV	A,	KEY_VOL
	CJNE	A,	#01H,	MONTH_KEY2	;按功能鍵的處理
	SJMP	CHANGE_DAY
MONTH_KEY2:CJNE	A,	#02H,	MONTH_KEY3	;按調整鍵的處理
	CALL	INC_MONTH
	CALL	SAVE_12887
	SJMP	CHANGE_MONTH
MONTH_KEY3:CJNE	A,	#04H,	CHANGE_MONTH	;按返回鍵的處理
	CALL	UPDATA_ON
	RET

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于天的設置
CHANGE_DAY:
	MOV	R7,	#11000000B
	CALL	FLASH

CHANGE_DAY2:

	CALL	KEYBO
	JNB	OVER3S,	DAY_NEXT
	MOV	A,	KEY_VOL
	CJNE	A,	#82H,	DAY_NEXT

	CALL	INC_DAY
	CALL	DLY100MS

	CALL	SAVE_12887	;更新DS12887的數據
	SJMP	CHANGE_DAY2

DAY_NEXT:		
	JNB	KEY_DIR,CHANGE_DAY
	CLR	KEY_DIR
	MOV	A,	KEY_VOL
	CJNE	A,	#01H,	DAY_KEY2	;按功能鍵的處理
	SJMP	CHANGE_HOUR_L
DAY_KEY2:CJNE	A,	#02H,	DAY_KEY3	;按調整鍵的處理
	CALL	INC_DAY
	CALL	SAVE_12887
	SJMP	CHANGE_DAY
DAY_KEY3:CJNE	A,	#04H,	CHANGE_DAY	;按返回鍵的處理

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲aaa精品| 综合激情成人伊人| 六月丁香婷婷色狠狠久久| 欧美电影在哪看比较好| 日本91福利区| 精品久久一区二区| 国产美女视频91| 国产精品国产三级国产普通话三级 | 麻豆91精品视频| 欧美成人乱码一区二区三区| 国产精品一品二品| 18欧美乱大交hd1984| 欧美亚洲精品一区| 免费在线欧美视频| 国产午夜亚洲精品羞羞网站| k8久久久一区二区三区| 亚洲男女毛片无遮挡| 欧美片在线播放| 国产美女在线观看一区| 亚洲男人的天堂在线aⅴ视频| 欧美午夜电影网| 麻豆精品一区二区三区| 国产精品少妇自拍| 欧美色精品天天在线观看视频| 日韩av午夜在线观看| 国产丝袜美腿一区二区三区| 欧洲色大大久久| 精品无人码麻豆乱码1区2区| 中文字幕一区二区三区四区| 欧美三区在线观看| 国产精品一区二区在线播放| 综合自拍亚洲综合图不卡区| 日韩一区二区三免费高清| 成人性生交大片免费看中文| 亚洲成年人影院| 中文字幕va一区二区三区| 欧美日韩免费一区二区三区视频 | 美女视频黄a大片欧美| 欧美国产一区二区在线观看 | 午夜电影久久久| 中文字幕精品综合| 欧美一区二区三区男人的天堂| 成人av电影在线| 久久9热精品视频| 亚洲综合一区二区三区| 久久婷婷久久一区二区三区| 欧美日韩精品三区| 99国产精品久久久久久久久久 | 欧美午夜在线一二页| 国产91在线|亚洲| 免费日本视频一区| 亚洲成av人片在线观看| 中文字幕一区二区三区乱码在线 | 亚洲 欧美综合在线网络| 国产精品欧美久久久久无广告| 欧美大片一区二区| 欧美色大人视频| 91美女在线视频| 成人综合日日夜夜| 国产一区二区三区久久久| 水蜜桃久久夜色精品一区的特点| 中文字幕在线不卡视频| 久久久噜噜噜久久人人看| 日韩三级视频在线观看| 欧美精品久久一区二区三区| 一本大道av一区二区在线播放| 成人久久久精品乱码一区二区三区| 蜜桃精品视频在线观看| 日本成人在线电影网| 午夜欧美电影在线观看| 亚洲视频一二三区| 中文字幕中文字幕在线一区| 中文一区一区三区高中清不卡| 久久久久综合网| 久久婷婷色综合| 国产亚洲成av人在线观看导航 | 天天色综合成人网| 亚洲成精国产精品女| 午夜不卡在线视频| 午夜久久电影网| 免费在线观看一区| 精品一区二区综合| 精品一区二区三区免费毛片爱| 蜜臀精品一区二区三区在线观看 | 国产一区中文字幕| 国产精品一区二区免费不卡| 粉嫩一区二区三区在线看| 粉嫩av一区二区三区粉嫩| 成人国产亚洲欧美成人综合网| 国产iv一区二区三区| 成人免费毛片app| 91丨porny丨在线| 欧洲精品一区二区三区在线观看| 欧美日韩国产精品自在自线| 51精品久久久久久久蜜臀| 日韩欧美中文一区| 国产视频视频一区| 亚洲女人****多毛耸耸8| 午夜视频一区二区三区| 麻豆国产欧美一区二区三区| 国产在线精品不卡| 91亚洲资源网| 欧美精品久久久久久久久老牛影院| 欧美一区二区三区视频在线观看| 欧美大片一区二区| 国产精品国产馆在线真实露脸| 亚洲一区电影777| 免费成人结看片| eeuss鲁片一区二区三区在线观看| 日本韩国欧美一区| 欧美一二三区在线观看| 中文字幕免费一区| 99精品国产视频| 欧美精品久久天天躁| 久久综合国产精品| 一区二区三区电影在线播| 免费黄网站欧美| av亚洲精华国产精华| 欧美久久一二区| 国产精品免费久久| 日韩福利视频导航| 成人动漫一区二区三区| 91精品国产乱| 亚洲男人天堂一区| 国产成人免费视频| 欧美丰满美乳xxx高潮www| 国产精品视频你懂的| 日本女优在线视频一区二区| 成人av电影免费观看| 精品美女一区二区| 亚洲电影你懂得| 成人教育av在线| 日韩欧美一二三区| 亚洲一区二区三区四区在线免费观看 | 裸体健美xxxx欧美裸体表演| 一本久久精品一区二区| 精品免费视频.| 日韩成人免费电影| 在线观看亚洲一区| 国产精品九色蝌蚪自拍| 精品在线观看免费| 91精品国产手机| 亚洲午夜视频在线观看| 国产91在线观看丝袜| 日韩欧美一区在线| 丝袜亚洲另类欧美综合| 色综合天天综合| 国产精品三级视频| 精品午夜久久福利影院| 日韩欧美一区二区视频| 午夜不卡av在线| 欧美日韩视频在线第一区 | 91精品国产日韩91久久久久久| 亚洲欧美日韩系列| 92精品国产成人观看免费 | 亚洲一区在线视频观看| 91在线你懂得| 亚洲视频在线一区二区| 成人免费看片app下载| 国产偷国产偷亚洲高清人白洁| 久久99精品久久只有精品| 91精品国产综合久久福利软件| 午夜精品影院在线观看| 欧美日韩一区二区三区四区五区| 亚洲嫩草精品久久| 色美美综合视频| 亚洲一区二区三区中文字幕| 欧美在线三级电影| 亚洲成av人在线观看| 91麻豆精品国产自产在线观看一区| 亚洲激情第一区| 在线观看亚洲一区| 日韩电影在线一区二区三区| 91精品国产一区二区| 九色porny丨国产精品| 久久久美女毛片| 成人美女视频在线观看18| 国产精品网曝门| 一本色道久久综合狠狠躁的推荐| 亚洲综合色成人| 欧美群妇大交群中文字幕| 毛片基地黄久久久久久天堂| 精品奇米国产一区二区三区| 国产91丝袜在线18| 亚洲精品国产视频| 欧美日本在线播放| 国产一区在线观看视频| 国产精品欧美久久久久一区二区| 色偷偷88欧美精品久久久| 亚洲成a人在线观看| 欧美mv和日韩mv国产网站| 国产一区二区福利视频| 亚洲欧洲日本在线| 777欧美精品| 国产成人av一区二区三区在线| 中文字幕一区二区不卡| 欧美日韩激情一区| 国产精品一区久久久久| 亚洲制服欧美中文字幕中文字幕| 日韩一级大片在线|