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

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

?? clock.txt

?? (轉載)在C51單片機上的萬年歷帶農歷,不需要時鐘芯片、感覺不錯、很準。
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
MOV R6, A
MOV A, R2   ;補加(年-1925)中閏年補償(一年366天)的天數
MOV B, #4
DIV AB
ADD A, R7
MOV R7, A
MOV A, #0
ADDC A, R6
MOV R6, A
MOV A, R3   ;假設每月有28天,計算(月-1)個月的總天數
DEC A
MOV B, #28  ;設每月有28天
MUL AB
ADD A, R7
MOV R7, A
MOV A, B
ADDC A, R6
MOV R6, A
MOV DPTR, #0F70H   ;平年月天數補償表起始地址(大月31天、小月30天、閏年2月29天)
MOV A, R2
INC A
MOV B, #4
DIV AB
MOV A, B
JNZ SETDPTREND
MOV DPTR, #0F80H   ;閏年月天數補償表起始地址
SETDPTREND:
MOV A, R3          ;補加月補償天數
DEC A
MOVC A, @A+DPTR
ADD A, R7
MOV R7, A
MOV A, #0
ADDC A, R6
MOV R6, A
MOV A, R4          ;日
DEC A
ADD A, R7
MOV R7, A
MOV A, #0
ADDC A, R6
MOV R6, A
RET

;*****************************************************************************************
ORG 0580H
;計算當前是星期幾,使用第0組寄存器
;入口:R6、R7,為當天距離1925年1月1日的總天數
;出口:R5,計算結果0表示星期天,1~6分別為星期一至星期六
SETWEEKDAYS:
MOV A, R7      ;取出總天數,加4(1925年1月1日為星期四)
ADD A, #4
MOV R7, A
MOV A, #0
ADDC A, R6
MOV R6, A      ;計算總天數除以7的余數
MOV B, #7
DIV AB
MOV R6, B
MOV A, R7
MOV B, #7
DIV AB
MOV A, B
RL A
RL A
RL A
MOV R7, A
MOV A, R6
RL A
RL A
RL A
MOV B, #7
DIV AB
MOV R6, B
MOV R0, #3
WEEKDAYSLOOP:
MOV A, R6
CLR CY
RRC A
MOV R6, A
MOV A, R7
RRC A
MOV R7, A
DEC R0
CJNE R0, #0, WEEKDAYSLOOP
;MOV A, R7
MOV B, #7
DIV AB
MOV R5, B
RET

;*****************************************************************************************
ORG 0700H
;計算農歷日期(年月日),第0組、第1組(00H~0FH)寄存器存儲計算中間值
;子程序段
LUNARYEARDAYS:
;計算農歷Y年的總天數
;入口,R2, Y年-1925
;出口,R4、R5,Y年的總天數
MOV R5, #5CH ;設一年29x12=348(15CH)天
MOV R4, #1
MOV DPTR, #0E00H ;資料起始地址
MOV A, R2 ;設置DPTR,原因:資料單位為字(雙字節)
ADD A, DPL
MOV DPL, A
MOV A, #0
ADDC A, DPH ;在程序設計時確定該計算不會溢出
MOV DPH, A
MOV A, R2 ;取Y年月份資料高字節(1~8月份)
MOVC A, @A+DPTR
MOV R0, #0 ;累加農歷Y年應補加的天數
MOV R1, #8 ;移位計數器
LOOPLUNARYEARDAYS1:
RLC A
JNC LUNARYEARDAY291
INC R0
LUNARYEARDAY291:
DJNZ R1, LOOPLUNARYEARDAYS1
MOV A, R2 ;取低字節資料的高四位
INC A
MOVC A, @A+DPTR
MOV R1, #4
LOOPLUNARYEARDAYS2:
RLC A
JNC LUNARYEARDAY292
INC R0
LUNARYEARDAY292:
DJNZ R1, LOOPLUNARYEARDAYS2
MOV A, R0
ADD A, R5
MOV R5, A
MOV A, #0
ADDC A, R4
MOV R4, A
LCALL LUNARLEAPDAYS ;補加Y年閏月的天數(R3)
MOV A, R3
ADD A, R5
MOV R5, A
MOV A, #0
ADDC A, R4
MOV R4, A
RET

LUNARLEAPDAYS:
;計算農歷Y年的閏月的天數
;入口:R2 Y年-1925
;出口:R3,Y年閏月的天數
LCALL LUNARLEAPMONTH ;Y年有無閏月,潤幾月。結果存在R3
CJNE R3, #0, LUNARLEAPDAYS29
MOV R3, #0
LJMP LUNARLEAPDAYSRET
LUNARLEAPDAYS29:
MOV A, R2 ;取月份資料低字節低四位(閏月天數資料)
INC A
ADD A, #2 ;取(Y年-1924),低四位表示前一年閏月天數
MOVC A, @A+DPTR
ANL A, #0FH ;取低四位
XRL A, #0FH ;如果低四位為F,則前一年閏月30天
JZ LUNARLEAPDAYS30
MOV R3, #29
LJMP LUNARLEAPDAYSRET
LUNARLEAPDAYS30:
MOV R3, #30
LUNARLEAPDAYSRET:
RET

LUNARLEAPMONTH:
;計算農歷Y年的閏月的月份
;入口:R2 Y年-1925
;出口:R3,Y年閏月的月份, 0表示Y年無閏月
MOV A, R2
INC A
MOVC A, @A+DPTR
ANL A, #0FH ;取低四位
MOV R3, A
XRL A, #0FH ;如果是F,返回0,Y年無閏月
JNZ LUNARLEAPMONTHRET
MOV R3, #0
LUNARLEAPMONTHRET:
RET

LUNARMONTHDAYS:
;計算農歷Y年的M月的天數
;入口:R2 Y年-1925, R4 M月
;出口:RX,Y年M月的天數
;MOV A, R2
;MOV DPTR, #2000H ;資料起始地址
;MOV A, R2 ;設置DPTR,原因:資料單位為字(雙字節)
;ADD A, DPL
;MOV DPL, A
;MOV A, #0
;ADDC A, DPH ;在程序設計時確定該計算不會溢出
;MOV DPH, A
MOV A, R2 ;取Y年月份資料高字節(1~8月份)
MOVC A, @A+DPTR
MOV 25H, A
MOV A, R4 ;循環計數器
MOV R0, A
MOV R1, #8
MOV A, 25H
LOOPMONTHDAYS1:
RLC A
MOV 01H, C
DEC R0
DEC R1
MOV 25H, A ;保存A寄存器的內容
MOV A, R0
JZ EXITLOOPMONTHDAYS2
MOV A, R1
JZ EXITLOOPMONTHDAYS1
MOV A, 25H ;恢復A寄存器的內容
LJMP LOOPMONTHDAYS1
EXITLOOPMONTHDAYS1:
MOV A, R2 ;取低字節資料
INC A
MOVC A, @A+DPTR
LOOPMONTHDAYS2:
RLC A
MOV 01H, C
DJNZ R0, LOOPMONTHDAYS2
EXITLOOPMONTHDAYS2:
JB 01H, LUNARMONTHDAYS30
MOV R3, #29
LJMP LUNARMONTHDAYSRET
LUNARMONTHDAYS30:
MOV R3, #30
LUNARMONTHDAYSRET:
RET

;計算農歷日期的主程序
LUNARDATECALULATE:
;計算農歷日期,使用第0組或第1組寄存器
;入口:R4、R5總天數
;出口:R2=年-1925;R4=月;R7=日
;分三段計算1925.1.24~1968.1.30、~2011.2.3、~2045.2.8、~2099.12.31
MOV A, R5
CLR C
SUBB A, #033H
MOV R7, A
MOV A, R4
SUBB A, #0B8H
MOV R6, A
MOV R2, #129
JNC EXITFENDUAN
MOV A, R5
CLR C
SUBB A, #0D4H
MOV R7, A
MOV A, R4
SUBB A, #07AH
MOV R6, A
MOV R2, #86
JNC EXITFENDUAN
MOV A, R5
CLR C
SUBB A, #076H
MOV R7, A
MOV A, R4
SUBB A, #03DH
MOV R6, A
MOV R2, #43
JNC EXITFENDUAN
MOV A, R5
CLR C
SUBB A, #017H
MOV R7, A
MOV A, R4
SUBB A, #0
MOV R6, A
MOV R2, #0
JNC EXITFENDUAN
LJMP ERRCALCULATE   ;計算出錯,超出日期范圍
EXITFENDUAN:        ;分段計算有效總天數R6、R7,年份R2,R4、R5失效后面的程序可以使用
LOOPCALCULATEYEAR:
LCALL LUNARYEARDAYS
MOV A, R7
CLR C
SUBB A, R5
MOV R7, A
MOV A, R6
SUBB A, R4
MOV R6, A
JC EXITLOOPCALCULATEYEAR
INC R2
MOV A, R2
XRL A, #176 ;大于175(2100年)退出循環
JNZ PASSERRCALCULATE2
LJMP ERRCALCULATE
PASSERRCALCULATE2:
LJMP LOOPCALCULATEYEAR
EXITLOOPCALCULATEYEAR:
MOV A, R7    ;加上最后一年減掉的天數,當年已經過去的天數,用于計算月份和日期
ADD A, R5
MOV R7, A
MOV A, R6
ADDC A, R4
MOV R6, A
;DEC R2 ;如果是零,為1926年
LCALL LUNARLEAPMONTH  ;判斷是否有閏月,月份存在R3
MOV A, R3
MOV R5, A
CLR 00H ;是否閏月標識
MOV R4, #1 ;計算月數
LOOPCALCULATEMONTH:
MOV A, R5
JZ CALCULATEMONTH1 ;轉無閏月處理
MOV A, #1
ADD A, R5
XRL A, R4
JNZ CALCULATEMONTH1 ;轉非閏月處理
JB 00H, CALCULATEMONTH1
DEC R4
SETB 00H ;設置閏年標識
LCALL LUNARLEAPDAYS ;讀取當年閏月的天數R3
LJMP CALCULATEMONTH2 ;
CALCULATEMONTH1:
LCALL LUNARMONTHDAYS ;結果存放在R3中
CALCULATEMONTH2:
JNB 00H, CALCULATEMONTH3
MOV A, #1
ADD A, R5
XRL A, R4
JNZ CALCULATEMONTH3
CLR 00H ;解除閏月標識
CALCULATEMONTH3:
MOV A, R7
CLR C
SUBB A, R3
MOV R7, A
MOV A, R6
SUBB A, #0
MOV R6, A
JC EXITLOOPCALCULATEMONTH
INC R4
MOV A, R4 ;如果大于十二退出,提示錯誤
XRL A, #13
JZ ERRCALCULATE
LJMP LOOPCALCULATEMONTH
EXITLOOPCALCULATEMONTH:
MOV A, R5 ;判斷是否閏月
JZ CALCULATEMONTH5
MOV A, #1
ADD A, R5
XRL A, R4
JNZ CALCULATEMONTH5
JNB 00H, CALCULATEMONTH4
CLR 00H
LJMP CALCULATEMONTH5
CALCULATEMONTH4:
SETB 00H
DEC R4
CALCULATEMONTH5:
MOV A, R7   ;加最后一次減的天數,當月已經過完的天數
ADD A, R3
MOV R7, A
MOV A, #0
ADDC A, R6
MOV R6, A
;DEC R4
INC R7 ;計算日期
LJMP CALCULATERET
;計算結果:R2=年-1925;R4=月;R7=日
ERRCALCULATE: ;錯誤顯示
;錯誤處理程序
NOP
CALCULATERET:
RET

;****************************************************************************************
ORG 0900H
THEKEYDOWNSERVER:
;27H單元的位地址高位到低位:37、36、35、34、33、32、31、30(H)
;有鍵按下的位為0,本程序為按鍵處理分派
CLR TR1 ;關閉延時計數器
CLR EX0 ;關閉INT0中斷
PUSH P0
MOV P0, #0
MOV 04H, #10 ;延時單元
KEYDELAY:
MOV 05H, #200
DJNZ 05H, $
DJNZ 04H, KEYDELAY
PUSH PSW  ;保護現場
PUSH A
PUSH B
MOV PSW, #00001000B
MOV A, P1
ORL A, #0FH
MOV P1, A ;讀鍵盤口,結果存儲26H第四位
MOV A, P1
CPL A
ANL A, #0FH
JZ KEYALLOT5 ;如果無鍵按下,推出
ANL 26H, #0F0H
ORL 26H, A
KEYALLOT1:
MOV A, 27H
JNZ KEYALLOT2
ACALL KEYSTATE0
AJMP KEYALLOT5
KEYALLOT2:
JNB 3CH, KEYALLOT3
ACALL KEYSTATE1
AJMP KEYALLOT5
KEYALLOT3:
JNB 3DH, KEYALLOT4
ACALL KEYSTATE2
AJMP KEYALLOT5
KEYALLOT4:
JNB 3EH, KEYALLOT8
ACALL KEYSTATE3
AJMP KEYALLOT5
KEYALLOT8:
JNB 3FH, KEYALLOT5
ACALL KEYSTATE4
;AJMP KEYALLOT5
KEYALLOT5:
POP B ;恢復現場
POP A
POP PSW
POP P0
;設置延時計數器,如果在5秒鐘內沒有按鍵動作自動轉到時間顯示狀態
MOV TH1, #0
MOV TF0, #0
MOV 03H, #255
CLR IE0
SETB EX0
SETB TR1 ;計時開始
RETI

KEYSTATE0:
;狀態0按鍵處理,時間顯示狀態
STATE0KEY0:
JNB 30H, STATE0KEY1
MOV 27H, #10H
ACALL PRESETALARMTIME
AJMP KEYSTATE0RET
STATE0KEY1:
JNB 31H, STATE0KEY2
AJMP STATE0KEY12
STATE0KEY2:
JNB 32H, STATE0KEY3
STATE0KEY12:
MOV 27H, #24H
MOV R0, 18H
MOV R1, 19H
MOV R2, 1AH
MOV R3, 1BH
MOV R6, 36H
MOV R7, 37H
MOV A, 32H
ANL A, #0F0H
ANL 26H, #0FH
ORL 26H, A
AJMP KEYSTATE0RET
STATE0KEY3:
JNB 33H, KEYSTATE0RET
MOV 27H, #48H
;AJMP KEYSTATE0RET
KEYSTATE0RET:
RET

KEYSTATE1:
;狀態1按鍵處理,鬧鐘設置狀態
STATE1KEY0:
JNB 30H, STATE1KEY1
ACALL SETALARMTIME ;SET
MOV 27H, #21H ;初始化萬年歷狀態
MOV R0, 18H
MOV R1, 19H
MOV R2, 1AH
MOV R3, 1BH
MOV R6, 36H
MOV R7, 37H
MOV A, 32H
ANL A, #0F0H
ANL 26H, #0FH
ORL 26H, A
AJMP KEYSTATE1RET
STATE1KEY1:
JNB 31H, STATE1KEY2
JB 3BH,  STATE1KEY1MIN ;UP
INC R4
CJNE R4, #25, STATE1KEY1HOUR
MOV R4, #0
STATE1KEY1HOUR:
AJMP KEYSTATE1RET
STATE1KEY1MIN:
ACALL MINUTEADJUST
AJMP KEYSTATE1RET
STATE1KEY2:
JNB 32H, STATE1KEY3
JB 3BH,  STATE1KEY2MIN ;DOWN
DEC R4
CJNE R4, #0FFH, STATE1KEY2HOUR
MOV R4, #24
STATE1KEY2HOUR:
AJMP KEYSTATE1RET
STATE1KEY2MIN:
ACALL MINUTEADJUST
AJMP KEYSTATE1RET
STATE1KEY3:
JNB 33H, KEYSTATE1RET
JNB 3BH, STATE1KEY3CHANGE ;RIGHT
ACALL SETALARMTIME
MOV A, 27H
ANL A, #03H
INC A
MOV B, #4
DIV AB
MOV A, B
ANL 27H, #0F0H
ORL 27H, A
ACALL PRESETALARMTIME
AJMP KEYSTATE1RET
STATE1KEY3CHANGE:
SETB 3BH ;切換到分鐘調整
;AJMP KEYSTATE1RET
KEYSTATE1RET:
RET

KEYSTATE2:
;狀態2按鍵處理,萬年歷查看狀態
STATE2KEYO:
JNB 30H, STATE2KEY1
MOV 27H, #41H ;按鍵0,SET
AJMP KEYSTATE2RET
STATE2KEY1:
JNB 31H, STATE2KEY2
JNB 38H, STATE2KEY1YEAR ;按鍵1, UP
MOV B, #10
ACALL YEARADJUST
AJMP KEYSTATE2RET
STATE2KEY1YEAR:
JNB 39H, STATE2KEY1MONTH
MOV B, #1
ACALL YEARADJUST
AJMP KEYSTATE2RET
STATE2KEY1MONTH:
JNB 3AH, STATE2KEY1DATE
ACALL MONTHADJUST
AJMP KEYSTATE2RET
STATE2KEY1DATE:
JNB 3BH, KEYSTATE2RET
ACALL DATEADJUST
AJMP KEYSTATE2RET
STATE2KEY2:
JNB 32H, STATE2KEY3
JNB 38H, STATE2KEY2YEAR ;按鍵2, DOWN
MOV B, #10
ACALL YEARADJUST
AJMP KEYSTATE2RET
STATE2KEY2YEAR:
JNB 39H, STATE2KEY2MONTH
MOV B, #1
ACALL YEARADJUST
AJMP KEYSTATE2RET

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人福利视频在线看| 欧美xxx久久| 久久久一区二区| 亚洲日本青草视频在线怡红院| 麻豆视频观看网址久久| 99久久精品费精品国产一区二区| 日韩欧美高清dvd碟片| 亚洲精品高清在线| 丁香啪啪综合成人亚洲小说| 欧美一二三区精品| 亚洲狠狠爱一区二区三区| 成人精品gif动图一区| 日韩免费看的电影| 亚洲h动漫在线| 欧美色区777第一页| 亚洲欧美日韩国产成人精品影院| 国产盗摄精品一区二区三区在线| 日韩精品一区在线| 蜜桃一区二区三区在线观看| 欧美精品三级在线观看| 亚洲午夜影视影院在线观看| 91亚洲男人天堂| 国产精品久久毛片av大全日韩| 看电视剧不卡顿的网站| 制服丝袜亚洲播放| 一区二区三区欧美视频| 色综合中文字幕国产 | 国产精品午夜免费| 久国产精品韩国三级视频| 欧美一区二区三区视频在线| 亚洲国产精品视频| 欧美日韩精品一区二区三区四区 | 久久精品国产在热久久| 欧美一区二区视频观看视频| 日本在线观看不卡视频| 欧美一区二区三区视频| 奇米色777欧美一区二区| 欧美欧美午夜aⅴ在线观看| 午夜伦欧美伦电影理论片| 欧美性videosxxxxx| 亚洲国产精品一区二区久久 | 日韩成人午夜精品| av网站免费线看精品| 国产精品美日韩| 色综合视频在线观看| 一区二区三区在线高清| 欧美日韩免费在线视频| 日韩综合小视频| 日韩欧美美女一区二区三区| 国产精品一区专区| 国产精品久久久久精k8| 色婷婷综合五月| 午夜精品在线视频一区| 精品国产91乱码一区二区三区 | 亚洲福利国产精品| 日韩一区二区三区四区 | 日韩高清不卡一区二区三区| 精品国产一区二区三区久久影院| 国产伦精一区二区三区| 亚洲你懂的在线视频| 88在线观看91蜜桃国自产| 国产精一品亚洲二区在线视频| 欧美激情中文不卡| 欧美日韩一区二区三区视频| 久久黄色级2电影| 日韩一区在线看| 欧美一区二区三区色| av电影在线不卡| 日本不卡不码高清免费观看| 中文成人av在线| 制服视频三区第一页精品| 国产一区二区三区在线观看免费视频| 中文字幕一区二区三区在线播放| 欧美天堂一区二区三区| 国产福利一区二区| 婷婷开心久久网| 国产精品久久夜| 欧美xxxxx牲另类人与| 91色porny| 国产精品1区2区3区| 亚洲成人动漫在线观看| 中文一区二区在线观看| 欧美日韩国产另类一区| 成人app软件下载大全免费| 亚洲va天堂va国产va久| 国产精品入口麻豆九色| 国产高清成人在线| 日韩国产精品久久久| 亚洲精品视频观看| 欧美成人精品二区三区99精品| 99re这里都是精品| 国模一区二区三区白浆| 日日骚欧美日韩| 亚洲男人天堂av网| 国产精品免费久久| 久久久久久久久久美女| 欧美日韩国产不卡| 91国模大尺度私拍在线视频| av亚洲精华国产精华| 国产一区二区久久| 久久不见久久见免费视频7| 亚洲成年人影院| 亚洲尤物在线视频观看| 成人免费在线观看入口| 国产精品欧美久久久久无广告| 亚洲精品在线三区| 欧美成人性福生活免费看| 欧美区视频在线观看| 欧美日韩亚洲综合| 欧美亚洲国产一区二区三区va| 91丨九色丨蝌蚪富婆spa| www.日韩在线| 91亚洲国产成人精品一区二区三 | 亚洲制服丝袜一区| 夜夜精品视频一区二区 | 日本va欧美va精品发布| 日韩不卡一二三区| 免费在线观看日韩欧美| 麻豆精品新av中文字幕| 捆绑变态av一区二区三区| 久久99蜜桃精品| 国产一区91精品张津瑜| 国产美女精品一区二区三区| 国产福利91精品| 大尺度一区二区| 91精品福利视频| 欧美一区二区久久| 2021国产精品久久精品| 中文字幕 久热精品 视频在线 | 91亚洲男人天堂| 欧美自拍偷拍一区| 欧美日韩国产不卡| 欧美一级二级三级蜜桃| 国产日韩欧美精品一区| 亚洲欧美经典视频| 亚洲福利电影网| 久久99精品国产麻豆婷婷| 国产九九视频一区二区三区| av网站一区二区三区| 欧美午夜精品久久久久久超碰 | 国产午夜精品一区二区| 国产精品成人免费精品自在线观看 | 久久99国产精品久久99 | 国产精品嫩草影院com| 亚洲日本免费电影| 蜜臀99久久精品久久久久久软件| 国产一区二区网址| 欧美中文字幕久久| 欧美电影免费观看完整版| 国产精品麻豆久久久| 日韩福利视频网| 国产福利不卡视频| 欧美日韩国产不卡| 国产精品午夜在线观看| 日产国产欧美视频一区精品| 国产成人午夜精品5599| 欧美日韩极品在线观看一区| 久久久久久97三级| 亚洲一区二三区| 国产乱妇无码大片在线观看| 91高清在线观看| 久久久国产精品麻豆| 亚洲成人午夜电影| 成人高清视频在线观看| 777xxx欧美| 亚洲天堂福利av| 国产又粗又猛又爽又黄91精品| 91日韩精品一区| 国产三级欧美三级日产三级99| 亚洲一区av在线| av在线一区二区| 精品国产一区二区三区久久久蜜月 | 国产人成一区二区三区影院| 亚洲成av人在线观看| 99久久久久久99| 久久天堂av综合合色蜜桃网| 亚洲成人综合在线| 日本道色综合久久| 久久精品人人做人人爽97| 青青草国产成人av片免费 | 国产成人av一区二区三区在线| 欧美精品乱码久久久久久| 中文字幕五月欧美| 国产精品香蕉一区二区三区| 欧美一二三在线| 午夜精品视频在线观看| 在线视频国产一区| 亚洲日本在线观看| 92精品国产成人观看免费| 中文字幕av一区二区三区 | 久久电影网站中文字幕| 欧美久久久一区| 亚洲一区二区成人在线观看| 色偷偷88欧美精品久久久| 亚洲三级在线免费| 在线一区二区观看| 一区二区三区av电影| 91久久精品网| 亚洲高清久久久| 8x8x8国产精品|